2017-12-27 17 views
0

ich überprüfen müssen, ob eine Datei via wget existiert und testen Sie die Exit-CodeCheck Existenz von ftp-Datei und Parse-Exit-Code

Nun, ich bin mit dieser:

wget -q --spider --ftp-user='ftpuser'--ftp-password='ftpassword' ftp://192.168.1.63/fileexists.txt 
echo $? #0 

und seine return code is 0

Aber im Fall der Datei nicht existiert

wget -q --spider --ftp-user='ftpuser'--ftp-password='ftpassword' ftp://192.168.1.63/filenotexist.txt 
echo $? #0 

seine return code is equal 0,obwohl es nicht

ist Deshalb habe ich ohne --spider Option versucht, und ich bekam 8 als Exit-Code, was bedeutet, dass die Datei nicht existiert

Aber, wenn es einen gibt, lädt das wget es tatsächlich herunter. Das Problem ist, wenn ich eine große Datei zu "überprüfen" haben.

Irgendwelche Ideen?

Danke

+0

Verwenden Sie ein anderes Dienstprogramm als 'wget'. Es gibt einen namens 'lftp', der vernünftig skriptfähig ist. – tripleee

+0

-bash: lftp: Befehl nicht gefunden ... kann nicht verwendet werden –

+0

Welche Version von 'wget' ist das? – Joe

Antwort

1

Wie wäre es mit Curl?

curl -I --silent ftp://username:[email protected]/filenotexist.txt >/dev/null 

$? ist 0, wenn die Datei existiert, $? ist nicht 0, wenn die Datei nicht existiert.

+0

Ich bevorzuge wget, aber ich werde diese Alternative verwenden Vielen Dank –