Używam Ubuntu 14.04, a demon cron działa:
# ps ax | grep cron
822 ? Ss 0:00 cron
ale nie wykonuje żadnych zadań. Wcześniej otrzymywałem wpisy /var/log/syslog
takie jak to:
2014-05-04T11:47:01.839754+01:00 localhost CRON[29253]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))
ale teraz nie ma żadnych wpisów związanych z cronem. Otrzymywałem również takie wpisy w /var/log/auth.log
:
2014-05-04T11:47:01.839183+01:00 localhost CRON[29252]: pam_unix(cron:session): session opened for user root by (uid=0)
2014-05-04T11:47:13.495691+01:00 localhost CRON[29252]: pam_unix(cron:session): session closed for user root
ale znowu, teraz nie ma żadnych wpisów związanych z cronem.
Nie wiem, czy coś się zmieniło. Próbowałem zrestartować crona:
# service cron restart
cron stop/waiting
cron start/running, process 24907
Próbowałem crontab -e
dodać zadanie crona, * * * * * date >> /tmp/somefile
które działało, ale zainstalowało nowe crontab w /var/spool/cron/crontabs/root
, ale chcę, aby cron używał pliku w/etc/crontab
.
Czy jest jakaś opcja debugowania, której mogę użyć, lub dziennik, który może dać komunikat o błędzie, który mogę zbadać?
no crontab for root
.crontab
polecenia (-l
przełącznika) są zależne od użytkownika, natomiast/etc/crontab
służą do przechowywania ogólnosystemowych cronów. Z tego powodu zapisane zadania/etc/crontab
nie pojawią się w niczyichcrontab -l
.Odpowiedzi:
Aby dodatkowo pomóc w debugowaniu, co jest nie tak z twoimi
cron
zadaniami, sprawdź swoją pocztę. Zazwyczaj jest to przechowywane w pliku takim jak/var/mail/<user_name>
lub/var/spool/mail/<user_name>
.Te dwa pliki są w rzeczywistości twardymi linkami na moim pudełku Debiana, ale nie wiem, czy jest to standard.
Wyjaśnienie
Ze
cron(8)
strony:źródło
Pokazałeś, że nie ma crontab dla roota, czy użytkownicy mają wpis crontab? Jeśli używasz tylko roota, możesz również sprawdzić następujące katalogi: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly
na mojej maszynie (centos 6.4) mam mlocate.cron w katalogu /etc/cron.daily/ i cron codziennie uruchamia ten skrypt.
więc myślę, że wystarczy dodać zadania crona.
źródło
/etc/crontab
. Może pytanie brzmi: dlaczego tegocrontab -l
nie uznaje?Rozwiązałem ten problem, zmieniając uprawnienia na
/etc/crontab
następujące:Wcześniej było
-rw-rw-r--
. To była jedyna zmiana. Teraz nie działało. Nadal nie jestem pewien, dlaczego.źródło
Miałem również podobny typ problemu, ale po określeniu katalogu głównego jako użytkownik w
/etc/crontab
zadanie cron zaczęło się uruchamiać.Może to wynikać z zastosowanej składni,
crontab -e
która różni się od/etc/crontab
.źródło