Skomentowałem wiersz w crontabie na serwerze Debiana, który, jak sądzę, był tam domyślnie, ale co godzinę powodował, że co godzinę otrzymywałem wiadomości e-mail z błędami:
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Jednak e-maile o błędach wciąż pojawiają się, jakby nie zostały skomentowane. E-maile o błędach:
Subject: Cron <root@(none)> root cd / && run-parts --report /etc/cron.hourly (failed)
/bin/sh: root: not found
Jakieś pomysły?
sudo vi crontab
, w ten sposób modyfikujesz plik crontab roota?crontab -e /etc/crontab
, który NIE JEST bezpiecznie edytować / etc / crontab. Tworzy duplikat, który generuje ten błąd, i można go usunąć, uruchamiająccrontab -r
.Odpowiedzi:
Kiedy mówisz „crontab”, nie jesteś konkretny. Powinieneś powiedzieć, który masz na myśli. Wygląda jednak na podstawie zawartości
/etc/crontab
. Ponieważ ten plik ma pole użytkownika, nie ma sensu, aby ten błąd był wyświetlany. Założę się, że istnieje crontab użytkownika, który ma tę linię. Crontabs użytkownika nie zawierają pól użytkownika.Właściwe jest, aby nie zmieniać tej linii
/etc/crontab
. Mogą działać inne zadania.Możesz edytować ten plik i pliki w
/etc/cron.*
podkatalogach za pomocą dowolnego edytora. Możesz określić edytor, którego chcesz używać podczas korzystaniacrontab -e
przez ustawienieEDITOR
zmiennej środowiskowej.Powinieneś użyć
crontab -e
do edycji crontab użytkownika (w tym roota). Usuń pole użytkownika lub usuń ten wiersz w crontab użytkownika, w którym się pojawia (nie/etc/crontab
). Crontabs użytkownika nie mają pola użytkownika, ale crontabs systemowe tak.Crontabs użytkownika znajdują się w
/var/spool/cron/crontabs
. Możeszsudo grep
dla linii dowiedzieć się, który plik ma linię zbłąkaną. Ponownie używaj tylkocrontab -u username -e
do edycji crontab użytkownika.źródło
Sprawdź stronę podręcznika systemowego pod kątem crontab (5) (
man 5 crontab
), szczególnie w sekcji „PRZYKŁADOWY PLIK SYSTEMU CRON”. Tylko plik / etc / crontab zawiera pole nazwy użytkownika. Crontabs użytkowników niesystemowych nie zawierają tego pola. Jeśli chcesz edytować / etc / crontab, użyj edytora tekstu, a nie komendy crontab (1).źródło