0 1,4,7,10,13,16,19,22 * * * command
30 2,5,8,11,14,17,20 * * * command
crontab -e
и вставляете время и нечто вроде rsync -avzh /from /to
. время можно сгенерировать при помощи crontab.guru0 0 * * * rsync -avzh /from /to
- запуск бекапа каждый день в полночь. 0 23 * * * java -jar /var/www/prg/programma.jar
$lock = fopen('/tmp/lock_file.lock', 'w');
if ( !($lock && flock($lock, LOCK_EX | LOCK_NB)) ) {
exit( 'already running' );
}
sleep $(($RANDOM % 10800))
означает произвольную паузу в пределах 3 часов (10800 секунд).Но после мне понадобилось временно отключить задачуЭто решается комментированием строки, а не сменой времени.
Но в прошедшее воскресенье, 15 февраля, скрипт заработал. Что это? Это получается если в месяце 29 числа нет, то вместо дня как бы подставляется знак * ? И получается выполнение каждое воскресенье февраля?
Все условия (времени запуска) проверяются по "логическому И", кроме условий "день недели" и "день месяца" — указанные совместно, они обрабатываются по "логическому ИЛИ", то есть "по любому из дней", что отражено в man-странице (Ubuntu, Debian, FreeBSD). Однако, такая логика неочевидна и не позволяет создать условие типа "первый понедельник каждого месяца" или "каждую пятницу в 13 число". Разработчики не изменяют данное поведение, считая его стандартом