crontab пример запуска команд

Дата | 04.04.2021

crontab пример запуска команд.
crontab пример запуска команд.
Допустим нам нужно сохранять backup в специальное ftp хранилище.
Месячный backup, недельный и суточный backup.

crontab -l
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin/
MAILTO=''
# Загружаем backup раз в месяц в специальную директорию на ftp.
0 3 1 * * sh /root/mount
# Каждую субботу кроме 1 числа месяца.
0 3 * * * 6 test `date '+%d'` -ne 1 && sh /root/saturday
# Каждый день кроме 1 числа месяца и кроме субботы.
0 3 * * * 0-5 test `date '+%d'` -ne 1 && sh /root/daily

0-5 — означает что с воскресенья по пятницу запускать скрипт.
В crontab 0 и 7 это воскресенье.
Команда test, проверяет условие и возвращает значение false или true.
В данном примере проверка числа месяца, то-есть если не 1-е число то выполняем команду.
&& — Это логическое И.


В этом примере без утилиты test, сверяем если это не первое число месяца, то выполняем команду.
На FreeBSD у меня заработал этот метод.

40 2 * * 6 [ "$(/bin/date '+\%d')" -ne 1 ] && sh /root/saturday
40 2 * * 0-5 [ "$(/bin/date '+\%d')" -ne 1 ] && sh /root/daily

Можно решить задачу и так.

# По субботам, кроме 1 числа месяца.
40 2 2-31 * * test `date +\%u` -eq 6 && sh /root/saturday
# Каждый день, кроме 1 числа месяца и субботы.
40 2 2-31 * * test `date +\%u` -eq 6 || sh /root/daily

2-31 — Означает с 2-го числа по 31 выполнять задачу.
Команда test, проверяет условие и возвращает значение false или true.
В данном примере && если это суббота то выполняем команду.
В примере || если это не суббота то выполняем команду.
|| — Это логическое ИЛИ.

Следующий пример, выполнять каждую минуту.

* * * * * sh /root/my_sckript

Выполнять по вторникам в полночь.

0 0 * * TUE sh /root/my_sckript

Выполнять команду ка 2 час между 6 утра и 18 вечера.

* 6-18/2 * * * sh /root/my_sckript

Запускать команду каждые 3 минуты.

*/3 * * * TUE sh /root/my_sckript

А также есть переменные в crontab.

Раз в год 1 января.
@yearly	sh /root/my_sckript
Раз в месяц.
@monthly sh /root/my_sckript
Команда будет выполнять каждый понедельник в полночь.
@weekly
Каждый день.
@daily	sh /root/my_sckript
Каждый час.
@hourly	sh/root/my_sckript
Выполнять каждый день в полночь.
@midnight
При перезагрузке сервера.
@reboot sh /root/my_sckript

Легкие параметры crontab не буду объяснять.
Вот и все наиболее сложные crontab пример запуска команд.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *