Любая повторяющаяся работа, должна быть автоматизирована. Планировщики можно отнести к инструментам автоматизации, так как они помогают нам выполнять одно и тоже действие, без нашего участия. Рассмотрим доступные в Linux инструменты.
Утилита at подходит для задачи, которую нужно сделать один раз. Например сегодня в 22 часа нам нужно перезагрузить наш сервер, предварительно перезагрузив nginx. В терминале вводим
at 22:00
Затем
sudo systemctl restart nginx
sudo reboot
Ctrl + D
Чтобы посмотреть, созданные задачи
at -l
или
atq
Чтобы удалить задачи
atrm 1
или
at -r 1
Есть более универсальное средство — cron
Создадим задачу для выполнения с правами текущего пользователя
crontab -e
По умолчанию откроется всеми любимый vim и если вы хотите использовать например nano
echo “export EDITOR=nano” >> ~/.bashrc
bash
crontab -e
Давайте запланируем бэкап в 22:30 каждую субботу
30 22 * * 6 /usr/bin/backup
Отмечу, что для воскресенья лучше использовать 0, а не 7
Проверим
crontab -l
Чтобы не запутаться во времени, можно посмотреть пример в
cat /etc/crontab
Есть полезные сайты, помогающие в этой задаче, например
Небольшой лайфхак. Если вам не важна точная минута выполнения скрипта, его можно положить в зависимости от ваших задач в
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly