Я использовал, crontab -e
чтобы добавить следующую строку в мой crontab:
* * * * * echo hi >> /home/myusername/test
Тем не менее, я не вижу, чтобы тестовый файл был записан в. Это проблема с правами доступа или crontab работает неправильно?
Я вижу, что процесс cron запущен. Как я могу отладить это?
Edit - Ask Ubuntu имеет хороший вопрос о crontab , но, к сожалению, он все еще не помогает мне.
Правка 2 - Хм, кажется, мой тестовый файл имеет 214 строк, что означает, что за последние 214 минут он записывался каждую минуту. Я не уверен, в чем была проблема, но она, очевидно, ушла.
fcron
делает это тоже.Вы добавили пустую строку после своего cronjob ?
источник
У меня была такая же проблема - рабочий crontab внезапно остановился после того, как я добавил новую запись в конце. Оказалось, что я забыл поставить новую строку после этой последней строки.
Я узнал, выдав команду
и вывод показал проблему:
Добавление новой строки и сохранение исправили проблему.
источник
Похоже, это исправлено. В следующий раз попробуйте войти в STDERR. Следующее будет только входить в STDOUT, а не в STDERR:
Постарайтесь убедиться, что есть и явное предложение для STDERR. В противном случае STDERR может быть отправлен пользователю по электронной почте (при условии, что электронная почта работает) или может вообще не отправиться, в зависимости от того, как настроен Cron.
Я предпочитаю отправлять вывод cronjob в системный журнал. Таким образом, я использую преимущества любой существующей инфраструктуры системного журнала (централизованные системные журналы, Splunk, ротация журналов уже поддерживается, легко сравнивать сообщения в / var / log / messages & / var / log / cronjob и т. Д.), И я не рассылать сисадминам (мне) ненужные электронные письма.
источник
У меня проблема была в том, что скрипт не был исполняемым. У меня был crontab -e такой настройки
И файл myscript не был исполняемым, поэтому я запустил
Сразу же я начал видеть результат, как ожидалось.
источник
Ваша линия cron отлично работает на моем компьютере, когда я перехожу
myusernae
наphunehehe
. Есть несколько способов узнать, что не так с вашей системой.Крон обычно отправляет почту пользователю, когда что-то не так. Если вы видите сообщение «У вас есть почта», используйте почтовый клиент, чтобы проверить ваш почтовый ящик . Или, проверьте в вашем домашнем каталоге, там может быть файл с именем
dead.letter
там.Вы можете проверить
/var/log/
записи, относящиеся к cron. На моем компьютере файл журнала находится/var/log/cron/current
(требуется root-доступ).Если у вас есть root-доступ, вы можете остановить демон cron и запустить его в режиме отладки. Например, я бы использовал (измените
fcron
имя вашего демона):источник
ps -ef | grep cron
и вы должны увидеть строку для вашего cron. Проверьте man-страницу cron, чтобы увидеть флаг для отладки. Вполне вероятно, что вы используете Vixie Cron , в этом случае флаг отладки-x
. Убейте процесс cron и запустите его снова с дополнительным флагом.Скорее всего, когда происходит сбой cron, он генерирует электронное письмо с идентификатором пользователя задания cron на этом компьютере. Если на вашем компьютере не работает MTA, или вы не читаете и не пересылаете эту почту куда-то еще, вы не увидите это сообщение, даже если MTA работает.
Хороший способ получить ошибки вашего crontab по почте - сделать так, чтобы ваш crontab выглядел так:
Очевидно, используйте свой адрес электронной почты, а не myemail@example.com. Это говорит cron отправлять ошибки на ваш адрес электронной почты, а не на локальную учетную запись. В частности, это полезно, если у вас есть корневой crontab (или фрагмент crontab в /etc/cron.d), который вы хотите просто отправить вам, вы можете избежать спама в почтовом ящике root или адресе переадресации root.
источник
Я мог бы предположить, что одной из причин этого может быть то, что каталог / home / зашифрован, и когда пользователь вышел из системы, cron не может ничего сделать в этом каталоге.
см .: /programming//a/40354269/1279002
источник