Syntax highlighting of
8b311b0 ~( linux/cron)
# CRON
[TOC]
**cron** – программа-демон, предназначенная для выполнения заданий в определенное время, или через определенные промежутки времени. Для редактирования заданий используется утилита crontab.
## Полезные ссылки
[Документация](http://help.ubuntu.ru/wiki/cron)
## Команды
Редактирование расписания по умолчанию
```bash
crontab -e
```
Добавление файла расписания
```bash
crontab имя_файла_расписания
```
Вывести содержимое текущего файла расписания:
```bash
crontab -l
```
Cписок заданий всех пользователей (file-per-user)
```bash
ls -la /var/spool/cron/crontabs/
```
Удаление текущего файла расписания
```bash
crontab -r
```
Редактирование текущего файла расписания (при первом запуске будет выведен список поддерживаемых текстовых редакторов):
```bash
crontab -e
```
## Формат
```
минута час день_месяца месяц день_недели команда
```
Примеры
```bash
# каждую минуту
* * * * *
# Каждые 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 * * * *".
```
## Отладка
```bash
# Журнал работы 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
```