Portál AbcLinuxu, 26. dubna 2024 11:17


Dotaz: Skript

12.11.2011 23:56 z33
Skript
Přečteno: 411×
Odpovědět | Admin
Dobrý den, chtěl bych se zeptat na následující :

Mám skript který mi otevře v okně xterm a pak pomocí ncftpput uploadne data na ftp server. (toto funguje když na skpript poklepu myší)

Chtěl bych se zeptat jak se dělá aby se tento skript spouštěl donekonečna s prodlevou třeba 5 sekund ? (aby se zacyklil)

Tet to dělám tak že příkaz v tom skriptu "ncftpput" napíšu několikrát pod sebe a mezi ně dám příkaz sleep 5s, ale toto není řešení protože bych toto musel ve skriptu mít rozkopírováno donekonečna.

díky z33


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (z33 (tazatel))
13.11.2011 00:06 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
while true; do 
   ....
   sleep 5s
done
13.11.2011 15:57 z33
Rozbalit Rozbalit vše Re: Skript
Paráda už to jede do nekonečna :) Nyní ale nastal problém, že když daný skript spustím, nevím jak ho ukonči ? v "TOP" ho nějak nevidím takže ho killnout neumím a zastavím ho jenom tak že resnu PC.
13.11.2011 16:05 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Skript
Jistěže není v topu, protože nic nežere. Ale vidíš ho ve výpisu procesů (ps axw), příp. v pstree -p. Takže vypneš příkazem

kill PID

kde PID je číslo toho procesu (první sloupec ps axw).

Případně

killall název_skriptu

Ale ten reset PC taky funguje spolehlivě :-)

13.11.2011 16:53 z33
Rozbalit Rozbalit vše Re: Skript
Paráda tak sem se zas něco přiučil díky.
Jendа avatar 13.11.2011 18:40 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Skript
No a nebo zmáčkne v okně toho xtermu víckrát po sobě Ctrl-C, ne?
13.11.2011 18:57 z33
Rozbalit Rozbalit vše Re: Skript
No to okno se otevře a okamžitě zavře to sem nedá stihnout. Každopádně kill pomocí ps axw jak psal dustin pohodlně funguje.
13.11.2011 15:26 Buri
Rozbalit Rozbalit vše Re: Skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
neviem teraz ci CRON ide az po sekundy , ale ak staci "treba" kazdu minutu tak bych to nacronoval editaciou cron tabulky : crontab -e
13.11.2011 15:56 Kit
Rozbalit Rozbalit vše Re: Skript
Cron funguje po minutách, ale 12 sleepů už asi nebude problém.
13.11.2011 16:03 z33
Rozbalit Rozbalit vše Re: Skript
No Cron umí jenom po minutách, a stejně se mi ho nepodařili zprovoznit. Měl jsem úlohu vepsanou v Crontab po minutě (* * * * *) ale už sem samotný Cron nespustil. Když sem dal cron start nebo cron status tak mi vypsal hlášku " cron: can't lock /var/run/crond.pid, otherpid may be 1006: Resource temporarily unavailable" Takže Cron sem nepoužil.

Ale první odpověď od dustina mi funguje. dik
13.11.2011 16:06 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Skript
Na většině distribucí je cron již spuštěný defaultně. Zřejmě jsi jej spouštěl ještě jednou.

Práce s cronem je zcela spolehlivá a jednoduchá.
13.11.2011 17:03 z33
Rozbalit Rozbalit vše Re: Skript
Dělám to na Ubuntu ale nevím kde dělám chybu. zkoušel sem to takto"

1) vytvořil sem si akci v crontab

2) cronab -l sem si ověřil že v něm je tento zápis (* * * * * /home/z33/testskript/xterm.sh

3) funkčnost skpriptu sem si ověřil tak, že pokud na něho poklikám myší tak se provede

a co dál ? pokud cron je již automaticky spuštěn, měly by se dle zadaných parametrů provádět příkazy uložené v crontab ? nebo je třeba ještě něco provést ? když sem uložil crontab tak se nic nedělo díky z33
Josef Kufner avatar 13.11.2011 18:26 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Skript
Pokud to nefunguje, tak ti nejspíš přišel mail.
Hello world ! Segmentation fault (core dumped)
13.11.2011 19:00 z33
Rozbalit Rozbalit vše Re: Skript
Mail ? odkud ? vše spouštím na lokálním PC
13.11.2011 21:38 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Skript
Ano, od cron-a.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Jendа avatar 13.11.2011 18:41 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Skript
Má skript +x práva? ls -l /home/z33/testskript/xterm.sh
13.11.2011 19:03 z33
Rozbalit Rozbalit vše Re: Skript
Má práva rwxr-xr-x takže asi jo
13.11.2011 18:42 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Skript
A co má ten skript dělat? S nejvyšší pravděpodobností tam děláš něco, co buď předpokládá nějak nastavené proměnné prostředí (USER, HOME, atd.), nebo s ještě vyšší pravděpodobností otevíráš nějaká Xková okna, což samozřejmě tak jednoduše z cronu fungovat nebude. Je potřeba povolit autorizaci v Xkách a hlavně nastavit proměnnou prostředí DISPLAY.
13.11.2011 19:19 z33
Rozbalit Rozbalit vše Re: Skript
Potřebuji co 5s zasílat obrázek z webkamery na moji stránku. Upload jsem dělal pomocí "ncftp" tím že sem ho potvrzoval v příkazovém řádku.

