Jaki jest prosty sposób uruchomienia polecenia, powiedzmy, za 8 godzin? Mogę myśleć w ten sposób:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
Czy istnieje bardziej „właściwy” sposób?
bash
command-line
schedule
Steve Bennett
źródło
źródło
nohup
+sleep
? Dlaczego jest to „niewłaściwe”?Odpowiedzi:
Możesz użyć
at
polecenia.at
Wykonywanie poleceń w późniejszym czasie.at
Narzędzie powinno czytać polecenia ze standardowego wejścia i grupy je razem jako w-pracy, które mają być realizowane w późniejszym czasie.Zwykle
at
jest instalowany domyślnie w Ubuntu, ale jeśli wersja go nie zawiera, zainstaluj:Aby uzyskać więcej informacji, opcji, przykładów i innych, zobacz repozytorium strony Ubuntu
Przykład:
Możesz także użyć wygodnych skrótów, takich jak
tomorrow
lubnoon
, jak wOstrzeżenie: Spowoduje to natychmiastowe uruchomienie polecenia po lewej stronie potoku,ale później przedstawi jego dane wyjściowe. W przykładzie pokazano również, w jaki sposób można przenosić akcje
at
.at -c
to sposób na sprawdzenie zaplanowanych działań, które możesz wygodnie wymienić według ich liczby, jak w przypadku:źródło
at now +8 hours -f ~/myscript.sh
at 8:00
uruchomić polecenie w absolutnym czasie ibatch
„gdy wygląda na to, że komputer jest bezczynny”teatime
jest o 16.00. Z niektórych powodów nie jest wymieniony w manpages.ubuntu.com/manpages/raring/man1/at.1posix.html, ale znajduje sięman at
tutaj i tutaj manpages.ubuntu.com/manpages/raring/en/man1/at.1.html .gpio write 8 1
ale wykonałem go od razu.Tak, możesz ustawić zadanie crona.
Na przykład, jeśli teraz jest godzina 14:39:00, a dziś jest piątek, 30 sierpnia, możesz dodać następujące zadanie cron (do wykonania po 8 godzinach) w pliku crontab za pomocą
crontab -e
polecenia:Więcej o:
źródło
crontab
dopóki go nie usuniesz. Rok później, gdy zapomnisz, kto to umieścił i dlaczego, będziesz drapał się w głowie, zastanawiając się, co zrobić z poleceniem.Użyj GUI GNOME oparty na
cron
,at
i tym podobne:Wprowadzenie CronHowto sugeruje użycie
gnome-schedule
GUI, co jest znacznie przyjemniejsze niż wpisywanie wszystkich śmieci do terminala (szczególnie dla „przeciętnych” użytkowników Ubuntu, którzy nie są użytkownikami „power” * nix / bsd.)Uruchom go za pomocą Unity Dash (lub menu innych aplikacji), aby wyszukać Zaplanowane zadania lub uruchomione
gnome-schedule
.Za
gnome-schedule
pomocą skryptu w katalogu domowym można skonfigurować nowe polecenie „at” przy użyciu tego typu okna:źródło
Wymyśliłem szybki i brudny sposób na zrobienie tego, zanim się zorientowałem
at
.Załóżmy, że chcesz, aby skrypt działał w południe:
Powiedz, że chcesz, aby działał jutro w południe (dzisiaj jest dla mnie 24 listopada):
Aktualizacja : Nieco lepsza metoda: przetestuj tylko te liczby, na których Ci zależy, używając
date +FORMAT
:źródło
at
,cron
lub jakakolwiek inna aplikacja rzeczywistym harmonogramu. Planowanie zadań jest trudne i nie należy na nowo wymyślać koła.at
.at
jest to, że jego zadania przetrwają restart.