Hallo zusammen,
ich habe ein Fragen zu Batch Script. Ich möchte von meinem Rechner aus Dateien per FTP
auf unseren Server automatisiert übertragen. Dazu rufe ich folgendes Script (upload.ftp) über meine Patch Date.aufi:
open meinedomain.de
Benutzer
Pass
cd datensicherung
mput C:\Program Files\test.txt
Y
und bekomme folgende Fehlermeldung:
230 User xxxxxxx logged in
ftp>
ftp> cd datensicherung
250 CWD command successful
ftp>
ftp> mput C:\Program Files\test.txt
C:\Program: Datei nicht gefunden
Files\test.txt: Datei nicht gefunden
ftp> Y
Ungültiger Befehl
ftp>
Sowie ich es verstehe liegt es an dem Verzeichnis "\Program Files". Durch das Leerzeichen wird nur der Bereich "Program" hergenommen.
Ich habe auch schon "Programme" probiert. Leider klappt das auch nicht. Jetzt die spannende Frage. Wir soll ich es nun schreiben?
Freue mich wirklich auf Feedback. Ich mache jetzt schon 3 Stunden rum und bin nicht ein Sekunde weiter gekommen. Wenn ich nur c: nehme klappt es
problemlos.
Grüsse Giorgio
Seite 1 von 1
Batch Datei
Anzeige
#2
geschrieben 12. April 2022 - 16:59
Grüße,
Bitte Pfadangaben die Leerzeichen beinhalten in Anführungsstriche setzen innerhalb einer Batch :-)
Also bspw. anstatt
ein
verwenden. Ansonsten erwartet die Batch-Abarbeitung nach einem Leerzeichen Parameter.
Bitte Pfadangaben die Leerzeichen beinhalten in Anführungsstriche setzen innerhalb einer Batch :-)
Also bspw. anstatt
C:\Ein Verzeichnis\Ein Unterverzeichnis\Eine Datei.txt
ein
"C:\Ein Verzeichnis\Ein Unterverzeichnis\Eine Datei.txt"
verwenden. Ansonsten erwartet die Batch-Abarbeitung nach einem Leerzeichen Parameter.
#3
geschrieben 12. April 2022 - 21:03
... ja, genau so ist es - Danke - Elektroinstallateur? Ja, das bin ich auch von Beruf...
Ich möchte noch gerne immer die letzten 3 Sicherungsdateien auf dem FTP Server
nach einer erneuten Sicherung löschen.
Soll ich für diese Frage ein neues Thema aufmachen ?
Grüsse Giorgio
Ich möchte noch gerne immer die letzten 3 Sicherungsdateien auf dem FTP Server
nach einer erneuten Sicherung löschen.
Soll ich für diese Frage ein neues Thema aufmachen ?
Grüsse Giorgio
#4
geschrieben 12. April 2022 - 21:52
Spannende Aufgabe. Mit den Standard FTP Befehlen dir, put, get, del usw. wirst du dem Script nicht beibringen können alles außer die letzten 3 Dateien zu löschen.
Du könntest aber deinem Batch Script beibringen die letzten 3 Sicherungsdateien lokal vorzuhalten und lädst immer diese 3 auf den Server hoch. Je nach Volumen deiner Sicherung kann das aber natürlich unpraktikabel sein.
Oder hast du noch anderen Zugriff auf deinen Server außer per FTP? Wenn du zB SSH Zugriff hast, könntest du ein Script direkt auf dem Server laufen lassen, der die ältesten Sicherungsdateien bereinigt.
Du könntest aber deinem Batch Script beibringen die letzten 3 Sicherungsdateien lokal vorzuhalten und lädst immer diese 3 auf den Server hoch. Je nach Volumen deiner Sicherung kann das aber natürlich unpraktikabel sein.
Oder hast du noch anderen Zugriff auf deinen Server außer per FTP? Wenn du zB SSH Zugriff hast, könntest du ein Script direkt auf dem Server laufen lassen, der die ältesten Sicherungsdateien bereinigt.
... aber bitte vorher ein Backup machen! ;-)
#5
geschrieben 13. April 2022 - 07:11
Zitat (Stef4n: 12. April 2022 - 21:52)
Du könntest aber deinem Batch Script beibringen die letzten 3 Sicherungsdateien lokal vorzuhalten und lädst immer diese 3 auf den Server hoch. Je nach Volumen deiner Sicherung kann das aber natürlich unpraktikabel sein.
Das wäre für mich eine gute Lösung. Die Sicherung kommt aus einer MS SQL Datenbank und wird immer in der Nacht vonstatten gehen.
Wie würde so ein Script den ausschauen?
Ich würde über ein zweites FTP Script dann die Sicherung auf dem Server löschen, wenn die Sicherung auf dem lokalen Rechner geklappt hat. Danach schiebe ich die lokale und aktuelle Sicherung wieder auf den Server.
#6
geschrieben 13. April 2022 - 18:34
Wieviele Files sind denn immer Bestandteil einer Sicherung? Idealerweise ist es ja eine... da würde folgende Vorgehensweise ggf. brauchbar sein - achtung: Nur logische Wege, noch keine Befehle.
so hättest du in der Summe sogar sechs Sicherungen (3 im Fallback, 3 "aktuelle") in der Rückhand.
Ebenso würde es vieles vereinfachen, wenn du lokal den FTP als Netzwerklaufwerk anbindest. So kannst du nämlich "ganz normal" ohne dieses Script-Geknote über FTP-Commands erledigen.
dann wird der Rest bspw. mit "Xcopy" bzw. "Robocopy" (persönlich mag ich das alte Xcopy mehr) erledigen.
Dann kannst du regelmäßig das "Fallbackup"-Verzeichnis neu befüllen... nur mal so als Herangehensweise....
Erstelle Verzeichnis "FallBack-Backup" auf FTP Kopiere den Inhalt (idealerweise sollten dort nur die letzten drei Sicherungen existieren) des Backupverzeichnisses ins FallBack-Backup-Verzeichnis lösche den Inhalt des Backupverzeichnisses kopiere die neuen drei Sicherungen aus dein das FTP-Backupverzeichnis Lösche die Files aus dem lokalen Sicherungsverzeichnis
so hättest du in der Summe sogar sechs Sicherungen (3 im Fallback, 3 "aktuelle") in der Rückhand.
Ebenso würde es vieles vereinfachen, wenn du lokal den FTP als Netzwerklaufwerk anbindest. So kannst du nämlich "ganz normal" ohne dieses Script-Geknote über FTP-Commands erledigen.
https://www.firestorm.ch/kb/ftp-als-laufwerk-verbinden-in-windows/
dann wird der Rest bspw. mit "Xcopy" bzw. "Robocopy" (persönlich mag ich das alte Xcopy mehr) erledigen.
Dann kannst du regelmäßig das "Fallbackup"-Verzeichnis neu befüllen... nur mal so als Herangehensweise....
Dieser Beitrag wurde von Stefan_der_held bearbeitet: 13. April 2022 - 19:25
#7
geschrieben 14. April 2022 - 12:49
OK - da benötigt man viel Wissen, das ich so leider nicht habe.
Wie kann ich den auf dem FTP Server den Inhalt eines kompletten Verzeichnisse löschen.Es sind immer 3 Dateien mit Datumsstempel im Dateinamen.
Ich habe es so probiert bekomme aber dann eine Fehlermeldung Verzeichnis oder Datei nicht gefunden...
open meinserver.de
Name
Pass
cd ../datensicherung
del Sicherung*.bak
bye
Wie kann ich den auf dem FTP Server den Inhalt eines kompletten Verzeichnisse löschen.Es sind immer 3 Dateien mit Datumsstempel im Dateinamen.
Ich habe es so probiert bekomme aber dann eine Fehlermeldung Verzeichnis oder Datei nicht gefunden...
open meinserver.de
Name
Pass
cd ../datensicherung
del Sicherung*.bak
bye
- ← batch datei für Ordner erstellen, fortlaufend
- Skript/Web-Programmierung
- FOR-Schleife funktioniert nicht →
Thema verteilen:
Seite 1 von 1