Я создал файл с именем ntpdate
в /etc/cron.hourly
#!/bin/sh
/usr/sbin/ntpdate-debian
date > /tmp/william_tmp
date > /william_tmp
date > ~/william_tmp
echo test
Я также сделал Chmod 755 для этого файла.
Однако я не могу сказать, был ли файл запущен или нет!
Файл не создан ни в одном из 3 каталогов.
Если я запускаю cd / && run-parts --report /etc/cron.hourly
вручную, файлы создаются, и я получаю эхо.
Кто-нибудь может порекомендовать (в идеале пошаговое руководство!) Инструкцию, чтобы проверить, работает ли он?
Один из главных недостатков cron - это запуск cron в крайне ограниченной оболочке, в результате чего многие переменные не экспортируются в среду, в основном $ PATH. Убедитесь, что вы используете все абсолютные пути к исполняемому файлу, включая общие функции, такие как echo
, uptime
, date
и т. Д., Все должны использовать полные пути (/bin/echo
, /bin/date
, /usr/bin/uptime
). Чтобы определить путь к исполняемому файлу, вы можете использовать команду which
следующим образом: which echo
- это покажет вам полный путь к этому инструменту.
Попробуйте изменить первую строку вашего скрипта (интерпретатора) на:
#!/bin/bash
В прошлом у меня также были проблемы с переменными окружения и проблемами PATH. После изменения переводчика на bash
мои проблемы исчезли.
Учитывая я добавил clearme.sh
сценарий в /etc/cron.hourly/
Просто отфильтруйте задачи КРОНА в терминале с мощным egrep и awk:
$ cat /var/log/syslog | egrep clearme | awk "{ print $1 }" > ~/Desktop/cronlog.txt
Вывод будет похож:
Jan 14 15:20:01 markets-dev CRON[10089]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 15:40:01 markets-dev CRON[18042]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 16:00:01 markets-dev CRON[22817]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 16:20:01 markets-dev CRON[28183]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 16:40:01 markets-dev CRON[411]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 17:00:01 markets-dev CRON[5442]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 17:20:01 markets-dev CRON[11935]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Объяснить все пошаговое:
4-й шаг является дополнительным. Это просто распечатает результаты в терминале вместо файла.
Необходимо заглянуть Ваш /var/log/syslog
файл журнала. Если бы крон работал, он имел бы строку как:
Jun 11 19:09:01 penguin CRON[17376]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Jun 11 19:17:01 penguin CRON[17799]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Для советов по устранению неисправностей см. https://help.ubuntu.com/community/CronHowto#Troubleshooting_and_Common_Problems