Holen Liste von Dateien vom FTP-server
Ich versuche zu bekommen eine Liste von allen Dateien, die wir haben auf einem server ( speziell die von jedem pdf-Datei, die wir dort haben ). Ich habe versucht mit total commander und nach den Dateien gesucht. Es funktionierte zum Teil, wie in, ich habe eine Liste mit allen pdf-wir hatten es, aber nicht, wie der Export der Ergebnisse ( wir haben 100.000+ Dateien )
Habe ich versucht, mit Hilfe ein bash-Skript, um die Informationen, aber ich bin nicht sehr erfahren mit linux, und ich weiß wirklich nicht, was ich Tue.
Mein Skript sieht wie folgt aus :
#!/bin/bash
hostname="<host>"
ftp -i -nv $hostname << EOF
user <username> <password>
ls -R
EOF
Ausführen der oben genannten script bekomme ich
?Invalid command
501 Illegal PORT command
ftp: bind: Address already in use
221 Goodbye
Jede Hilfe oder verweist mich auf das, was zu suchen würde sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen zu konfigurieren
ftp
verwenden den PASV (passiv) Modus für die Datenübertragung. Dies geschieht mit der-p
wechseln.Ich bin mir nicht sicher, ob Sie in der Lage zu tun, eine rekursive Dateiliste mit diesem ftp-client.
ls -R
in meinem Fall, nur gab die Liste der Dateien und Verzeichnisse im aktuellen Verzeichnis. Vielleicht Rekursiver FTP-Verzeichnis in der shell/bash-mit einer einzigen Sitzung (mit cURL oder ftp) wird Ihnen helfen.Mit curl, das ist praktisch,
curl ftp://yourftpserver/dir/ --user username:password
curl -l
gibt nur die Namen.curl ftp://yourftpserver/dir/ --user "$(cat .userpw)"
ncftpls ftp://yourftpserver/dir/*.pdf
Beachten Sie, dass Muster wie
*.pdf
usw. der obige Befehl nicht funktionieren, wie erwartet.Für rekursive Verwendung
-R
. Für weitere Optionen, sieheman ncftpls
.ncftpls
wird durch diencftp
Paket. Für RHEL, dieses Paket ist in derepel
repo.Den letzten
/
ist ein muss, wenn es ein Verzeichnis ist. Dieser arbeitete in der curl-version 7.29.0Als angegebenen in einem meiner Kommentare, verwenden Sie keine Benutzer:Kennwort als nur-text in Ihre Befehle immer, sonst sind Sie laufen Gefahr, beeing Geschichte hjacked! Verwenden Sie stattdessen mindestens eine protected/restricted-Datei mit den Benutzernamen+Passwort ein und ersetzen Sie in den Befehl ein, z.B.:
In der Erwägung, dass .userpw ist Ihr geschützt/eingeschränkt-Datei mit den Beispiel-Inhalt: myusername:mypassword