Archiv verlassen und diese Seite im Standarddesign anzeigen : ftp verbindungsstatus im shell script abfangen
Hallo zusammen,
ich habe folgenden Code:
cd /var/tmp/
# create an ftp connection and put the crypted file.
ftp -n << EOF
open local.ftp
user ftp guest
binary
put private_keys.gpg
quit
EOF
das script überträgt nach einen script aufruf die datei auf das ftp verzeichniss. wie kann
ich aber Fehler wie z.B. keine Verbindung zum FTP Server abfangen?
Folgende Abfrage funktioniert leider nicht:
if [ "${?}" -ne 0 ]
then
echo fehler bei der FTP Uebertragung
fi
Kann hier jemand helfen?
vielen dank !
if (( $? != 0 )) ;then echo "Fehler"; fi
tut nicht, das was du schreibst habe ich ja schon gemacht.
if [ "${?}" -ne 0 ]
PS: != kann bei einigen unix systemen zu fehlern führen
siehe man test
Ich habe z.B einen ungültigen Host eingetragen, folgendes bekomme ich beim
FTP Connect zurück:
ftp: databoxs: Unknown host
Not connected.
Not connected.
Not connected.
das oder einen timeout muss man doch irgendwie abfangen können?
michael.sprick
22-11-2005, 11:10
Hallo,
ja - das funktioniert so nicht, weil Du ja, egal ob nun vorher Fehler aufgetreten sind oder nicht, die FTP Shell ordnungsgemäß mit quit verlässt...
Wenn Du unbedingt _das_ ftp Kommando nutzen willst, dann kannst STDERR umleiten in eine Datei und diese dann auswerten. Oder auch z.B. das HASH Kommando benutzen und aufgrund der Hashmarks, die dann ausgegeben werden, auf den erfolgreichen Transfer schließen.
Ich empfehle Dir allerdings, ncftpput zu benutzen:
ncftpput -u USERNAME -p PASSWORT <remotehost> <remotedir> <lokale Datei>
z.B.
#>ncftpput -u ftp -p guest qwerqwerqwre.de / test.key
qwerqwerqwre.de: Name or service not known.
ncftpput: cannot open qwerqwerqwer.de: unknown host.
#> echo $?
1
Gruß, michael
foobarflu
22-11-2005, 12:12
wenn Du unbedingt auf dem standard-ftp bestehen willst wirst Du `expect` benutzen müssen.
PS: != kann bei einigen unix systemen zu fehlern führen
siehe man test
die runden klammern (( $? != 0 )) haben nichts mit test zu tun, nur deine eckigen und dass diese abfrage natürlich nur was bringt wenn dein ftp client selbst ein problem hat (absturz oder so) und nicht wenn in deinem ftp script, das du ja wie schon gesagt mit quit und damit regulär beendest, ein fehler auftritt ist klar. lösung wie auch schon gesagt: output in file umleiten und auswerten.
Dir ist bewusst, dass die private_keys dann unverschlüsselt über das Netz übertragen werden und von jedermann mitgeschnitten werden können?
Also nicht nutzen, um Keys von USA nach Deutschland zu kopieren ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.