Как использовать команду at для планирования задачи на заданное или более позднее время в Linux
В качестве альтернативы планировщику заданий cron команда at
позволяет запланировать однократный запуск команды в заданное время без редактирования файла конфигурации.
Единственное требование состоит в установке этой утилиты, запуске и включении ее выполнения:
yum install at [on CentOS based systems]
sudo apt-get install at [on Debian and derivatives]
Затем запустите и включите службу at во время загрузки.
--------- On SystemD ---------
systemctl start atd
systemctl enable atd
--------- On SysVinit ---------
service atd start
chkconfig --level 35 atd on
После запуска atd
вы можете запланировать любую команду или задачу следующим образом. Мы хотим отправить 4 ping-зонда на www.google.com
в начале следующей минуты (т. е. если сейчас 22:20:13, команда будет выполнена в 22:21:00) и сообщит о результате по электронной почте (-m
, требуется Postfix или аналогичный) пользователю, вызвавшему команду:
echo "ping -c 4 www.google.com" | at -m now + 1 minute
Если вы решите не использовать опцию -m
, команда будет выполнена, но на стандартный вывод ничего не будет выведено. Однако вместо этого вы можете перенаправить вывод в файл.
Кроме того, обратите внимание, что at
допускает не только следующие фиксированные времена: сейчас, полдень (12:00) и полночь (00:00), но также пользовательские двухзначные числа (представляющие часы) и 4-значное время (часы и минуты).
Например,
Чтобы запустить updatedb
в 23:00 сегодня (или завтра, если текущая дата больше 23:00), выполните:
echo "updatedb" | at -m 23
Чтобы выключить систему сегодня в 23:55 (применяются те же критерии, что и в предыдущем примере):
echo "shutdown -h now" | at -m 23:55
Вы также можете отложить выполнение на минуты, часы, дни, недели, месяцы или годы, используя знак +
и желаемое указание времени, как в первом примере.
Спецификации времени подчиняются стандарту POSIX.
Краткое содержание
Как правило, используйте at вместо планировщика заданий cron всякий раз, когда вы хотите запустить команду или выполнить данную задачу в четко определенное время только один раз. В других сценариях используйте cron.
Далее мы расскажем, как зашифровать архивные файлы tar с помощью openssl, а до тех пор оставаться на связи с Tecmint.