Инструменты пользователя

Инструменты сайта


misc:cron

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
misc:cron [05.08.2025 22:23] nikolaymisc:cron [05.08.2025 22:36] (текущий) nikolay
Строка 1: Строка 1:
-====== Сценарии использования Cron ======+====== Сценарии использования Cron ======
  
 +  - Ограничение времени выполнения:<code>* * * * * timeout 300 /path/to/script.sh  # Остановить через 5 минут</code>
 +  - Блокировка через ''flock'':<code>* * * * * /usr/bin/flock -n /tmp/myscript.lock /path/to/script.sh</code>где ''-n'' - не ждать, если скрипт уже работает (''-w 10'' - ждать 10 секунд, если требуется)
 +  - Перенаправление вывода:
 +    * ''>> file.log 2>&1'' - stdout + stderr в один файл
 +    * ''>> file.log 2>> error.log'' - раздельные логи
 +  - Логирование с ротацией:<code>0 0 * * * /path/to/script.sh >> "/var/log/script_$(date +\%Y\%m\%d).log" 2>&1</code>
 +  - Каскадные задачи с задержкой и проверкой статуса:<code># Основная задача в 2:00
 +0 2 * * * /path/to/first_task.sh && touch /tmp/first_success
 +
 +# Вторая задача через 15 минут, только если первая успешна
 +15 2 * * * [ -f /tmp/first_success ] && /path/to/second_task.sh && rm /tmp/first_success</code>
 +  - Запуск только при низкой загрузке CPU:<code>0 22 * * * [ $(awk '{print 100-$NF}' /proc/loadavg | cut -d. -f1) -lt 30 ] && /path/to/backup.sh</code>
 +  - Пропуск запуска, если процесс уже выполняется:<code>*/5 * * * * [ $(pgrep -c -f "script.sh") -eq 0 ] && /path/to/script.sh</code>
 +  - Ротация логов:<code>0 3 1 * * find /var/log/app/ -name "*.log" -mtime +30 -exec gzip {} \;</code>
misc/cron.txt · Последнее изменение: nikolay