Odpowiedzi:
Możesz to zrobić bezpośrednio z shutdown command
, patrz man shutdown
:
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
Na przykład:
shutdown -h 21:45
To potrwa shutdown -h
o 21:45.
W przypadku poleceń, które nie oferują tej funkcji, możesz wypróbować jedną z następujących opcji:
at
Demon przeznaczony jest dla właśnie. W zależności od systemu operacyjnego może być konieczne jego zainstalowanie. W systemach opartych na Debianie można to zrobić za pomocą:
sudo apt-get install at
Istnieją trzy sposoby wydawania poleceń at
:
Potokuj:
$ echo "ls > a.txt" | at now + 1 min
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
Zapisz polecenie, które chcesz uruchomić, w pliku tekstowym, a następnie przekaż ten plik do at
:
$ echo "ls > a.txt" > cmd.txt
$ at now + 1 min < cmd.txt
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
Możesz także przekazywać at
polecenia ze STDIN:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls
Następnie naciśnij, CtrlDaby wyjść z at
powłoki. ls
Komenda zostanie uruchomiony w ciągu jednej minuty.
Możesz podać bardzo dokładne czasy w formacie [[CC]YY]MMDDhhmm[.ss]
, jak w
$ at -t 201403142134.12 < script.sh
Spowoduje to uruchomienie skryptu script.sh
o 21:34 i 12 sekundach 14 marca 2014 r.
Inne podejście polega na użyciu cron
harmonogramu, który jest przeznaczony do wykonywania zadań w określonych godzinach. Zwykle jest używany do zadań, które będą powtarzane, ale możesz także podać określony czas. Każdy użytkownik ma własne „crontabs”, które kontrolują, które zadania są wykonywane i kiedy. Ogólny format pliku crontab to:
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
Na przykład będzie to działać ls
codziennie o 14:04:
04 14 * * * ls
Aby skonfigurować cronjob na określoną datę:
Utwórz nowy plik crontab, uruchamiając crontab -e
. Spowoduje to wyświetlenie okna Twojego ulubionego edytora tekstu.
Dodaj ten wiersz do właśnie otwartego pliku. Ten konkretny przykład zostanie uruchomiony o godzinie 14:34 15 marca 2014 r., Jeśli ten dzień to piątek (więc OK, może działać więcej niż raz):
34 14 15 5 /path/to/command
Zapisz plik i zamknij edytor.
Ta odpowiedź SO sugeruje sposób na uruchomienie go tylko raz, ale nigdy go nie użyłem, więc nie mogę za niego ręczyć.
shutdown
. Czuję jednak to złe doświadczenie, które nie mogło być przyjemne.
shutdown
planowanie i cron
w tej samej odpowiedzi ... Niezależnie od tego, czy jest to stacja robocza, czy serwer poczty dla 1000 użytkowników (moje smutne doświadczenie), bardziej dotyczy konsekwencji złego nawyku.
shutdown
nie należy go uwzględniać cron
. (zwłaszcza z kimś, kto nie będzie wiedział, dlaczego to okropny pomysł.)
Nie, nie można podać daty w komendzie zamykania systemu, ale istnieją dwie alternatywy:
1) Najłatwiej jest użyć polecenia at . Poniższy przykład zostanie wykonany shutdown +5
o określonej godzinie i dniu:
echo "shutdown +5" | at 10:05am 2019-01-19
2) jeśli nie masz nic przeciwko użyciu kalkulatora i chcesz zamknąć w powiedzmy 24 godziny (24 * 60 = 1440 minut) i masz absolutną pewność, że system nie uruchomi się ponownie między:
shutdown -r +1440
at
polecenia.
at
nie zasługuje na wyjaśnienie. Widzę, że wierzysz inaczej. Różne umysły, różne poglądy.
shutdown
nie pozwalają na określenie daty. Ale działa zestaw narzędzi nosh shutdown
, obsługujący od dawna składnię BSD.
Zamknie system o 12:00:
$ sudo shutdown -h 12:00
Opcje:
-h, -P, --poweroff
Wyłącz maszynę.
-r, --reboot
Uruchom ponownie maszynę.
-c
Anuluj oczekujące zamknięcie.