Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Jak najprościej, najwydajniej lub w ogóle najlepiej oczekiwać z wykonywaniem skryptu do konkretnej godziny?
Skrypt test.sh wołany jest z zewnętrznego hosta o godzinie 23:59 i musi się zacząć wykonywać równo o północy.
Np.
#!/usr/bin/ksh while true do D=$(date "+%M") if [[ "$D" -eq 0 ]] then break else echo Waiting..... fi done echo dalszy ciag programu...
PS. nie sprawdzałem czy format minut dla północy to 0 czy 00, ale nie jest to w tej chwili najważniejsze.
Jakieś uwagi, sugestie?
Offline
man at
Tyle o uruchamianiu zadania o konkretnej godzinie.
Skrypt ma czekać?
Może pętlą, ale daj mu w pętli np sleep 1, żeby próbował co sekundę, zamiast smażenia procka.
Ostatnio edytowany przez Jacekalex (2013-12-02 16:29:07)
Offline
a nie można po prostu crona użyć? ;>
Offline
Cron'a nie mogę użyć i nie jest to moje widzimisię.
Offline
kondzio14 napisał(-a):
Cron'a nie mogę użyć i nie jest to moje widzimisię.
To napisz z łaski swojej, co to za szkoła, i kto personalnie takie durne zadania domowe wymyśla, żeby kilka pokoleń Dugowiczów wiedziało, kogo i czego omijać szerokim łukiem. :D
EDIT:
Pokaż też wynik:
echo 'notify-send -t 200000 "at zadziałał";' | at 22:00
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2013-12-02 21:47:56)
Offline
Zrób algorytm obliczania ile zostało od czasy 'teraz' do konkretnej (w twoim przypadku północ) i każ tyle spać (sleep). Tak to widzę, żeby wynaleźć drugi raz koło, ale... Po co?
Offline
Wyliczyć trudno nie jest pod Linuksem, np.:
echo $(($(date -d 'tomorrow 00:00:00' +%s) - $(date +%s)))
Da liczbę sekund do uśpienia.
No ale już nie tak prosto jest to zapisać posługując się date na AIX - jakiś odważny? :)
Ostatnio edytowany przez kondzio14 (2013-12-03 21:05:14)
Offline
Jacekalex napisał(-a):
Kod:
man atTyle o uruchamianiu zadania o konkretnej godzinie.
at jest o tyle słaby, że nie jest precyzyjny co do sekundy, a minuty...
Jacekalex napisał(-a):
Skrypt ma czekać?
Może pętlą, ale daj mu w pętli np sleep 1, żeby próbował co sekundę, zamiast smażenia procka.
Racja.
Offline
P@blo napisał(-a):
Zrób algorytm obliczania ile zostało od czasy 'teraz' do konkretnej (w twoim przypadku północ) i każ tyle spać (sleep).
Dokładnie. Tak to może wyglądać w C: (oblicza sobie ile sekund ma spać i tyle po prostu śpi):
http://pastebin.com/raw.php?i=4JKWQzgH
jakbyś chciał i masz gcc. Daleko temu do prawdziwego daemona i profesjonalizmu (uczę się C tylko w wolnych chwilach), ale powinno działać ;)
przykład; ./program 00:00:00 leafpad test
Offline
Dzięki za C, w bashu to można zapisać znacznie krócej, np. czterokrotnie krócej :)
Offline
Strony: 1