В качестве альтернативы планировщику заданий cron существуют разные команды, включая команду at, которая позволяет вам планировать выполнение команды один раз в заданное время без редактирования файла конфигурации.
Требование этой команды состоит в установке этой утилиты, и включении ее выполнения:
Затем запустите и добавьте службу at в автозагрузку.
Проверьте состояние at.
Когда atd запущен, вы можете запланировать любую команду или задачу следующим образом. Мы хотим отправить 4 ping запроса на www.google.com, когда начнется следующая минута (т.е. если сейчас 22:20:13, команда будет исполнена в 22:21:00) и отправить результат по электронной почте (-m , Требуется Postfix для отправки почты или эквивалент) пользователю, используем следующую команду:
Если вы решите не использовать параметр -m, команда будет выполнена, но в выводе ничего не будет напечатано. Однако вы можете использовать перенаправление вывода в файл.
Кроме того, обратите внимание, что at не только позволяет использовать следующие фиксированные времена: вот например, в полдень (12:00) и в полночь (00:00), но также и с 2-значным (с указанием часов) и 4-значным временем (часы и минуты).
Например
Чтобы запустить updateb в 23 часа сегодня (или завтра, если текущая дата больше 11 часов), выполните:
Чтобы отключить систему в 23:55 сегодня (применяются те же критерии, что и в предыдущем примере):
Вы также можете отсрочить выполнение на минуты, часы, дни, недели, месяцы или годы, используя знак + и указать необходимое время, как в первом примере.
Формат указание времени (спецификации времени) соответствуют стандарту POSIX.
Выводы
Как правило, лучше использовать at вместо планировщика заданий cron всякий раз, когда вы хотите запустить команду или выполнить задание в заданное время только один раз. Для других случаев используйте cron.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
3 комментария. Оставить новый
У меня на Linux Mint 19 при выполнении команды:
sudo echo «reboot» | at -m now +1 minute
или
sudo echo «shutdown -h now» | at -m now +1 minute
через минуту ничего не происходит.
Подскажите, почему?
udaff@ubuntu-kvm-1:~$ sudo echo «reboot» | at -m now +1 minute
warning: commands will be executed using /bin/sh
[sudo] password for udaff:
job 1 at Wed Mar 6 17:38:00 2019
У Вас должен быть установлен интерпретатор sh, ну и нужно правильно напечатать пароль.
Как установить в ubuntu команду at? если стандартные команды по установке:
sudo apt update
sudo apt install at
выдают ошибку.