Codzienny restart serwera cron?

15

Chcę utworzyć zadanie cron, które wykonuje daiy w wyznaczonym czasie i ponownie uruchamia serwer Ubuntu.

Próbuję dodać reboottylko w cronie, ale nie działa, ale działa, gdy próbuję wykonać go z CLI.

Proszę doradzić, jakie polecenie powinienem dodać w cronie, aby codziennie ponownie uruchamiał serwer o określonej godzinie.

Prashant Kumar
źródło
Czy mogę zapytać, dlaczego musisz codziennie restartować serwer? To jest dla mnie wskazówka, że ​​robisz coś źle. Prawdopodobnie.
gertvdijk
2
@gertvdijk Natknąłem się na sytuacje, w których musisz regularnie restartować komputer. Zastrzeżone oprogramowanie, które dostaje przeciek pamięci po ~ 30 godzinach bezczynności, takie rzeczy.
jrg
1
Serwery do gier (kaszel) Minecraft (kaszel) często rąbie lub w jakiś sposób rozwidla się na setki procesów.
Kaz Wolfe
ten post jest również przydatny askubuntu.com/questions/327015/…
kevin
Jeśli problem polega na tym, że niektóre aplikacje przeciekają z czasem, lepszym rozwiązaniem byłoby zrestartowanie tej usługi aplikacji.
Soren A

Odpowiedzi:

27

Musisz uruchomić następujące polecenie:

/sbin/shutdown -r now

z pirviliges korzenia. Sposobem na to jest użycie crontab roota, a nie crontab użytkownika. sudoPrzed poleceniem zwykle crontab robi:

sudo crontab -e

Wskazówka: Możesz przełączyć standardowy edytor powłoki na rzeczy takie jak crontabi za visudopomocą, sudo update-alternatives --config editora następnie wybrać edytor do wyboru.

Edytując plik crontab, powinieneś dodać następujący wiersz do swojego pliku:

# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command  

@daily root /sbin/shutdown -r now

„@Daily” tutaj jest skrótem do każdego dnia o północy (odpowiednik „0 0 * * *”). Nawiasem mówiąc - dlaczego chcesz codziennego restartu?

EDYCJA - patrz https://help.ubuntu.com/community/CronHowto, aby uzyskać następujące informacje: „Komendy Crontab są zazwyczaj przechowywane w pliku crontab należącym do konta użytkownika (i wykonywane z poziomem uprawnień użytkownika). regularnie uruchamiaj polecenie wymagające uprawnień administracyjnych, edytuj główny plik crontab: sudo crontab -e "

EDYCJA - dzięki @charlesbridge za komentarz - zredagował odpowiedź, aby uwzględnić pełną ścieżkę

Clive van Hilten
źródło
2
Z cron zawsze najbezpieczniej jest korzystać z pełnych ścieżek:/sbin/shutdown -r
charlesbridge
1
co robi root pomiędzy ustawieniem dnia i polecenia? czy nie powinno to być po prostu @daily / sbin / shutdown -r teraz w pliku cron użytkowników root? TIA
Ominus,
3
Poniższa komenda ma taki sam efekt: /sbin/reboot.
Marc Vanhoomissen