Eu sei que você pode agendar um desligamento por um horário específico shutdown -h 21:45
e que não deve usar crontabs para essas coisas devido à sua natureza repetitiva. Como posso programar um desligamento para uma data específica, como 31 de agosto às 20:00?
11
shutdown
. Como escrevi em outra resposta, você que quer isso pode tentar convencer o pessoal do sistema a tornar suashutdown
ferramenta mais capaz, com a sintaxe de décadas em pé, em vez de andar pelas casas com elesystemd-run
.O
at
comando é para agendar uma execução futura.por exemplo
(o "<EOT>" foi produzido pressionando control-D)
Você pode colocar seu
shutdown
comando aqui.fonte
at
quando publiquei -at
definitivamente é para isso em geral, embora em uma empresa o método aceito possa serat
oucron
, dependendo das convenções relacionadas ao gerenciamento / implantação da configuração.at
também é capaz de receber comandos a partir de um tubo:echo "echo yup > $(tty)" | at now
.Embora
at
seja a maneira óbvia de fazer isso, acho que ela sobreviverá a desligamentos; portanto, se a máquina reiniciar antes do desligamento programado, poderá desligar novamente no horário agendado. Portanto, usando data bash e GNU, podemos usar um desligamento atrasado./sbin/shutdown +$(( ( $( date -d "30 may 2019 13:15" +%s ) - $( date +%s ) ) / 60 + 1 ))
NB: Isso é preciso apenas para um minuto. Ele funciona convertendo o horário agendado e agora para segundos desde a época do UNIX, calculando a diferença, convertendo em minutos e, em seguida, usando isso como o atraso no desligamento. Não funcionará corretamente se o horário agendado estiver no passado.
fonte
Você usa um
shutdown
comando melhor .Os
shutdown
comandos van Smoorenburg, Upstart e systemd não permitem uma especificação de data. Mas oshutdown
comando BSD assume um valor de data na especificação de quando desligar, no formulárioyymmddhhmm
. Este tem sido o caso desde o 4BSD, e permanece assim com o FreeBSD e o OpenBSD. O NetBSD estendeu paraccyymmddhhmm
.Como o conjunto de ferramentas nosh também é utilizável nos BSDs, dei ao meu
shutdown
comando a mesma capacidade, estendendo-a para oCCYYMMDDHHMM
NetBSD. E como o conjunto de ferramentas nosh também é utilizável no Linux, isso fornece ao Linux um comando de desligamento que leva datas.É claro que funciona com o nariz
system-manager
. Também funciona com alguns outros sistemas. Ele envia sinais para o processo nº 1 para aprovar coisas e os mesmos sinais são entendidos por alguns outros gerentes de sistema, comosystemd
, que também podem ser desativados usando-o.Você pode usá-lo ou uma ferramenta como essa; ou você pode tentar convencer os autores de outros
shutdown
programas Linux a estender suas ferramentas para também serem tão capazes quanto o BSDshutdown
.Leitura adicional
shutdown
. páginas de manual do conjunto de ferramentas nosh. Programas.system-manager
. páginas de manual do conjunto de ferramentas nosh. Programas.shutdown
. Manual do Gerente do Sistema . Páginas do Manual do NetBSD. 04/11/2011.shutdown
. Manual de Gerenciamento de Sistemas FreeBSD . 01-01-2018.shutdown
. Páginas do Manual do OpenBSD. 21/01/2015.fonte
Para executar o trabalho apenas este ano:
Para executar o trabalho todos os anos:
fonte
Pode haver uma opção para inserir o ano no
shutdown
comando, mas o cron pode ser usado para executar comandos apenas uma vez em um momento específico. Para o seu exemplo, tenteCuidado: o acima não é uma sintaxe cron padrão.
fonte
year
campo nocrontab
horário