FTP: Löschen & Synchronisieren

Hexor Reynolds

Lt. Commander
Registriert
Apr. 2006
Beiträge
1.294
Hallo zusammen,

ich möchte ein lokales Verzeichnis 1x die Woche auf einen FTP uploaden,
vorher soll das Verzeichnis auf dem FTP Server immer gelöscht werden damit ich auch wirklich
nur die aktuellen Daten aus dem lokalen Verzeichnis habe.

Ich dachte daran dies über eine Batch Datei als Windows Task einzuplanen.

Hat jemand zufällig so ein Skript zur Hand?

Danke.
 
Such dir ne Liste der FTP Befehle (oder mach vorher nen Test mit FileZilla o.ä. und werte die Logs aus), dann kannst du ganz einfach mittels ftp.exe -s:<dateiname mit befehlen> Transaktionen mit FTP-Server ausführen.
 
ncftpput/get bzw lftp (beides verfügbar via cygwin) können sowas. Gibt auch jede Menge Beispiele dafür im Netz.
 
Dazu gibts sicher hunderte Programme die das können; FreeFileSync kann das bestimmt auch.

Warum ein jede Woche? Warum die Daten löschen? Wenn das als Backup für sehr wichtiges Dienen soll würde ich es sogar verschlüsseln, solange darauf niemand außer du darauf zugreifen können soll.
Ich würd die Daten versuchen so aktuell wie möglich zu halten, also nur die Veränderung sofort bzw. so bald als Möglich auf den Server zu schieben und dann jede Woche ein separates Backup vom Server automatisch erstellen lassen bzw selber eins machen. Je nach Speicherplatz kann man ja auch dann jeden Monat die überflüssigen Backups löschen.
 
Ich möchte kein fertiges Programm sondern ein selber geschriebenes Skript.

Ich habe 2 Batch Dateien angelegt die Folgendermaßen aussehen:

1. script.bat

open ftpURL
user USERNAME
pass PASSWORD
binary
mput C:\Users\xy\Desktop\Test\*.*
bye

2. upload.bat

ftp -i -s:C:\Users\xy\Desktop\script.bat


Leider kommen beim Aufruf der upload.bat folgender Fehler:
Password required for User -> Passwort ist aber hinterlegt, was mache ich falsch?
 
einfach den Total Commander nehmen (ghisler.com) und dort via ftp den Kopiervorgang starten. wenn am Ziel schon eine gleichnamige datei ist, fragt er, wie er fortfahren soll, hier einfach auswählen: "alle älteren überschreiben" und fertig. auf diese weise werden aber nicht weiterverwendete Datei(-namen) nicht gelöscht, sondern quasi als alter Stand einfach behalten.
 
Das Hochladen funktioniert jetzt mit meinem Skript,
das löschen der Dateien auf dem FTP allerdings noch nicht:

open adresse
User
Passwort
prompt off
mdelete *.*
binary
mput C:\Users\xy\Desktop\Test\*.*
bye

Jemand noch ne Idee wie ich vor dem Upload alles auf dem FTP lösche?
 
Hast du es schon mit (X)RMD versucht? Einfach das Verzeichnis vorher löschen, neu erstellen und dann alles hochladen. Weiß nur nicht, ob das Verzeichnis dafür bereits leer sein muss oder nicht.
 
So?

open adresse
name
pasword
XRMD *.*
binary
mput C:\Users\xy\Desktop\Test\*.*
bye

bekomme dann ungültiger Befehl...
 
Nein du erstellst dir einfach nen Ordner upload o.ä. Dann machst du einfach ein RMD upload oder XRMD upload (je nachdem was der Server unterstützt, wenn es denn nicht leere Ordner löscht) und erstellst den Ordner dann mit MKD upload neu. Wechselst dann dahin mit CWD upload und lädst dann dort die Dateien rein.
 
Bei RMD/XRMD Verzeichnis bekomme ich immer die Fehlermeldung 550, woran kann das liegen?
 
Hast du denn Schreibrechte da drin? Normalerweise solltest du ein 257 zurückbekommen als Status.
 
Bin heute nochmal dazu gekommen und es hängt leider immer noch am löschen :D
Ich will ein Verzeichnis welches Daten enthält löschen und bekomme immer Meldung 550 zurück.
Gibt es sonst noch irgend etwas was man beachten muss?


RMDIR Test\*.*
RMDIR Test

funktioniert beides nicht. Der User hat alle rechte.
 
Zurück
Oben