Jak zrestartować komputer w określonym czasie?

18

Czy każdej nocy można ponownie uruchomić Raspberry Pi o północy? Wiem, że używasz Linuksa, crontabale nie mogę znaleźć /etc/crontab.

Phorce
źródło
Właściwie najpierw musisz utworzyć katalog / var / spool. Nie mam pojęcia dlaczego. Spróbujmkdir /var/spool
Elliot A.,

Odpowiedzi:

28

Aby edytować crontab roota:

sudo -i
crontab -e

wstaw wpisy, które chcesz; istnieje przydatny szablon ładowany przez crontab, który pokazuje, jakie pola są czym. Po zakończeniu i zapisaniu w edytorze crontab:

exit

aby wrócić do powłoki użytkownika.

Aby ponownie uruchomić komputer o północy i 8 rano, potrzebujesz linii:

0 0,8 * * * reboot

choć tak naprawdę Linux nie wymaga zbytniego restartu, jeśli w ogóle.

szum
źródło
7
Dlaczego stworzyłeś osobną powłokę superużytkownika do uruchomienia crontab? Dlaczego nie sudo crontab -e?
Alex Chamberlain,
2
@AlexChamberlain - Tak, lepiej nie zachęcać ludzi do uruchamiania powłoki roota, chyba że jest to absolutnie konieczne, ale przynajmniej zasugeruj , exitkiedy skończysz.
Mark Booth,
@MarkBooth Całkowicie się zgadzam. IMHO sudopowinien odmówić uruchomienia su. Będzie oczywiście około miliona sposobów (w tym -i), ale przynajmniej będziesz musiał bardziej się postarać, aby uruchomić rootpowłokę.
Alex Chamberlain,
Odrodziłem nową powłokę roota, ponieważ sudo nie daje ci wszystkich uprawnień roota i środowiska. Chciałem się upewnić, że użytkownik naprawdę edytuje crontab roota. Cron jest dość podstępny dzięki ustawieniom SHELL i PATH, więc chciałem, aby jedna rzecz poszła nie tak.
scruss
1
Nie, nowy crontab jest instalowany zaraz po wyjściu z edytora. Aby to sprawdzić, zrób crontab -l. Ale tak naprawdę wciąż jestem zdezorientowany, dlaczego musisz tak często restartować komputer. Linux go nie potrzebuje i jeśli nie testujesz nowych jąder, możesz utrzymać system w dobrym stanie. Mój domowy serwer działał od 415 dni, szczęśliwie bez problemu śmiejąc się.
scruss
5

Czy próbowałeś dodać wpis za pomocą

 crontab -e

Wygląda na to, że nie masz wpisów w pliku crontab, dlatego plik nie został utworzony.

elomage
źródło
2

Mam nadzieję, że to pomoże.

sudo nano /etc/crontab -e

W pliku dodaj linię

0 0 * * * root reboot

Nie próbowałem, ale mam nadzieję, że to pomoże.

SteveIrwin
źródło
Dziękuję za odpowiedź. Czy to zrestartuje system o północy? Jak ustawić to na inny czas? Czyli restartuje się o północy, a potem znowu o 8 rano? dzięki :)!
Phorce
2
Nie edytuj bezpośrednio pliku / etc / crontab; użyj poleceń crontab. To jest bezpieczniejsze.
scruss
sudo crontab -e
John La Rooy,
sudo nano /etc/crontab -e: Nie -ema sensu, według strony nano jest to „Ignorowane, dla zgodności z Pico”.
makrojames,
tak, dziękuję za wyjaśnienie tego. Właśnie zacząłem od Linuksa i wciąż jestem w fazie uczenia się. Również z innych postów, które tu widziałem, wydaje się, że to zły pomysł na bezpośrednią edycję crontab.
SteveIrwin,