Portál AbcLinuxu, 14. května 2025 01:29

Dotaz: Seskupení příkazu

30.12.2009 11:50 Rada
Seskupení příkazu
Přečteno: 321×
Odpovědět | Admin
Ahoj, chtel jsem se zeptat, jakym zpusobem muzu spojit dva prikazy do sebe? Potrebuji udelat neco takovehoto: cmdftp -n server jmeno heslo l u { < wget http://adresa/cam.jpg>;} /cam/

tzn. potrebuji uploadovat na server to, co se stahne pres wget. Mam to udelane tak, ze se to ulozi na disk a pote se to z disku posle na server. Jenomze kdybych mel porad na disk (flash) ukladat, tak za par let jej muzu vyhodit. Proto bych se chtel zeptat jestli muzu nejakym zpusobem spojit funkce cmdftp a wget dohromady? Predem dekuji Radek
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.12.2009 12:37 e
Rozbalit Rozbalit vše Re: Seskupení příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přes ramdisk by to nešlo? Jak jsou ty soubory velké?
hikikomori82 avatar 30.12.2009 12:57 hikikomori82 | skóre: 18 | blog: foobar | Košice
Rozbalit Rozbalit vše Re: Seskupení příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
wget -qO - http://adresa/cam.jpg | nejaky_ftp_klient_ktory_vie_prevziat_subor_zo_std_vystupu
Slobodný font na technické kreslenie
30.12.2009 13:05 test
Rozbalit Rozbalit vše Re: Seskupení příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
wget http://adresa/cam.jpg && cmdftp -n server jmeno heslo l u cam.hpg /cam/
NN
30.12.2009 13:34 RobS | skóre: 12
Rozbalit Rozbalit vše Re: Seskupení příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
nejlogictejsi mi pripada postup, ktery navrhl NN.
Pokud nechces tyrat flash, tak si vytvor ten ramdisk:

mke2fs -m 0 /dev/ram0
mount /dev/ram0 [mount point]

nasledne pak

umount -u /dev/ram0

PS: ramdisk se automaticky smaze az po restartu, ne po umountu.
Amarok avatar 31.12.2009 22:40 Amarok | skóre: 33 | blog: blogoblog
Rozbalit Rozbalit vše Re: Seskupení příkazu
Ja jen dodam, ze /dev/ram nemusi v nekterych distribucich existovat, v archu neni, jak koukam, musel bych to nejak pridat.
Jednodussi mi pripada
mount -t tmpfs none /home/uzivatel/pripojnybod -o size=16m
a nebo (co uprednostuju ja, jelikoz nemusim nic nastavovat) pouzivat rovnou /dev/shm, coz je taky v RAM.
GNUniverse - May the source be with you...
30.12.2009 14:26 Rada
Rozbalit Rozbalit vše Re: Seskupení příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
ono to bezi na routeru (asus wl-500), takze nemam moc moznosti. Jde o to ze chci dostat z webkamery fotky pres ftp na server. Takze bych zrejme potreboval spojit cmdftp s wget. Na misto kde cmdftp chce zdrojovy obrazek by se vlozil ten wget, napadlo me jestli to muze byt v nejake promenne a pridat k tomu pak priponu jpg. Myslite ze by se to nejak dalo? Predem diky
30.12.2009 14:35 RobS | skóre: 12
Rozbalit Rozbalit vše Re: Seskupení příkazu
jde o to, ze cmdftp nechce zdrojovy obrazek, ale cestu k obrazku - ktery tedy musis nejdrive stahnout.
Kdyby ten prikaz umel nacitat ty soubory pro upload ze stdin, pak by se dalo provest to, co jsi navrhoval.
Jo a pokud na tom zarizeni bezi linux, mel by tam byt i imho i ramdisk:)
1.1.2010 03:50 Martin
Rozbalit Rozbalit vše Re: Seskupení příkazu
Ak tam máš nainštalovaný OpenWrt, tak v defaulte je adresár /tmp ako tmpfs, čiže ak do neho zapisuješ, tak sa neničí flash ale ukladá sa do RAM. Pre istotu ešte skontroluj príkazom mount. No a tento router má luxusných 32MB RAM, takže miesta je dosť.

Takže by som navrhoval taký postup, že si obrázok uložíš do /tmp a potom odošleš na server.
30.12.2009 14:52 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Seskupení příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
wput -I "wget -O - ftp://donwloadurl; echo > /dev/null" ftp://uploadurl
Ci ale v skutocnosti si to nepise niekam do docasneho suboru si over cez strace. Este je moznost vyuzit tmp-like adresar /dev/shm, kam byva namountovany tmpfs zijkuci v RAM.
If you hold a Unix shell up to your ear, you can you hear the C.
31.12.2009 21:41 jka | skóre: 10
Rozbalit Rozbalit vše Re: Seskupení příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím, jestli to půjde na tom Asusu bez nějakého komplikovaného doinstalovávání, ale ještě je možnost přimountovat disk ze serveru přes FTPFS a pomocí wget to potom ukládat rovnou do připojeného adresáře.
31.12.2009 23:38 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Seskupení příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Přesně na tohle má bash process substitution:

  cmdftp -n server jmeno heslo l u <( wget http://adresa/cam.jpg ) /cam/

Funguje to tak, že konstrukce <(...) se expanduje na jméno souboru, ze kterého když budete číst, přečtete to, co příkaz uvnitř závorek posílá na standardní výstup.

Případně bych zkusil, jestli ten cmdftp neakceptuje pomlčku jako zástupný symbol pro standardní vstup, pak by šlo i

  wget -q -O - http://adresa/cam.jpg | cmdftp -n server jmeno heslo l u - /cam/cam.jpg

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.