Hallo,
ich möchte gern auf einem ftp-server rekursiv per lftp *.gz's löschen. Mit dem Ansatz curlftpfs wäre dies wohl recht einfach:
1 | find . -type f -name '*.gz' -delete; |
Leider greift bei mit so ein curlftpfs IO Bug im Zusammenspiel mit dem MS-FTP System. Bei einem Debian 6 ftp Server läuft curlftpfs seit Jahren produktiv und stabil. So habe ich für die Arbeit mit dem externen MS ftp-Server auf lftp umgestellt.
Die Doku zu lftp ist hier: //linux.about.com/od/commands/l/blcmdl1_lftp.htm:
Nur scheint die Befehlsimplementation in lftp etwas anders zu reagieren als per bash.
1 2 3 4 5 | #!/bin/bash lftp username:passwort@ftp.firmax.org -e "find . -type f -name '*.gz' -delete; bye" << EOF quit bye EOF |
oder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | golbs@maschine7:~$ lftp username:passwort@ftp.firmax.org -e "find . -type f -name '*.gz' -delete; bye" ./ ./K014/ ./K014/8000/ ./K014/8000/logs/ ./K014/8000/logs/16012500.txt.gz ./K014/8000/logs/16012501.txt.gz ./K014/8000/logs/16012502.txt.gz ./K014/8000/logs/16012503.txt.gz ./K014/8000/logs/16012504.txt.gz ./K014/8000/logs/16012505.txt.gz ./K014/8000/logs/16012506.txt.gz ./K014/8000/logs/16012507.txt.gz ./K014/8000/logs/16012508.txt.gz ./K014/8000/logs/16012509.txt.gz ... ... ./K773/0001/logs/16012600.txt.gz find: Access failed: 550 CWD failed. "/-type": directory not found. find: Access failed: 550 CWD failed. "/f": directory not found. find: Access failed: 550 CWD failed. "/-name": directory not found. find: Access failed: 550 CWD failed. "/*.gz": directory not found. find: Access failed: 550 CWD failed. "/-delete": directory not found. lftp username@ftp.firmax.org:/> |
Da ich nur ein Anwender bin tue ich mich schwer den Fehler zu finden. Über einen Tipp wäre ich sehr dankbar.
Gruß Markus