Abych ho nemusel pořád v řádku potvrzovat (šipka nahoru+ ener) tak sem si napsal skript, který se spoušti poklepáním myší.

xterm -e  ncftpput -u XXX -p XXX  XXX.wz.cz /  /home/z33/motion/snapshot.jpg 
Abych ho nemusel poklepávat myší, chtěl jsem ho zkusmo aspoň co minutu spouštět pomocí Cronu, to však nefungovalo tak sem to udělal pomocí toho cyklu. ten "xtem -e" jsem tam měl jenom pro vizuální kontrolu že se něco děje (vyskakovalo okno při uploadu).
13.11.2011 20:21 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Skript
Ten xterm z crona takto neotevřeš, to ti fungovat nebude. Navíc jej vůbec není potřeba. Prostě volej rovnou to ncftpput.
13.11.2011 20:34 z33
Rozbalit Rozbalit vše Re: Skript
No a kdybych rovnou volal ncftput tak by mi to přes cron šlo ?
13.11.2011 20:39 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Skript
Netestoval jsem to, ale nevidím důvod, proč ne. Xterm je grafický terminál, ve kterém se stejně spustí shell (bash). A ten spustí to ncftpput. Stejně tak cron spustí shell a v něm to, co dáš na ten řádek. Z cronu se Xkové programy nespouští. Ne že by to nešlo zařídit, ale nikdy jsem to ani nikde neviděl, ani hlavně nepotřeboval.
13.11.2011 21:01 z33
Rozbalit Rozbalit vše Re: Skript
Aha tak to sem se nikde nedočetl. Každopádně díky moc za rady.
13.11.2011 21:05 Kit
Rozbalit Rozbalit vše Re: Skript
Netestoval jsem to, ale nevidím důvod, proč ne.
Cron nemá nastavenu proměnnou DISPLAY, takže neví, kde to okno xtermu má otevřít.
13.11.2011 21:07 z33
Rozbalit Rozbalit vše Re: Skript
Aha hmm to zkusím rozjet až někdy příště. díky moc
13.11.2011 21:12 Kit
Rozbalit Rozbalit vše Re: Skript
Zrovna jsem tu proměnnou zkusil nastavit a jelo to:
* * * * * DISPLAY=':0' /usr/bin/xterm
Ale stejně by se to tak nemělo dělat. Na provedení příkazu FTP terminál nepotřebuješ.
13.11.2011 21:41 z33
Rozbalit Rozbalit vše Re: Skript
Super, ja sem ten terminal měl jenom jako vizualni kontrolu že to jede. diky Mohlo by se teda pomocí toho spouštět v určitý čas třeba chrome nebo tak něco ? (jen ze zvědavosti)
13.11.2011 21:58 Kit
Rozbalit Rozbalit vše Re: Skript
Chrome? Šlo by to, ale zrovna takový program bych přes cron určitě nespouštěl.
14.11.2011 14:06 z33
Rozbalit Rozbalit vše Re: Skript
Ja jenom abych měl představu. diky
13.11.2011 22:02 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Skript
Jelo to, protože to běželo pod stejným uživatelem. Pokud bys to načasoval pod jiným, budeš ještě muset řešit přístupová práva k X serveru (xauth).
14.11.2011 14:07 z33
Rozbalit Rozbalit vše Re: Skript
No ja to všechno dělám pod jedním uživatelem. Tohle zatim nebudu řešit to je na mě zatim už moc. diky
13.11.2011 19:03 l4m4
Rozbalit Rozbalit vše Re: Skript
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proč se to otevírá nějaký xterm a teprve v něm spouští ncftp???

To se to přenáší tak pomalu, že je užitečné sledovat progress? To mi při spouštění každých 5 s nějak nedává smysl.
13.11.2011 19:07 z33
Rozbalit Rozbalit vše Re: Skript
No přes ten xterm mi to jelo abych viděl že mi to cele funguje, že se vubec něco děje. tet už mi to běži bez toho xtermu na pozadí.
13.11.2011 21:11 pavel
Rozbalit Rozbalit vše Re: Skript
No a máš nějak ošetřené to kill? Myslím ukončení toho procesu - co když se "strefíš" a ukončíš program v polovině přenosu...
13.11.2011 21:37 z33
Rozbalit Rozbalit vše Re: Skript
No to nemám, přinejhorším to killnu zrovna v polovině uploadu ale to zas nebude takovy problem, buď se tam ten obrázek nenahraje celý nebo nevim. já to killuju jenom když něco zkoušim a pak to zase spustim.

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.