Je sais que vous pouvez planifier un arrêt pour une heure spécifique via shutdown -h 21:45
et que vous ne devez pas utiliser de crontabs pour de telles choses en raison de leur nature répétitive. Comment puis-je planifier un arrêt pour une date spécifique comme le 31 août à 20h00?
11
shutdown
. Comme je l'ai écrit dans une autre réponse, vous qui voulez cela pourrait essayer de persuader les gens du système de rendre leurshutdown
outil plus performant, avec une syntaxe de plusieurs décennies, plutôt que de faire le tour des maisons avecsystemd-run
.La
at
commande sert à planifier une seule exécution future.par exemple
(le "<EOT>" a été produit en appuyant sur control-D)
Vous pouvez mettre votre
shutdown
commande ici.la source
at
quand j'ai posté -at
est définitivement destiné à cela en général, bien que dans une entreprise, la méthode acceptée soitat
oucron
, selon les conventions liées à la gestion / déploiement de la configuration.at
est également capable de recevoir des commandes à partir d' un tube:echo "echo yup > $(tty)" | at now
.Bien que ce
at
soit la façon la plus évidente de le faire, je pense que cela survivra aux arrêts, donc si la machine redémarre avant l'arrêt prévu, elle pourrait s'arrêter à nouveau à l'heure prévue. Par conséquent, en utilisant bash et GNU date, nous pouvons utiliser un arrêt différé./sbin/shutdown +$(( ( $( date -d "30 may 2019 13:15" +%s ) - $( date +%s ) ) / 60 + 1 ))
NB: Ceci n'est précis qu'à une minute. Il fonctionne en convertissant l'heure planifiée, et maintenant en secondes depuis l'époque UNIX, en calculant la différence, en convertissant en minutes, puis en l'utilisant comme délai d'arrêt. Cela ne fonctionnera pas correctement si l'heure prévue est passée.
la source
Vous utilisez une meilleure
shutdown
commande.Les commandes van Smoorenburg, Upstart et systemd
shutdown
ne permettent pas de spécification de date. Mais lashutdown
commande BSD prend une valeur de date dans sa spécification du moment de l'arrêt, sous la formeyymmddhhmm
. Cela a été le cas depuis 4BSD, et le reste avec FreeBSD et OpenBSD. NetBSD l'a étendu àccyymmddhhmm
.Parce que le jeu d'outils nosh est également utilisable sur les BSD, j'ai donné à ma
shutdown
commande la même capacité, en l'étendantCCYYMMDDHHMM
par NetBSD. Et parce que le jeu d'outils nosh est également utilisable sur Linux, cela donne à Linux une commande d'arrêt qui prend des dates.Cela fonctionne bien sûr avec le nez
system-manager
. Il fonctionne également avec certains autres systèmes. Il envoie des signaux au processus n ° 1 pour mettre en œuvre des éléments et les mêmes signaux sont compris par certains autres gestionnaires de système, tels quesystemd
, qui peuvent également être arrêtés en l'utilisant.Vous pouvez l'utiliser, ou un outil comme celui-ci; ou vous pourriez essayer de persuader les auteurs d'autres
shutdown
programmes Linux d'étendre leurs outils pour être aussi capables que le BSDshutdown
.Lectures complémentaires
shutdown
. pages de manuel de nosh toolset. Logiciels.system-manager
. pages de manuel de nosh toolset. Logiciels.shutdown
. Manuel du gestionnaire de système . Pages du manuel NetBSD. 2011-11-04.shutdown
. Manuel des gestionnaires de systèmes FreeBSD . 2018-01-01.shutdown
. Pages du manuel OpenBSD. 2015-01-21.la source
Pour exécuter le travail uniquement cette année:
Pour exécuter le travail chaque année:
la source
Il peut y avoir une option pour saisir l'année dans la
shutdown
commande, mais cron ne peut être utilisé pour exécuter les commandes qu'une seule fois à un moment précis. Pour votre exemple, essayezAttention: ce qui précède n'est pas la syntaxe cron standard.
la source
year
champ dans lecrontab
calendrier