Kedves fórumozók!
Bash problémával kapcsolatban kérném segítségeteket.
Adott egy ftp szerver, amire fájlokat kell ütemezve (crontab) feltölteni. A feltöltés sikerességét kellene ellenőrizni egy másik scriptből úgy, hogy a helyi archive mappa tartalmát kellene összehasonlítani a távoli gép ment könyvtárával. A listát le tudom kérni, csak ott akadtam el, hogy az ftp kimenetét hogyan tudnám egy tömbben letárolni, hogy azzal dolgozni is tudjak. Elvileg elég a fájlnév+méret egyezőséget ellenőrizni, amit cut-al simán le tudok válogatni, ha meg van a tömbösítés. Az ellenőrzéssel se lesz gondom, csak a kimenetet kéne valahogy elkapni.
echo -e $FTP_COMMAND | ftp -n
/IDE KÉNE AZ ELKAPÁS/
Az FTP_COMMAND értelem szerűen előtte soronként fel van építve és működik.
A gondom az, hogy sehogy nem tudom a kimenetet megfogni, mert azt a local mailboxban kapom csak meg :s
A segítséget előre is köszi.
- 136913 megtekintés
Hozzászólások
"csak a kimenetet kéne valahogy elkapni.", "sehogy nem tudom a kimenetet megfogni, mert azt a local mailboxban kapom csak meg"
Az ftp ls parancsa nem jó, ha megadod neki a file-t az interaktív mód kikapcsolása mellett (prompt vagy -i)? Vagy a shellben egy egyszerű standard output átirányítás egy ideiglenes file-ba?
- A hozzászóláshoz be kell jelentkezni
Szia!
Igen, az is egy járható út, csak nem akartam volna átmeneti fájlokkal bajlódni, egyszerűbb lett volna egyből egy tömbváltozóba berántani, és azt már utána szépen fel tudom dolgozni. De akkor valszeg marad a tempfájlos megoldás.
- A hozzászóláshoz be kell jelentkezni
echo ls -la ... | ftp user@host | while read line; do
# itt azt csinálsz vele, amit akarsz, a $line változóban van a kiköpött sor,
# ellenõrizheted, h fájl-e (expr "$line" : "[dl-][rwx]{9}" # lehet h escape-elni kell)
# meg ki is csapkodhatod belõle a méretet, fájlnevet
done
ajánlom még az lftp nevũ progit!
- A hozzászóláshoz be kell jelentkezni