Réponses:
Vous pouvez le faire directement à partir du shutdown command
, voir man shutdown
:
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
Donc, par exemple:
shutdown -h 21:45
Cela fonctionnera shutdown -h
à 21h45.
Pour les commandes qui n'offrent pas cette fonctionnalité, vous pouvez essayer l'une des solutions suivantes:
Le at
démon est conçu 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 un ordre à at
:
Pipe-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
Enregistrez la commande que vous souhaitez exécuter dans un fichier texte, puis transmettez-le à 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
Vous pouvez également passer des at
commandes à partir de STDIN:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls
Ensuite, appuyez sur CtrlDpour quitter le at
shell. La ls
commande sera exécutée dans une minute.
Vous pouvez donner des heures très précises dans le format de [[CC]YY]MMDDhhmm[.ss]
, comme dans
$ at -t 201403142134.12 < script.sh
Le script sera exécuté script.sh
à 21h34 et 12 secondes le 14 mars 2014.
L'autre approche consiste à utiliser le cron
planificateur conçu pour effectuer des tâches à des moments spécifiques. Il est généralement utilisé pour des tâches qui seront répétées, mais vous pouvez également donner une heure précise. Chaque utilisateur a ses propres "crontabs" qui contrôlent les tâches à exécuter et à quel moment. 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 fonctionnera ls
tous les jours à 14h04:
04 14 * * * ls
Pour configurer un cronjob pour une date spécifique:
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é.
Ajoutez cette ligne au fichier qui vient de s'ouvrir. Cet exemple particulier s'exécutera à 15h34 le 15 mars 2014 si ce jour est un vendredi (alors, OK, il se peut qu'il se répète plusieurs fois):
34 14 15 5 /path/to/command
Enregistrez le fichier et quittez l'éditeur.
Cette réponse SO propose donc un moyen de le faire fonctionner une seule fois, mais je ne l’ai jamais utilisé et je ne peux donc pas en témoigner.
shutdown
. Je pense que pour cette mauvaise expérience, cela n'aurait pas pu être agréable.
shutdown
planification et cron
la même réponse ... Qu'il s’agisse d’une station de travail ou d’un serveur de messagerie de 1 000 utilisateurs (ma triste expérience) concerne plutôt les conséquences d’une mauvaise habitude.
shutdown
, il ne faut pas inclure cron
. (En particulier avec quelqu'un qui ne sait pas pourquoi c'est une idée horrible.)
Non, vous ne pouvez pas spécifier de date dans la commande d'arrêt, mais deux alternatives existent:
1) Le plus simple est d’utiliser la commande at . L'exemple suivant s'exécutera shutdown +5
à une heure et un jour spécifiques:
echo "shutdown +5" | at 10:05am 2019-01-19
2) si cela ne vous dérange pas d’utiliser votre calculatrice et que vous souhaitez l’arrêter dans un délai de 24 heures (24 * 60 = 1440 minutes) et que vous êtes absolument certain que le système ne redémarrera pas entre:
shutdown -r +1440
at
commande.
at
ne mérite aucune explication. Je peux voir que tu crois le contraire. Des esprits différents, des points de vue différents.
shutdown
ne permettent pas de spécifier une date. Mais le jeu d'outils Nosh est shutdown
compatible avec la syntaxe BSD.
Il arrêtera votre système à 12h00:
$ sudo shutdown -h 12:00
Options:
-h, -P, --poweroff
Éteignez la machine.
-r, --reboot
Redémarrez la machine.
-c
Annuler un arrêt en attente.