Z jakiegoś powodu mój plik crontab wydaje się nie działać.
Próba ponownego uruchomienia urządzenia co noc o północy.
Powinien być następujący jako root:
crontab -e
Następnie dodaj:
0 0 * * * /sbin/shutdown -r now
Kiedy testuję przy użyciu niektórych wartości zamykających bieżący czas, nic się nie dzieje. Zainstalowałem NTP i upewniłem się, że strefa czasowa jest poprawna. Podaję również za pomocą zegara 24-godzinnego. Na przykład, aby teraz przetestować tę linię (17:35), próbuję wprowadzić następujące informacje:
36 17 * * * /sbin/shutdown -r now
Sprawdziłem godzinę z datą -R. Czas na uruchomienie crontab przychodzi i odchodzi, a system nie uruchamia się ponownie. Czego tu brakuje?
sudo crontab -l | grep -v '#'
?Odpowiedzi:
Mam trzy propozycje rozwiązania dla Ciebie.
Wywołaj crontab za pomocą
crontab -e -u root
Upewnij się, że masz pustą linię na końcu pliku cronjob, co oznacza, że każda linia kończy się nową linią.
Może być konieczne przekierowanie danych wyjściowych do devnull:
shutdown -r now > /dev/null
Oto dwie pomocne strony dla cronjobs:
CRON Tester
Generator CRON
Możesz również poradzić sobie z cronjobs starannie za pomocą webmina .
Poza tym masz co najmniej dwa sposoby na ponowne uruchomienie komputera o północy.
Jednym z nich jest uruchomienie komendy shutdown jako skryptu automatycznie przy logowaniu, ale z określonym czasem jako parametrem zamiast „teraz”:
shutdown -r 00:00
Jednak przy każdym logowaniu pojawi się komunikat o zbliżającym się wyłączeniu (może nie być wcale taki zły). Cóż, możesz to również uruchomić w czasie rozruchu, dodając skrypt w init.d, ale nadal wyświetla komunikat.
Innym jest użycie
at
polecenia:at 0am
Wpisz polecenie
shutdown -r now
i zapisz je za pomocą ctrl + d lub wykonaj skrypt dla polecenia i wykonaj:at -f restart_script.sh 0am
Mam nadzieję, że pomogą ci one uzyskać pożądany rezultat.
źródło
Zadania System Cron są wymienione w pliku / etc / crontab. Dlatego bezpośrednia edycja tego pliku pomoże ci uruchomić polecenie restartu jako root.
w związku z tym,
upewnij się, że sprawdziłeś plik dziennika Cron po edycji crontab, ponieważ poinformuje cię, czy cron został pomyślnie zainstalowany.
Przetestowałem to i działało dla mnie. Zrestartowałem mój system o 20:23
Powodzenia!
źródło
36 17 * * * itd.
36 17 nie jest sposobem na określenie właściwego czasu w twoim cronie.
sprawdź komendę date, aby sprawdzić, czy Twój system działa w czasie amerykańskim czy europejskim
użyj 17 36 jeśli czas europejski i jeśli twój system używa godziny 24 godzinnej lub 5 36 jeśli twój system używa czasu amerykańskiego i godziny 12-tej
źródło