Portál AbcLinuxu, 12. května 2025 01:47
Dobry den.
Sice to funguje ... ale jde to zapsat v sh nebo bash bez fifo, nebo alespon citelneji?
A na /dev/tcp/localhost/8080 se odkazovat nemohu.
#!/bin/sh mkfifo /tmp/blablafifo ( telnet 127.0.0.1 8080 < /tmp/blablafifo \ | ( echo -ne 'GET /serazeno.csv HTTP/1.0\n\n';cat 1>&3) \ > /tmp/blablafifo \ ) 3> serazeno.`date +%s`.csv rm /tmp/blablafifoMarek
Dobry den.
Na serveru, kam nemohu nic instalovat a nic tam prakticky nainstalovano neni, potrebuji kazdy den precist data z demona, ktery ma http rozhrani na portu 8080.
Ten priklad vlastne dost neobratne emuluje prikaz wget.
Nevhodne jsem predpokladal, ze kdo to nevidi, tak mi asi take neporadi.
Omlouvam se.
MarekDobry den.
Ten telnet se zavre, jakmile to echo ukonci spojeni na jeho stdin. Takze neceka na to co mu prijde po siti a nezapise to na svuj stdout.
MarekDobry den.
Ten skript funguje:
vytvori pojmenovanou rouru
pusti telnet, ktery cte z pojmenovane roury
pusti dalsi instanci shellu, ktere stdout je presmerovan do pojmenovane roury:
zapiseme do pojmenovane roury ten GET, a vsechno co prijde na stdin posleme do 3
Tim jsme docilili, ze dokud je co cist (ten cat), tak se nova instance shellu neukonci, a na jeji stdout nic netece.
Pak uz staci 3 zapsat do souboru.
Vlastne by bylo asi lepsi to napsat bez toho 3:
#!/bin/sh TMPFILE=`mktemp -td "tel.XXXXXXXXXX"` || exit 1 mkfifo "$TMPFILE/telnetin" telnet 127.0.0.1 8080 < $TMPFILE/telnetin | ( echo -ne 'GET /serazeno.csv HTTP/1.0\n\n' cat > serazeno.`date +%s`.csv ) > $TMPFILE/telnetin rm "$TMPFILE/telnetin" rmdir "$TMPFILE"Marek
curl -o serazeno.`date +%s`.csv http://127.0.0.1:8080/serazeno.csv
(prípadne niečo podobné s wget, lynx...)?
printf 'GET index.html HTTP/1.0\n\n' | telnet localhost http > /tmp/iindex
{ printf 'GET /index.html HTTP/1.0\n\n'; sleep 1d& } | { telnet localhost http > /tmp/iindex; kill %1; }
Dobry den.
To neni spatne.
To puvodni reseni ma ale vyhodu, ze se da vyhodnocovat vystup a podle toho upravovat vsup (pokud ten cat nahradim treba tee a awk).
Vlastne takova emulace prikazu expect.
Mne slo spis o vyreseni toho presmerovani.
Dekuji.
Marek
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.