Назад | Перейти на главную страницу

Конфликт времени работы Unix Crontab?

У меня есть две следующие записи в моем задании Crontab, которые должны начаться в 10:00.

Работа №1

0,20 10 * * 1-5 ./run_program_A

Работа # 2

0,20 10 * * 1-5 ./run_program_B

В 10:15 я проверил свой файл журнала, и была запущена только программа B. Казалось, что программа А так и не была запущена.

Если я установлю время начала для программы А на 10:30, она будет запущена. Я не очень знаком с Crontab, поэтому надеюсь, что вы сможете пролить на него некоторый свет. Должен ли я гарантировать, что все мои задания не будут назначены одновременно?

Заранее спасибо.

cron точно не имеет таких ограничений. Проблема в другом (например, в блокировке, используемой обеими программами).

Несколько случайных вещей, которые могут помочь отследить проблему:

  • проверьте наличие журнала cron в / var / log
  • убедитесь, что вы где-то получаете почту из вывода cron (вероятно, владелец файла cron), так как это может иметь интересные подсказки
  • замените "./run_program_A" на 'echo ./run_program_A', просто чтобы посмотреть, запускается ли он вообще
  • поместите "echo 'program A ran' | mailx -s program_A you@yourdomain.com" внутрь run_program_A, чтобы убедиться, что он запущен

Нет, конфликтов не надо избегать, cron должны отлично справляться с заданиями, которые начинаются одновременно или иным образом перекрываются.

Есть ли вероятность, что оба сценария записывают в один и тот же файл журнала, так что один сценарий перезаписывает вывод другого сценария?

Проверьте / var / log / cron на наличие сообщений об ошибках. Наверняка что-то не так с тем, как называется "program_B".

20 10 * * 1-5 ./run_program_A> run_program_A.log

проверьте файл журнала после 10:20 как

ls -ltr run_program_A.log

если файл создается в 10:20, проблема заключается в скрипте run_program_A, а не в cron

для помощи cron

http://scripterworld.blogspot.com/2009/07/unix-crontab-configuration-with.html