Найти тему
takoedelo

6 Распространенных ошибок в заданиях Cron

Смотрит на ваши ошибки в заданиях Cron
Смотрит на ваши ошибки в заданиях Cron

До сих пор у вас могло сложиться впечатление, что cron кажется довольно мощным инструментом и при его использовании ничего не может пойти не так. Верно? Неправильно.

Любой опытный системный администратор, потративший сколько-нибудь времени на настройку заданий cron, скажет вам, что задания cron будут постоянно терпеть неудачу по множеству причин.

Вот обзор некоторых проблем, с которыми вы можете столкнуться при настройке заданий cron.

1. Ошибки планирования

Нетрудно ошибиться с синтаксисом cron, особенно если вы раньше с ним не работали. Возможно, вы поменяли местами минуты и часы в синтаксисе. Проверьте всё ещё раз, чтобы убедиться в правильности вашего синтаксиса.

2. Переменные среды

Еще одним частым явлением является то, что ваш сценарий командной оболочки отлично работает из командной строки, когда вы запускаете его, но, похоже, он не запускается из записи cron. Если ваш сценарий вызывает какие-либо переменные среды, это, вероятно, причина. Cron не загружает переменные из файлов типа .bashrc или bash_profile, поэтому, даже если вы указали общую переменную типа $USER, эта переменная не определяется, когда демон cron запускает вашу запись задания. Вам нужно будет либо жестко запрограммировать значения ваших переменных, либо вручную загрузить значения из таких файлов, как .bashrc самостоятельно.

3. Права доступа к исполняемому скрипту

По умолчанию, когда вы создаете сценарий оболочки, у него нет разрешений на выполнение:

$ touch shell_script.sh $ ls -als *sh

Результат:

0 -rw-rw-r-- 1 user users 0 May 21 13:26 shell_script.sh

У файла отсутствуют права на выполнение. Предоставьте файлу права на исполняемый файл, выполнив следующую команду:

$ chmod +x shell_script.sh $ ls -als *sh

Теперь результат выглядит следующим образом:

0 -rwxrwxr-x 1 user users 0 May 21 13:26 shell_script.sh

Это должно исправить отсутствующее разрешение на выполнение, необходимое cron для запуска скрипта.

4. Место на диске

Ваш скрипт может быть невероятно стабильным, но когда системные ресурсы исчерпаны, никакая стабильность не поможет вашему заданию cron успешно выполняться. К сожалению, единственный способ предотвратить это - продолжать отслеживать свои серверы на предмет таких показателей, как доступное дисковое пространство, доступная память и количество открытых файлов.

5. Дублирование заданий

У вас может быть запись cron, которая выполняется довольно часто и успешно в течение нескольких секунд.Возможно, вы запускаете этот скрипт каждую минуту. Весьма вероятно, что внешняя переменная может помешать своевременному завершению задания, в результате чего выполнение задания займет больше минуты. Демон cron с радостью создаст больше копий вашего скрипта, пока у вас не будет небольшой армии из них, работающих одновременно, что приведет к истощению системных ресурсов. Вам нужно будет встроить проверки, такие как блокировка файлов, чтобы убедиться, что в любой момент времени выполняется только одна копия вашего скрипта.

6. Внешние переменные

Наконец, внешние переменные находятся вне вашего контроля. Если, например, у вас есть скрипт, который извлекает информацию из конечной точки REST API и что-то о конечной точке, изменения которой вы запрашиваете, не уведомляя вас, ваше задание cron может завершиться сбоем без вашего ведома.

Заключение

Мы рассмотрели распространенные ошибки, которые допускаются при настройке заданий cron.

Что такое VRM на материнской плате и почему это важно?

11 лучших дистрибутивов Linux на основе Debian

В Ubuntu нет звука! 6 способов исправить отсутствие звука.

Как записать макрос в Excel

5 неизменяемых дистрибутивов Linux

Ставьте лайк .Смотрите другие наши статьи,подписывайтесь на канал чтобы не пропустить интересное.