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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-12-02 15:37:53

  kondzio14 - Użytkownik

kondzio14
Użytkownik
Zarejestrowany: 2008-02-14

[BASH] oczekiwanie na konkretną godzinę

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.

Kod:

#!/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

 

#2  2013-12-02 16:28:23

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [BASH] oczekiwanie na konkretną godzinę

Kod:

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)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2013-12-02 20:35:23

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: [BASH] oczekiwanie na konkretną godzinę

a nie można po prostu crona użyć? ;>


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#4  2013-12-02 20:59:33

  kondzio14 - Użytkownik

kondzio14
Użytkownik
Zarejestrowany: 2008-02-14

Re: [BASH] oczekiwanie na konkretną godzinę

Cron'a nie mogę użyć i nie jest to moje widzimisię.

Offline

 

#5  2013-12-02 21:35:43

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [BASH] oczekiwanie na konkretną godzinę

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:

Kod:

echo 'notify-send -t 200000 "at zadziałał";' | at 22:00

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2013-12-02 21:47:56)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2013-12-02 22:20:22

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

Re: [BASH] oczekiwanie na konkretną godzinę

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?


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#7  2013-12-03 15:38:55

  kondzio14 - Użytkownik

kondzio14
Użytkownik
Zarejestrowany: 2008-02-14

Re: [BASH] oczekiwanie na konkretną godzinę

Wyliczyć trudno nie jest pod Linuksem, np.:

Kod:

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

 

#8  2013-12-04 09:22:05

  kondzio14 - Użytkownik

kondzio14
Użytkownik
Zarejestrowany: 2008-02-14

Re: [BASH] oczekiwanie na konkretną godzinę

Jacekalex napisał(-a):

Kod:

man at

Tyle 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

 

#9  2013-12-04 18:49:25

  dominbik - Członek DUG

dominbik
Członek DUG
Zarejestrowany: 2011-07-25

Re: [BASH] oczekiwanie na konkretną godzinę

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


http://img34.imageshack.us/img34/5092/zw9m.png http://img29.imageshack.us/img29/219/pibw.png

Offline

 

#10  2013-12-05 09:57:15

  kondzio14 - Użytkownik

kondzio14
Użytkownik
Zarejestrowany: 2008-02-14

Re: [BASH] oczekiwanie na konkretną godzinę

Dzięki za C, w bashu to można zapisać znacznie krócej, np. czterokrotnie krócej :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)