Я знаю, что вы можете запланировать отключение на определенное время через shutdown -h 21:45
и что вы не должны использовать crontabs для таких вещей из-за их повторяющейся природы. Как я могу запланировать отключение на определенную дату, например, 31 августа в 20:00?
11
shutdown
. Как я написал в другом ответе, вы, кто этого хотите, можете попытаться убедить системных людей сделать свойshutdown
инструмент более функциональным, с синтаксисом десятилетий, вместо того, чтобы ходить по домамsystemd-run
.Команда
at
предназначена для планирования одного из будущих исполнений.например
(«<EOT>» был получен нажатием control-D)
Вы можете поставить свою
shutdown
команду здесь.источник
at
когда я размещал сообщения -at
это определенно предназначено для этого в целом, хотя в компании принятый метод может бытьat
илиcron
, в зависимости от соглашений, связанных с управлением / развертыванием конфигурации.at
также может принимать команды из трубы:echo "echo yup > $(tty)" | at now
.Хотя
at
это очевидный способ сделать это, я думаю, что он выдержит выключения, поэтому, если машина перезагрузится до запланированного выключения, она может выключиться снова в запланированное время. Поэтому, используя bash и GNU date, мы можем использовать отложенное завершение работы./sbin/shutdown +$(( ( $( date -d "30 may 2019 13:15" +%s ) - $( date +%s ) ) / 60 + 1 ))
NB: это с точностью до одной минуты. Он работает путем преобразования запланированного времени, а теперь и в секунды, начиная с эпохи UNIX, вычисления разницы, преобразования в минуты и последующего использования в качестве задержки для отключения. Это не будет работать правильно, если запланированное время в прошлом.
источник
Вы используете лучшую
shutdown
команду.Команды van Smoorenburg, Upstart и systemd
shutdown
не позволяют указывать дату. Но команда BSDshutdown
принимает значение даты в своей спецификации времени выключения в формеyymmddhhmm
. Так было со времен 4BSD, и остается таковым для FreeBSD и OpenBSD. NetBSD расширил его доccyymmddhhmm
.Поскольку набор инструментов nosh также можно использовать на BSD, я дал своей
shutdown
команде такую же возможность, расширив ее доCCYYMMDDHHMM
каждого NetBSD. И поскольку набор инструментов nosh также можно использовать в Linux, это дает Linux команду выключения, которая принимает даты.Это конечно работает с Nosh
system-manager
. Это также работает с некоторыми другими системами. Он посылает сигналы процессу № 1, чтобы воспроизвести материал, и те же сигналы понимаются некоторыми другими системными администраторами, такими какsystemd
, которые также могут быть отключены с его помощью.Вы могли бы использовать это, или инструмент как это; или вы можете попытаться убедить авторов других
shutdown
программ для Linux расширить их инструменты так же, как BSDshutdown
.дальнейшее чтение
shutdown
, страницы справочника nosh toolset. Softwares.system-manager
, страницы справочника nosh toolset. Softwares.shutdown
, Руководство системного менеджера . Страницы руководства по NetBSD. 2011-11-04.shutdown
, Руководство системного администратора FreeBSD . 2018-01-01.shutdown
, Страницы руководства OpenBSD. 2015-01-21.источник
Чтобы запустить работу только в этом году:
Чтобы запустить работу каждый год:
источник
Может быть опция для ввода года в
shutdown
команду, но cron может использоваться для запуска команд только один раз в определенный момент времени. Для вашего примера попробуйтеОсторожно: приведенный выше не является стандартным синтаксисом cron.
источник
year
поляcrontab