Jeśli scpuję plik cron do /etc/cron.d, nie będzie on działał, dopóki nie edytuję pliku i nie zmienię polecenia. Wtedy wydaje się, że crond podnosi plik cron.
Jak sprawić, by cron przeładował swoje pliki cron w Ubuntu 10.04? „dotknięcie” pliku nie działa, ani „ponowne uruchomienie cron” lub „przeładowanie cron”.
Mój plik cron jest ustawiony na uruchamianie co minutę i loguje się do pliku. Nic nie kończy się w pliku dziennika, dopóki nie edytuję polecenia i nie ma dla niego żadnego wpisu w / var / log / syslog
Jestem zakłopotany.
Oto mój plik cron zapisany w /etc/cron.d/runscript (uwaga, że kończy się na nowej linii)
# Runs the script every minute. This is safe because it will exit with success if it's already running
* * * * * www-data if [ -f /usr/local/bin/thing ]; then exec /usr/bin/php /usr/local/bin/thing mode:prod -a 14 -d >> /var/log/thing/mything.log 2>&1; else echo `date +'[\%D \%T]'` "Thing not deployed. Command not run" >> /var/log/thing/mything.log; fi &
Odpowiedzi:
Właśnie natknąłem się na ten problem i chociaż nie odpowie on na konkretny przypadek, może on pomóc innym osobom googlować ten sam problem, ponieważ wyniki tego pytania są bardzo wysokie.
Zapisałem plik w /etc/cron.d i był on ignorowany. W moim przypadku było tak dlatego, że nadałem plikom rozszerzenie.
mytask.cron
nie działał, ale zmieniłem jego nazwę namytask
i działało dobrze.Wszelkie pliki z rozszerzeniami są ignorowane, więc upewnij się, że zapisany plik nie ma żadnego rozszerzenia.
źródło
Sprawdź, czy kopiowany plik kończy się na
\n
. Wpisy w plikach crontab, które nie mają\n
na końcu, generalnie mają problemy. Najłatwiejszym sposobem na to jest umieszczenie pustej linii po ostatnim wpisie.źródło