GNU/Linux >> Tutoriels Linux >  >> Linux

Comment arrêter Linux à une date et heure spécifique depuis le terminal ?

Vous pouvez le faire directement depuis le shutdown command , voir man shutdown :

SYNOPSIS
   /sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]

[...]

   time   When to shutdown.

Ainsi, par exemple :

shutdown -h 21:45

Cela exécutera shutdown -h à 21h45.

Pour les commandes qui n'offrent pas cette fonctionnalité, vous pouvez essayer l'une des options :

A. Utilisation à

Le at démon est conçu précisément pour cela. Selon votre système d'exploitation, vous devrez peut-être l'installer. Sur les systèmes basés sur Debian, cela peut être fait avec :

sudo apt-get install at

Il y a trois façons de donner une commande à at :

  1. Pipez-le :

    $ echo "ls > a.txt" | at now + 1 min
    warning: commands will be executed using /bin/sh
    job 3 at Thu Apr  4 20:16:00 2013
    
  2. Enregistrez la commande que vous souhaitez exécuter dans un fichier texte, puis transmettez ce fichier à at :

    $ echo "ls > a.txt" > cmd.txt
    $ at now + 1 min < cmd.txt
    warning: commands will be executed using /bin/sh
    job 3 at Thu Apr  4 20:16:00 2013
    
  3. Vous pouvez également passer at commandes depuis STDIN :

    $ at now + 1 min
    warning: commands will be executed using /bin/sh
    at> ls
    

    Ensuite, appuyez sur Ctrl D pour sortir du at coquille. Le ls La commande sera exécutée dans une minute.

Vous pouvez donner des heures très précises au format [[CC]YY]MMDDhhmm[.ss] , comme dans

$ at -t 201403142134.12 < script.sh

Cela exécutera le script script.sh à 21h34 et 12 secondes le 14 mars 2014.

B. Utiliser cron (bien que ce ne soit pas une bonne idée pour l'arrêt)

L'autre approche utilise le cron planificateur qui est conçu pour effectuer des tâches à des moments précis. Il est généralement utilisé pour les tâches qui seront répétées mais vous pouvez également donner un temps précis. Chaque utilisateur a ses propres "crontabs" qui contrôlent quelles tâches sont exécutées et quand. Le format général d'une crontab est :

*     *     *     *     *  command to be executed
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- day of week (0 - 6) (Sunday=0)
|     |     |     +------- month (1 - 12)
|     |     +--------- day of month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

Ainsi, par exemple, cela exécutera ls tous les jours à 14h04 :

04 14 * * * ls

Pour configurer un cronjob pour une date spécifique :

  1. Créez une nouvelle crontab en exécutant crontab -e . Cela fera apparaître une fenêtre de votre éditeur de texte préféré.

  2. Ajoutez cette ligne au fichier qui vient de s'ouvrir. Cet exemple particulier s'exécutera à 14h34 le 15 mars 2014 si ce jour est un vendredi (donc, d'accord, il peut s'exécuter plus d'une fois) :

    34 14 15 5  /path/to/command        
    
  3. Enregistrez le fichier et quittez l'éditeur.

Cette réponse SO suggère un moyen de le faire fonctionner une seule fois, mais je ne l'ai jamais utilisé, donc je ne peux pas en garantir.


Non, vous ne pouvez pas spécifier de date à la commande shutdown mais deux alternatives existent :

1) Le plus simple est d'utiliser la commande at. L'exemple suivant exécutera shutdown +5 à une heure et un jour précis :

echo "shutdown +5" | at 10:05am 2019-01-19

2) si cela ne vous dérange pas d'utiliser votre calculatrice et que vous voulez vous arrêter dans disons 24 heures (24*60=1440 minutes) et que vous êtes absolument sûr que le système ne redémarrera pas entre-temps :

shutdown -r +1440

Il éteindra votre système à 12h00 :

$ sudo shutdown -h 12:00

Choix :

-h, -P, --poweroff

Éteignez la machine.

-r, --reboot

Redémarrez la machine.

-c

Annuler un arrêt en attente.


Linux
  1. Comment effacer une commande spécifique de l'historique Bash sous Linux

  2. Comment exclure des répertoires spécifiques de la copie sous Linux

  3. Comment installer des packages à partir d'un référentiel spécifique sous Linux

  4. Comment puis-je trouver un fichier spécifique à partir d'un terminal Linux ?

  5. Arrêter la machine Windows à partir du terminal Linux

Comment redémarrer (redémarrer) Linux à partir de la ligne de commande

Comment utiliser le terminal Linux dans Android

Comment ouvrir une fenêtre de terminal Linux

Comment utiliser la commande d'arrêt de Linux

Comment ouvrir un PDF dans un terminal Linux

Comment se connecter au WiFi depuis le terminal dans Ubuntu Linux