Шпаргалка по основным командам crone
Шпаргалка по основным командам crone с примерами
Categories:
Формат команды cron
Команда 0 3 * * 0 /usr/bin/docker system prune -af --filter "until=168h" && /usr/bin/docker volume prune -f
в cron состоит из двух частей:
- Расписание:
0 3 * * 0
- Команда:
/usr/bin/docker system prune -af --filter "until=168h" && /usr/bin/docker volume prune -f
Разбор расписания (пять полей):
┌───────────── минуты (0 - 59)
│ ┌───────────── час (0 - 23)
│ │ ┌───────────── день месяца (1 - 31)
│ │ │ ┌───────────── месяц (1 - 12)
│ │ │ │ ┌───────────── день недели (0 - 6) (0 - воскресенье)
│ │ │ │ │
│ │ │ │ │
0 3 * * 0
0
- в 0 минут часа3
- в 3 часа утра*
- каждый день месяца*
- каждый месяц0
- только по воскресеньям
Итог: команда выполняется каждое воскресенье в 3:00 утра.
Где хранятся файлы конфигурации cron
1. Системные cron-задачи:
/etc/crontab
- основной файл конфигурации/etc/cron.d/
- каталог для дополнительных конфигураций/etc/cron.hourly/
,/etc/cron.daily/
,/etc/cron.weekly/
,/etc/cron.monthly/
- каталоги для скриптов, выполняемых с указанной периодичностью
2. Пользовательские cron-задачи:
/var/spool/cron/crontabs/
- каталог с индивидуальными файлами для каждого пользователя (обычно редактируются черезcrontab -e
)- Для просмотра:
crontab -l
- Для редактирования:
crontab -e
Особенности:
- При редактировании через
crontab -e
не нужно указывать пользователя - задача будет выполняться от имени текущего пользователя - В системных файлах (/etc/crontab) требуется указать пользователя:
0 3 * * 0 root /usr/bin/docker system prune -af...
- Для root-задач лучше использовать
crontab -e
от root или размещать в/etc/cron.d/
Проверка cron-задач
После добавления задачи можно проверить:
# Для пользовательских задач
crontab -l
# Для системных задач
cat /etc/crontab
ls /etc/cron.d/
Дополнительные параметры cron
В конец cron-задачи можно добавить перенаправление вывода:
0 3 * * 0 /usr/bin/docker system prune -af --filter "until=168h" && /usr/bin/docker volume prune -f > /var/log/docker-clean.log 2>&1
Где:
> /var/log/docker-clean.log
- перенаправление stdout в файл2>&1
- перенаправление stderr в тот же файл