Mam plik tekstowy zawierający określoną datę i godzinę. Chcę mieć możliwość uruchomienia skryptu w czasie określonym w tym pliku. Jak byś to osiągnął? Utworzyć inny skrypt działający w tle (coś w rodzaju demona) i co sekundę sprawdza, czy aktualny czas jest zgodny z czasem w pliku? Czy jest inny sposób? Maszyna jest serwerem linuxowym , Debian wheezy. Z góry dziękuję
81
Odpowiedzi:
Spójrz na następujące:
echo "ls -l" | at 07:00
Ta linia kodu wykonuje „ls -l” w określonym czasie. To jest przykład wykonania czegoś (w moim przykładzie polecenia) w określonym czasie. „at” to polecenie, którego naprawdę szukałeś. Możesz przeczytać specyfikację tutaj:
http://manpages.ubuntu.com/manpages/precise/en/man1/at.1posix.html http://manpages.ubuntu.com/manpages/xenial/man1/at.1posix.html
Mam nadzieję, że to pomoże!
źródło
Can't open /var/run/atd.pid to signal atd. No atd running?
jakieś wskazówki?atd
uruchomionego demonaat
. W Manjaro OpenRC możesz po prostu zainstalowaćat-openrc
i dodać usługę demona atd za pomocą:sudo rc-update add atd
i zacząć odsudo rc-service atd start
. Zwykleat
pakiet zawierał jużsystemd
(domyślny system init / service w różnych dystrybucjach linux, w tym Ubuntu) usługę, z którą można go uruchomićsudo systemctl start atd
i włączyć autostart przy inicjalizacjisudo systemctl enable atd
.at -c
użycie. Po co to, jeśli sposobem wykonania polecenia jest potokowanie go do wejścia standardowego?at
Polecenia istnieje specjalnie do tego celu (w przeciwieństwie docron
, która jest przeznaczona do planowania zadań cyklicznych).źródło
$(< file)
Cron jest dobry do czegoś, co będzie uruchamiane okresowo, na przykład w każdą sobotę o 4 rano. Jest też anacron , który działa wokół wyłączeń zasilania, usypiania i tak dalej. Jak również w .
Ale w przypadku jednorazowego rozwiązania, które nie wymaga roota ani niczego innego, możesz po prostu użyć daty do obliczenia sekund od epoki czasu docelowego, a także czasu obecnego, a następnie użyć wyrażenia, aby znaleźć różnicę, i spać tyle sekund.
źródło
at
Praca pozostanie zaplanowano nawet jeśli urządzenie zostanie ponownie uruchomiony w międzyczasie.Zwykle w Linuksie używasz
crontab
do tego typu scdulowanych zadań. Ale musisz określić czas, kiedy "ustawiasz licznik czasu" - więc jeśli chcesz, aby był konfigurowalny w samym pliku, będziesz musiał stworzyć jakiś mechanizm, aby to zrobić.Ale generalnie użyłbyś na przykład:
Wykonywałby skrypt w każdy piątek o 1:30 (rano) tutaj:
30
to minuty1
to godzinanastępne 2 * są
day of month
imonth
(w tej kolejności) i5
jest dniem tygodniaźródło