ubuntuusers.de

Files auf ftp löschen

Status: Gelöst | Ubuntu-Version: Ubuntu 7.10 (Gutsy Gibbon)
Antworten |

hampa

Avatar von hampa

Anmeldungsdatum:
4. Oktober 2005

Beiträge: 80

Wohnort: Graubünden, Schweiz

Hallo Gemeinde

Folgende Aufgabenstellung: Ich habe eine Datei mit 0+n Filenamen. Ich möchte nun mittels Bash-Script diese Datei durchlesen und auf dem FTP-Server diese Dateien löschen.

Leider bekomme ich das mit dem Loop nicht hin. Versucht habe ich mal folgendes:

while read rmfilename
do
        if test -n $rmfilename
        then
        
        ftp -i <<EOF1
        open $HOST
        cd $BACKUPDIRFTP
        delete ${rmfilename}
        quit
        EOF1

        fi

done < $FTPLSFILE

Leider funktioniert das so nicht. 😕 Bei diesem Ansatz gefällt mir ebenfalls nicht, dass ich pro File eine FTP-Verbindung auf- und wieder abbauen sollte.

Kann mir jemand einen Hinweis geben?

Grüsse und Dank aus der Schweiz

Hampa

Tayce

Anmeldungsdatum:
3. September 2006

Beiträge: 211

Wohnort: München

del statt delete

hampa

(Themenstarter)
Avatar von hampa

Anmeldungsdatum:
4. Oktober 2005

Beiträge: 80

Wohnort: Graubünden, Schweiz

Hallo Tayce

Danke für Deine Antwort.

Hier steht jedoch was anderes: http://www.ss64.com/nt/ftp.html 🤓

Ich habe mehr ein Problem mit der "FTP-Geschichte" innerhalb der while-do Schleife. Meine Frage zielt eher dahin, ob und wie man das "richtig" macht.

Gruss Hampa

a1d3s

Anmeldungsdatum:
15. April 2008

Beiträge: 42

#!/bin/sh
#
##########################################################
#                                                                                                                #
# Dieses Script macht ein update gewisser Datein                                                #
# del/rm -f löscht die alte Datei                                                                        #
# put erste Pfad der von der Datei die geuploaded werden                                     #
# soll der 2. gibt ziel an                                                                                   #
# servername/ip durch die deines ftps ersetzen                                                   #
#username und password auch durch die vom ftp halt ersetzen                              #
#                                                                                                                #
##########################################################

ftp -n -i << EOF
verbose
open servername/ip
user username password
del /html/tmp/datei1
del /html/tmp/datei2
put /var/www/a1d3s/htdocs/datei1 /html/tmp/datei1
put /var/www/a1d3s/htdocs/datei2 /html/tmp/datei2

bye
EOF 

vllt hilft dir das weiter

e1bart0 Team-Icon

Avatar von e1bart0

Anmeldungsdatum:
12. Mai 2007

Beiträge: 927

Wohnort: München

Anderer Ansatz, du musst dich nur einmal verbinden:

#!/bin/bash
DATEI=pfad/zur/datei
KOMMANDOS=$(cat $DATEI | sed -e 's/^/del /')

# FTP verbinden....
$KOMMANDOS
quit
EOF


Einfach in jeder Zeile vor den Dateinamen ein del schreiben, und das in einer Variable speichern. Dann einfach die in der Variable gespeicherten Kommandos ausführen.

jerik

Avatar von jerik

Anmeldungsdatum:
19. August 2006

Beiträge: 425

.netrc ist vielleicht auch ein interessantes Mittel.

gruss – jerik

hampa

(Themenstarter)
Avatar von hampa

Anmeldungsdatum:
4. Oktober 2005

Beiträge: 80

Wohnort: Graubünden, Schweiz

Hallo Leute

Inzwischen habe ich es so gelöst, wie ihr unten sehen könnt. Alleine bin ich aber nicht draufgekommen. Danke lux 😠

ftp -i <<EOF
open $HOST 
cd $BACKUPDIRFTP 
mdelete *$(date -d "7 days ago" +%Y%m%d)*
quit
EOF


Gruss und vielen Dank für euer Hinweise

Hampa

Antworten |