Portál AbcLinuxu, 17. dubna 2024 02:00


Dotaz: Jak provádět příkaz každých 5 sekund?

5.7.2007 16:59 huu
Jak provádět příkaz každých 5 sekund?
Přečteno: 1234×
Odpovědět | Admin
Jak provádět příkaz každých 5 sekund? Zkoušel jsem fcron ale ten je schopen provádět příkaz každých 10 sekund. :-(
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

vencour avatar 5.7.2007 17:06 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Odpovědět | | Sbalit | Link | Blokovat | Admin

O co má jít? while true; do X; sleep 5; done by šlo?

Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
5.7.2007 17:13 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Tohle snad funguje jen za předpokladu, že do X trvá po dobu t=0, ne? :)
5.7.2007 17:16 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
  while true; do X & sleep 5; done

:-)

5.7.2007 17:30 huu
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
hezké ale já potřebuji aby se mi příkaz spustil v

14:30:15

14:30:20

14:30:25

atd

while true; do X & sleep 5; done

to nesplní protože se k těm 5 sekundám přičte doba provádění příkazu :-(
danman avatar 5.7.2007 17:44 danman
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
a co keby si takto dal time [prikaz] , zistil si cas behu, a potom to odcital od 5 sekund , mohlo by to fungovat
krize a volici pravice:plesnive syry, stara vina a auto bez strechy levice:plesnive vina, stare syry a auto bez koles
5.7.2007 17:52 Jarek Čecho | skóre: 13 | blog: Jarcec_Zone | Koprivnice
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
A proc by to proste neslo se spoustenim na pozadi?

while true; do X &; sleep 5; done
5.7.2007 18:07 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Jakého příkazu? Myslíte true? Nebo snad vyhodnocení toho cyklu?
5.7.2007 18:01 huu
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
No raději to budu dělat takhle
sudo fcrontab -e

@ 10s sleep 0; touch "/home/`date`"
@ 10s sleep 5; touch "/home/`date`"
6.7.2007 13:53 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Takže chceš, aby se v nějakém adresáři vytvářely soubory každých pět sekund a asi předpokládáš, že sekundy budou vždy končit nulou nebo pětkou. Prozatím ale žádné řešení, které se zde objevilo, nebude fungovat spolehlivě (ani to moje, které jsem psal včera).
Jestli nenajdu nějakou další chybu, tak se mi zatím jeví nespolehlivější a nejpřesnější tohle:
#!/usr/bin/python
import time

while True:
    time.sleep(0.1)
    now = time.time()
    time_to_wait = 5 - now % 5
    end_time = now + time_to_wait + 0.9
    time.sleep(time_to_wait)
    filename = time.asctime(time.localtime(end_time))
    file('/tmp/' + filename, 'w')
Hrozí totiž race-condition. Stačí, aby se např. proces vzbudil v 4.9999 sekund a asctime (potažmo date) to převede na čtyři.
5.7.2007 19:10 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Třeba takhle:
#!/usr/bin/python
import time, subprocess

while True:
    time.sleep(0.1) #pro jistotu
    time.sleep(5 - time.time() % 5)
    pr = subprocess.Popen(['date'])
    pr.wait()
Tohle bude pouštět příkaz "date" každých _celých_ pět sekund.
5.7.2007 20:17 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Offtopic: na co? (sem zvedavy)
5.7.2007 20:50 Dušan Hokův | skóre: 43 | blog: Fedora a další...
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Odpovědět | | Sbalit | Link | Blokovat | Admin
cron
d.f.h avatar 5.7.2007 21:17 d.f.h | skóre: 8 | Praha
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
ne
5.7.2007 23:22 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Ale ano, šlo by to. Třeba tak, že si necháte každou minutu spustit 12 úloh a před provedením příkazu je necháte čekat 0, 5, … 55 sekund.
Josef Kufner avatar 6.7.2007 21:01 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Bohužel, cron není příliš přesný a jak jsem zjistil, nespouští to v celou minutu, ale s menším (občas větším) zpožděním, které sice obvykle nijak nevadí, ale na tohle už se to nehodí.
Hello world ! Segmentation fault (core dumped)
6.7.2007 14:47 Tomas
Rozbalit Rozbalit vše Re: Jak provádět příkaz každých 5 sekund?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kdybys napsal k cemu to potrebujes, tak ti spousta lidi poradi daleko lepe.

Napada me nekolik zpusobu, jak to udelat, ale ktery z nich je lepsi? - to zalezi prave na situaci...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.