lftp, awk und pipes oder wie man komfortabel und mit Kommandozeile ftp nutzt

Posted by Daniel on Oktober 19, 2007

Ftp “mag” ich ja eigentlich nicht besonders, aber manchmal kann man halt nicht drauf verzichten. Um “das Leben” an dieser Stelle einfacher, schöner, bequemer oder interessanter zu gestalten, oder auch einfach nur um das Bedürfnis nach geekigem Lebensstil auszuleben, wurde lftp erfunden.
lftp muss zunächst installiert werden. Unter Gentoo mit

emerge -va lftp

schnell erledigt.

Jetzt wirds interessant bzw ich will durch ein paar Anregungen die Phantasie meiner Leser anregen:

  • Verzeichnisinhalt auflisten und in Datei ftpdateiliste speichern
    echo ls | lftp -u USER,PASS HOSTNAME >ftpdateiliste
  • Die 9te Spalte aus dieser Datei (=Dateinamen) auslesen und an das Kommando “rm” weitergeben (Anwendung auf eigene Gefahr!)
    echo rm $(awk ‘{print $9}’ ftpdateiliste) | lftp -u USER,PASS HOSTNAME

    Danach ist der FTP-Server wieder leer.

  • Davon kann man ich zum Beispiel mit folgendem Befehl überzeugen. Verbleibender Platz auf dem FTP-Server, besser bekannt als Quota
    echo du . | lftp -u USER,PASS HOSTNAME | awk -v LIMIT=”50″ ‘$1~/[0-9]+/ {QUOTA=LIMIT*1024*1024; print (QUOTA-$1)/1024/1024 ” GB left”}’

Bessere Vorschläge gerne in den Kommentaren…