CRON
cron – программа-демон, предназначенная для выполнения заданий в определенное время, или через определенные промежутки времени. Для редактирования заданий используется утилита crontab.
Полезные ссылки
Команды
# --- Редактирование расписания по умолчанию crontab -e # --- Добавление файла расписания crontab имя_файла_расписания # --- Вывести содержимое текущего файла расписания: crontab -l # --- Cписок заданий всех пользователей (file-per-user) ls -la /var/spool/cron/crontabs/ # --- Удаление текущего файла расписания crontab -r # --- Редактирование текущего файла расписания (при первом запуске будет выведен список поддерживаемых текстовых редакторов) crontab -e
Формат
минута час день_месяца месяц день_недели команда
Примеры
# каждую минуту * * * * * # Каждые 10 минут: */10 * * * * # Каждый день, с использованием переменных cron: @daily ~/script.sh # Каждый день в 03:15 запускать скрипт: 15 3 * * * ~/script.sh # Каждый понедельник: 0 0 * * 1 # Каждый будний день в 22:00: 0 22 * * 1-5 # Запуск сценария из заданной директории в 7:15 каждый день 15 7 * * * cd /abs/path/to/script && ./script.sh # Переменные crontab string meaning ------ ------- @reboot Run once, at startup. @yearly Run once a year, "0 0 1 1 *". @annually (same as @yearly) @monthly Run once a month, "0 0 1 * *". @weekly Run once a week, "0 0 * * 0". @daily Run once a day, "0 0 * * *". @midnight (same as @daily) @hourly Run once an hour, "0 * * * *".
Отладка
# Журнал работы CRON в реальном времени tailf /var/log/syslog | grep CRON
Если выводится No MTA installed, discarding output
, то необходимо настроить сервер электронной почты
Для вывода CRON в файл необходимо использовать оператор >>
*/1 * * * * /path/to/script.sh >> /path/to/log/file.log 2>&1