Crootab root nie działa


10

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?


Dla pewności zamykasz plik crontab po jego edycji, prawda? W jaki sposób „działałeś jako root”? Jaka jest wydajność sudo crontab -l | grep -v '#'?
terdon

Dlaczego ten otagowany debian ? Jeśli chodzi o Debiana, a nie Ubuntu, zapytaj na Unixie i Linuksie .
muru

Ponieważ uważam, że debian jest rdzeniem Ubuntu.
Atomiklan

Odpowiedzi:


11

Mam trzy propozycje rozwiązania dla Ciebie.

  1. Wywołaj crontab za pomocą crontab -e -u root

  2. Upewnij się, że masz pustą linię na końcu pliku cronjob, co oznacza, że ​​każda linia kończy się nową linią.

  3. 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 atpolecenia:

at 0am

Wpisz polecenie shutdown -r nowi 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.


Rozwiązaniem było wyjście na dev null. Zastanawiam się dlaczego?
Atomiklan

Dzieje się tak, ponieważ zadanie cron ma własne środowisko, w którym nie ma takiego standardowego systemu wejścia / wyjścia, jakiego można oczekiwać, a proces kończy się niepowodzeniem, ponieważ próbuje przesyłać strumieniowo wiadomości do brakującego potoku wyjściowego. Zadanie Crona jest w rzeczywistości czymś zupełnie innym niż uruchamianie komend w terminalu jak każdy użytkownik. Miło mi słyszeć, że mimo wszystko działa.
Ahti Komu

0

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,

$ sudo vi /etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  23 20 *  *  *  root  shutdown  -r  now

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!


-3

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


Nie prawda! Cron nie używa 12-godzinnego formatu czasu, a format zawsze wynosi mm hh DD MM WD.
Ahti Komu

Następnym razem przeczytaj cały post.
Atomiklan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.