У меня в crontab есть следующая строка:
*/30 * * * * /usr/bin/php /home/antoniocs/phpscripts/update-noip/update-noip.php
Этот сценарий обновляет мою учетную запись без IP. Он также записывает в файл журнала, что он сделал, а что не сделал.
Это сегодняшний файл журнала:
2009/08/06 11:30 - A tentar buscar ip
2009/08/06 11:30 - Ip encontrado - ***.***.***.***
2009/08/06 11:30 - Ip nao alterado - Abortar acesso ao no-ip
2009/08/06 12:00 - A tentar buscar ip
2009/08/06 12:00 - Ip encontrado - ***.***.***.***
2009/08/06 12:00 - Ip nao alterado - Abortar acesso ao no-ip
2009/08/06 12:30 - A tentar buscar ip
2009/08/06 12:30 - Ip encontrado - ***.***.***.***
2009/08/06 12:30 - Ip nao alterado - Abortar acesso ao no-ip
2009/08/06 13:00 - A tentar buscar ip
2009/08/06 13:00 - Ip encontrado - ***.***.***.***
2009/08/06 13:00 - Ip nao alterado - Abortar acesso ao no-ip
2009/08/06 13:30 - A tentar buscar ip
2009/08/06 13:30 - Ip encontrado - ***.***.***.***
2009/08/06 13:30 - Ip nao alterado - Abortar acesso ao no-ip
2009/08/06 14:00 - A tentar buscar ip
2009/08/06 14:00 - Ip encontrado - ***.***.***.***
2009/08/06 14:00 - Ip nao alterado - Abortar acesso ao no-ip
2009/08/06 14:30 - A tentar buscar ip
2009/08/06 14:30 - Ip encontrado - ***.***.***.***
2009/08/06 14:30 - Ip nao alterado - Abortar acesso ao no-ip
2009/08/06 15:00 - A tentar buscar ip
2009/08/06 15:00 - Ip encontrado - ***.***.***.***
2009/08/06 15:00 - Ip nao alterado - Abortar acesso ao no-ip
Как вы можете видеть по метке времени, сегодня он начался в 11:30, а затем остановился и в 15:00.
Также запущен cron:
antoniocs@acsserver:~$ /etc/init.d/cron status
* cron is running
Я не знаю, почему это происходит. Несколько дней назад это работало без проблем (у меня есть записи в журнале каждые 30 минут). Единственное, что я сделал, это недавно обновил свой Ubuntu-Server (что заставило меня другие проблемы)
Я здесь что-то не так делаю? Обновления перепутали cron ??
РЕДАКТИРОВАТЬ:
Это то, что у меня есть в системном журнале за 8.07.09 в 15:00 (это сегодняшний журнал, но то же самое произошло, он остановился после 15:00)
146 Aug 7 15:00:01 acsserver CRON[30775]: Mount of private directory return code [0]
147 Aug 7 15:00:01 acsserver /USR/SBIN/CRON[30786]: (root) CMD ([ -x /usr/sbin/update-motd ] && /usr/sbin/update-motd 2>/dev/null)
148 Aug 7 15:00:01 acsserver /USR/SBIN/CRON[30811]: (antoniocs) CMD (/usr/bin/php /home/antoniocs/phpscripts/update-noip/update-noip.php )
149 Aug 7 15:00:01 acsserver /USR/SBIN/CRON[30810]: (root) CMD ([ -x /usr/sbin/update-motd ] && /usr/sbin/update-motd hourly 2>/dev/null)
Ошибок вроде нет :(
РЕДАКТИРОВАТЬ 2: Посмотрев файл системного журнала, я заметил эти строки:
Aug 7 22:10:01 acsserver /USR/SBIN/CRON[6023]: (root) CMD ([ -x /usr/sbin/update-motd ] && /usr/sbin/update-motd 2>/dev/null)
Aug 7 22:17:01 acsserver /USR/SBIN/CRON[6158]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Aug 7 22:20:01 acsserver /USR/SBIN/CRON[6207]: (root) CMD ([ -x /usr/sbin/update-motd ] && /usr/sbin/update-motd 2>/dev/null)
Aug 7 22:30:01 acsserver CRON[6336]: Mount of private directory return code [256]
Aug 7 22:30:01 acsserver /USR/SBIN/CRON[6350]: (root) CMD ([ -x /usr/sbin/update-motd ] && /usr/sbin/update-motd 2>/dev/null)
Aug 7 22:30:01 acsserver /USR/SBIN/CRON[6354]: (antoniocs) CMD (/usr/bin/php /home/antoniocs/phpscripts/update-noip/update-noip.php )
Aug 7 22:30:01 acsserver postfix/sendmail[6367]: fatal: open /etc/postfix/main.cf: No such file or directory
Aug 7 22:39:01 acsserver /USR/SBIN/CRON[6523]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm)
Aug 7 22:40:01 acsserver /USR/SBIN/CRON[6574]: (root) CMD ([ -x /usr/sbin/update-motd ] && /usr/sbin/update-motd 2>/dev/null)
Aug 7 22:50:01 acsserver /USR/SBIN/CRON[7044]: (root) CMD ([ -x /usr/sbin/update-motd ] && /usr/sbin/update-motd 2>/dev/null)
Aug 7 23:00:01 acsserver CRON[7173]: Mount of private directory return code [256]
Aug 7 23:00:01 acsserver /USR/SBIN/CRON[7193]: (antoniocs) CMD (/usr/bin/php /home/antoniocs/phpscripts/update-noip/update-noip.php )
Aug 7 23:00:01 acsserver /USR/SBIN/CRON[7195]: (root) CMD ([ -x /usr/sbin/update-motd ] && /usr/sbin/update-motd hourly 2>/dev/null)
Aug 7 23:00:01 acsserver /USR/SBIN/CRON[7196]: (root) CMD ([ -x /usr/sbin/update-motd ] && /usr/sbin/update-motd 2>/dev/null)
Aug 7 23:00:01 acsserver postfix/sendmail[7211]: fatal: open /etc/postfix/main.cf: No such file or directory
Aug 7 23:09:01 acsserver /USR/SBIN/CRON[7390]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm)
Итак, он запускает скрипт php. Я просто не знаю, что такое /etc/postfix/main.cf. В моем php-скрипте я использую curl только для некоторых подключений.
РЕДАКТИРОВАТЬ 3:
Похоже, проблема действительно была в постфиксе. Я выполнил эти инструкции -> https://help.ubuntu.com/7.04/server/C/postfix.html и просто настроили файл main.cf, на который жаловался cron, и теперь php-скрипт вроде в порядке.
До сих пор не совсем понимаю, почему это происходило. Если у кого-то есть теория о том, почему это произошло, и почему мне понадобился постфикс для запуска моего php-скрипта, дайте мне знать !!
Спасибо за всю помощь, ребята!
PS: Также, если кто-нибудь знает, что это за ошибка монтирования, также скажите мне :(
Ваш последний файл журнала «EDIT 2» показывает, что ваша система постфиксов настроена неправильно. Когда сценарий cron отправляет вывод на stdout или stderr (например, любые сообщения об ошибках в сценарии), он отправляет электронное письмо (по умолчанию на root @ localhost), и для этого вам нужен рабочий почтовый сервер.
Похоже, что ваш скрипт не работает по какой-то другой причине и что-то пишет в stderr или stdout, но из-за того, что у вас нет работающей настройки постфикса, вы теряете эту информацию. Вполне вероятно, что в этих сообщениях об ошибках содержится информация, необходимая для выяснения причины сбоя сценария.
Это, конечно, предполагает, что это не ваша ошибка: 7 августа 22:30:01 acsserver CRON [6336]: Монтирование кода возврата частного каталога [256]
В любом случае вам следует исправить настройку постфикса.
Я не совсем понимаю в чем проблема. Ваш crontab сообщает, что запускается каждые 30 минут (* / 30), и ваш журнал показывает 3 строки при каждом запуске - что происходит каждые 30 минут.
Есть ли что-то, что вы можете перевести из журнала, что говорит о том, что он не запускается заново в: 00 и: 30?
Когда вы говорите "остановился в [t] 15:00", вы имеете в виду, что вы значительно скопировали этот журнал после что и не увидели записи в 15:30, 16:00 и т. д., как вы ожидали?