Вызов свойства переменной напрямую против getter / setters - OOP Design

ВТФ ?! Моя cronjob не запускается?!

Вот руководство по проверочным спискам для отладки не запущенных cronjobs:

  1. Выполняется ли демон Cron? Запустите ps ax | grep cron и найдите cron. Debian: service cron start или service cron restart
  2. Работает cron? * * * * * /bin/echo "cron works" >> /tmp/file Синтаксис правильный? Смотри ниже. Вы, очевидно, должны иметь доступ на запись к файлу, на который вы перенаправляете вывод. Уникальное имя файла в /tmp, которое в настоящее время не существует, всегда должно быть доступно для записи.
  3. Является ли команда автономной? Проверьте, есть ли у сценария ошибка, выполнив сухой прогон в CLI при тестировании вашей команды, проверьте, как пользователь, чей crontab, который вы редактируете, может не быть вашим логином или root
  4. работа? Проверьте ошибки /var/log/cron.log или /var/log/messages. Ubuntu: grep CRON /var/log/syslog Redhat: /var/log/cron
  5. Проверять флажки разрешения на выполнение в команде: chmod +x /var/www/app/cron/do-stuff.php, если вы перенаправляете вывод своей команды в файл, убедитесь, что у вас есть разрешение на запись в этот файл / directory
  6. Проверка путей проверяет, что строка she-bangs / hashbangs не зависит от переменных среды, таких как PATH, поскольку их значение, вероятно, не будет таким же в cron, как в интерактивном сеансе
  7. Не подавлять вывод, в то время как обычно используется отладка, это подавление: 30 1 * * * command > /dev/null 2>&1 повторно включить стандартный вывод или стандартный вывод сообщения об ошибке

Все еще не работает? Yikes!

  1. Поднять уровень отладки cron Debian в /etc/default/cron установить EXTRA_OPTS="-L 2" service cron restart tail -f /var/log/syslog, чтобы увидеть скрипты, выполненные Ubuntu в /etc/rsyslog.d/50-default.conf, добавить или прокомментировать cron.crit /var/log/cron.log перезагрузить logger sudo /etc/init.d/rsyslog reload перезапустить cron open /var/log/cron.log и посмотреть подробный вывод ошибки Напоминание: отключить уровень журнала, когда вы закончите с отладкой
  2. Запустить cron и снова проверить файлы журнала

Синтаксис Cronjob

# Minute  Hour  Day of Month      Month         Day of Week    User Command    
# (0-59) (0-23)   (1-31)    (1-12 or Jan-Dec) (0-6 or Sun-Sat)  

    0       2       *             *                *          root /usr/bin/find

Этот синтаксис является правильным только для пользователя root. Синтаксис обычного пользователя crontab не имеет поля User (обычные пользователи не могут запускать код как любой другой пользователь);

# Minute  Hour  Day of Month      Month         Day of Week    Command    
# (0-59) (0-23)   (1-31)    (1-12 or Jan-Dec) (0-6 or Sun-Sat)  

    0       2       *             *                *          /usr/bin/find

Команды Crontab

  1. crontab -l Список всех задач пользователя cron.
  2. crontab -e для конкретного пользователя: crontab -e -u agentsmith Запускает сеанс редактирования вашего файла crontab. Когда вы выходите из редактора, измененный crontab устанавливается автоматически.
  3. crontab -r Удаляет запись crontab из буферизатора cron, но не из файла crontab.
16
задан Phill Pafford 2 June 2011 в 13:47
поделиться