jak mogę zaplanować ponowne uruchomienie w systemie Linux?

38

Jestem nowy w systemie Linux i chcę zaplanować ponowne uruchomienie komputera o północy. Jak mam to zrobić?

Edycje:

  • Przepraszam, że nie podałem pełnych szczegółów. Chcę restartować co 3 soboty miesiąca o 23:30.

  • Nie wiem co jest nie tak, ale nie mogę znaleźć crontab. Mam tylko cron.d; cron.daily; cron.weekly; cron.monthly;

Przepraszam za pytanie noob. Proszę pomóż mi. Dzięki.

klauriens
źródło
2
Prawdziwe pytanie brzmi: dlaczego chcesz robić to regularnie, czy masz nieszczelną aplikację lub coś takiego? Jeśli planujesz regularne ponowne uruchamianie w celu rozwiązania problemu, prawdopodobnie masz większy problem ...
JamesHannah
1
Czy chcesz, aby uruchamiał się co noc?
Matt Simmons,
4
Nie głosuję za odrzuceniem, ponieważ jest to rodzaj decyzji politycznej (i myślę, że nocne restartowanie jest nieco nadmierne), ale regularne planowanie restartów w infrastrukturze jest dobrym sposobem na zapewnienie, że maszyny mają aktualne jądra i wszystkie uruchomione usługi są załatane. Słyszałem, że 3-miesięczny okres bezczynności jest dobrym środkiem.
Matt Simmons,
Jeśli byłby to komentarz do pytania, a nie odpowiedź, głosowałbym za nim. Właściwie zmieniłbym zdanie, ponieważ pytanie było dwuznaczne, czy było to jednorazowe, czy zwykłe. :)
intuicyjnie,
3
/etc/crontabWpis jak 30 23 15-21 * 6 /sbin/shutdown -r nowzostanie ponownie uruchomiony o 23:30 w 3 sobotę każdego miesiąca.
Chris S

Odpowiedzi:

45

Wpisz shutdown -r 0:00i uruchomi się ponownie o północy.

Jeśli chcesz restartować co noc, dodaj wpis crona używając crontab -e jako root, aby uruchamiać zamykanie -r co północ

@midnight shutdown -r now
promień
źródło
3
Argument czasowy jest obowiązkowy, możesz go użyć now.
Tobu
Nie ... jeśli chce jednorazowego polecenia i teraz chce je wpisać, powinien dodać czas!
promień
3
@ Nie, potrzebuje argumentu czasu, takiego jak noww wierszu crontab.
Wstrzymano do odwołania.
O tak, przepraszam, źle odczytałem komentarz Tobu i myślę, że powiedział, że 0:00 było bezużyteczne w pierwszym poleceniu ... Zredagowałem, by poprawić (i Massimo też odpowiedział)
promień
Chciałbym wiedzieć, jakie inne @{command}zmienne są dostępne.
Greg
16

Korzystanie crontab.

http://en.wikipedia.org/wiki/Crontab

Dodanie tego wpisu do / etc / crontab powinno:

0 0 * * * /sbin/shutdown -r now
Massimo
źródło
3
shutdownpotrzebuje argumentu czasu, takiego jaknow
Wstrzymany do odwołania.
1
Spowoduje to ponowne uruchomienie komputera co noc. Nie jestem pewien, czy tego właśnie chce.
cstamas
1
Pierwotne pytanie sprawiało, że brzmiało to tak, jakby chciał, aby było co noc ponownie uruchamiane. Naprawdę chce, aby był restartowany co 3 soboty, co nadal byłoby najłatwiejsze z crontabem
Chris S
nie wiem co jest nie tak, ale nie mogę znaleźć crontab ..? co mam to cron.d; cron.daily; cron.weekly; cron.monthly; Przykro mi z powodu pytania noob. Pomóż mi. dzięki
klauriens
Zależy to od używanej dystrybucji, ale zwykle powinieneś znaleźć plik o nazwie „crontab” w katalogu / etc twojego systemu. Powinieneś być również w stanie sprawdzić bieżący plik crontab za pomocą polecenia „crontab -l” i edytować go za pomocą „crontab -e”.
Massimo
13

Inną opcją jest polecenie at , dostępne w wielu dystrybucjach Linuksa. Zobacz stronę podręcznika, aby uzyskać więcej informacji, ale ogólna składnia dla twojego celu to:

echo „restart” | o 0000 czerwca 27

Aby zacytować stronę podręcznika OS X:

at - wykonuje polecenia w określonym czasie

Brzmi jak to, o czym mówimy. ;)

Zayne S. Halsall
źródło
1

O ile mi wiadomo, nie można używać crona do planowania zadań na „ostatni piątek każdego miesiąca” lub „trzeci czwartek każdego miesiąca”. To, co możesz zrobić, choć wydaje się brzydkie, to uruchomienie skryptu w każdą sobotę o 23:30, a następnie sprawdzenie, czy ten skrypt jest trzecią sobotą tygodnia (można to zrobić za pomocą poleceń daty i być może cal) .

Mam nadzieję, że to pomoże. Nie znalazłem eleganckiego rozwiązania tego problemu. Znalazłem ten wątek, ponieważ szukałem rozwiązania tego samego problemu.

ervingsb
źródło
1
komentarze powyżej „30 23 15-21 * 6 / sbin / shutdown -r now” będą działać. Zasadniczo będzie działać tylko w trzecim tygodniu miesiąca, ale tylko w sobotę
Sirex
Nie sądzę, że ta linia cron działa tak, jak myślisz.
ervingsb
Utworzyłem następujące dwa wiersze: „Data 30 23 1-7 * 4” i „Data 30 23 1-7 * 3”. Dostałem dwie maile ostatniej nocy, obie z napisem: „Śro 7 marca, 23:30:02 CET 2012”
ervingsb,
ostatnie pole pasuje do dnia tygodnia, przy czym zero oznacza niedzielę. 4 cronjob nie powinno było pasować w środę.
Sirex,
To miałem na myśli. Reguła, którą napisałeś, nie ma na myśli tego, co myślisz. Będzie uruchamiał pracę codziennie przez tydzień. Bez względu na dzień roboczy.
ervingsb
0

1) w wierszu poleceń wpisz 2) gdy wiesz, gdzie znajduje się restart (zwykle / sbin / reboot) cd do jednego z katalogów w /etc/cron.daily, /etc/cron.weekly, / etc / cron. co godzinę itp ... tjwhich reboot
cd /etc/cron.weekly

3) utwórz plik (używając nano lub vim), nazwij go zzreboot i dodaj następujące linie:

#! / bin / sh
/ sbin / reboot

Powodem, dla którego chcesz wywołać plik zzwh, jest upewnienie się, że jest to ostatnie zadanie wywołane po wszystkich innych zadaniach. Aby się upewnić, po prostu wykonaj ls -lw katalogu i sprawdź, czy jest to ostatni plik.

Shawn Bakhtiar
źródło