Работаем с crontab
Cron - это планировщик задач в операционной системе Linux, который позволяет запускать определенные скрипты или команды в нужное время, по расписанию. Это полезно для автоматизации обслуживания или администрирования системы.
Основные команды
crontab -u %username%
- определяет пользователя чьи задачи будут просматриваться/редактироваться, отсутствие данного параметра устанавливает текущего пользователя;crontab -l
- показывает список текущих задач;crontab -e
- запускает редактор планировщика задач;crontab -r
- удаляет все текущие задачи.
Синтаксис cron
1
2
* * * * * команда
|минута|час|день|месяц|день недели|
#
- комментарий (строки начинающиеся с данного символа не выполняются);,
- перечисление значений (1,2,3,4);/
- каждые n раз (*/n - каждые n, */5 - каждые 5, */2 - каждые 2);-
- интервал значений (1-5 - с 1 до 5, 4-6 - с 4 до 6).
следовательно, следующие записи соответствуют следующим строкам:
0 5 * * *
- каждый день в 5:00;*/10 * * * *
- каждые 10 минут;0 0 1 1 *
- 1 января каждого года;0 9 * * 1,3,5
- понедельник, среду и пятницу в 9 утра;0 0 1 * *
- каждое 1-е число месяца.
Примеры
*/5 * * * * root /home/script.sh
- запускать команду каждые пять минут0 */3 * * * root /home/script.sh
- запускать каждые три часа0 12-16 * * * root /home/script.sh
- запускать команду каждый час с 12 до 16 (в 12, 13, 14, 15 и 16)0 12,16,18 * * * root /home/script.sh
- запускать команду каждый час в 12, 16 и 18 часов*/1 * * * * /usr/bin/php /home/test.php
- запуск каждую минуту php-скрипта test.php0 */1 * * * /usr/bin/perl /home/test.pl
- запуск каждый час perl-скрипта test.pl*/5 * * * * root /home/script.sh > /home/log.txt 2>&1
- запускать команду каждые пять минут и записать результат выполнения в лог (перезапись лога)*/5 * * * * root /home/script.sh >> /home/log.txt 2>&1
- запускать команду каждые пять минут и записать результат выполнения в лог (не перезаписывать файл)*/5 * * * * /home/edigaryev/test.sh > /home/edigaryev/test-$RANDOM.log 2>&1
- запускать команду каждые пять минут и записать результат выполнения в лог, при этом имя лога меняется$RANDOM
*/5 * * * * /home/edigaryev/test.sh > /home/edigaryev/test-$(date '+%Y-%m-%d_%H-%M-%S').log 2>&1
- запускать команду каждые пять минут и записать результат выполнения в лог, при этом имя лога меняется[$(date '+%Y-%m-%d_%H-%M-%S')]
Авторский пост защищен лицензией CC BY 4.0 .