Wie Löscht Man Am Einfachsten Files Von Verschiedenen Servern?
#16
geschrieben 30. Juli 2006 - 22:06
Achso.. jetzt verstehe ichs ^^
Was für Details brauchst du denn?
Wie ichs jetzt verstanden habe, funktioniert das Python Script dann wie eine art FTP Client (nur ohne GUI?).
Also beschreib ich mal etwas genauer, wie ich mir das vorgestellt hab.
Auf verschiedenen Servern liegen Files, die gelöscht werden sollen.
Und ich hab in nem Textfile zu jeder Datei die FTP-Links (mit Login & Passwort.. wie im ersten Posting).
Das Script sollte dann irgendwie das Textfile mit den Links laden/auslesen können und die Dateien von den verschiedenen Servern Löschen.
Wenn nur ein Ordner gelöscht werden kann (z.B.: /files/) wäre das auch ok.
Ich hoffe mal, dass du das wissen wolltest und ich nicht schon wieder Schmarrn geschrieben habe ^^
@MNG
Danke für den Tipp & Link aber würde das auch mit mit mehreren Servern funktionieren?
Anzeige
#17
geschrieben 31. Juli 2006 - 19:00
ja klar, auch mit mehreren Servern. Du musst halt nur eine Batch-Datei um den 'ftp'-Befehl herumbasteln. Wenn deine Datei mit den zu löschenden Files so aussieht wie in deinem ersten Post, dann würde die Batch wohl in etwa so aussehen:
@echo off FOR /f "tokens=2,3,4* delims=/:@" %%i IN (test.txt) DO echo OPEN %%k >> ftp.ftp && echo USER %%i >> ftp.ftp && echo passwort %%j >> ftp.ftp && echo dele %%l >> ftp.ftp && echo quit >> ftp.ftp ftp -n -i -s:"ftp.ftp" > "logfile.txt" del ftp.ftp
(Vermutlich zerhaut mir das Board jetzt die Formatierung. Das sollen 4 Zeilen sein!)
Das Skript liest deine Datei aus (test.txt), parst ihren Inhalt, gibt den Inhalt als FTP-Skript in eine Datei (ftp.ftp) aus und startet dann ftp zum Abarbeiten dieser Datei. Die Rückmeldungen von ftp landen in einer weiteren Datei (logfile.txt).
Speicher dieses Skript mal als ftp_delete.bat im selben Ordner, in dem deine Eingabedatei liegt. Deren Namen musst du dann natürlich noch anpassen (im Skript, statt test.txt).
Ich hab' das jetzt schnell mal zusammengehauen und kann hier nicht testen, ob es funktioniert. Probiers halt mal aus.
Viel Glück
#18
geschrieben 31. Juli 2006 - 19:44
Connecten tut es sich schon.
Nur kommt immer die Meldung, dass das Passwort nicht stimmt, obwohl ich über den selben FTP-Link mit meinem Browser oder FTP-Clienten drauf zugreifen kann.
Zitat
331 Password required for testuser.
530 Login incorrect.
ftp> dele test.rar
530 Please login with USER and PASS
ftp> quit
221 Goodbye.
Edit:
Ich hab mir eben mal die ftp.ftp angeschaut und nach jeder Zeile kommen 3 Leerzeichen. Kommt deshalb vielleicht der Fehler?
Dieser Beitrag wurde von Hossaman bearbeitet: 31. Juli 2006 - 20:25
#19
geschrieben 31. Juli 2006 - 21:15
So noch testen dann sollte es gehen
Dieser Beitrag wurde von DatenMetzgerX bearbeitet: 31. Juli 2006 - 21:48
#20
geschrieben 31. Juli 2006 - 22:03
Formatierung des configfiles
USER;PASS;SERVER;FILE USER;PASS;SERVER;FILE DatenMetzgerX;Passwort;);ftp://myserver.com;/html/datei.rar
das ftp:// vor dem Server ist optional, wenn es vorhanden ist, wird es einfach entfernt
Also Pro datei jeweils eine neue Linie, einzelne Attribute durch Semikolons (
Standardmässig nimmt er das configfile config.txt aus dem gleichen Verzeichnis, wem das nicht passt der kann einen Startparameter übergeben
delfiles.exe 'myconfigfile.txt'
Dann nimmt er das myconfigfile.txt aus dem gleichen Verzeichnis
.:Download:.
.:Linux:. (Rechtsklick Ziel speichern unter)
Bei Linux muss der aufruf des Programmes ein wenig anders sein.
Erstens muss überprüft werden ob python installiert ist (optional 2.4+)
python -v
das Programm startet man dan mit python run.py
UNTER LINUX WURDE DAS PROGRAMM NICHT GETESTET (aber sollte laufen)
Dieser Beitrag wurde von DatenMetzgerX bearbeitet: 31. Juli 2006 - 22:10
#21
geschrieben 01. August 2006 - 09:02
1. Stimmt das echo passwort %%j so nicht, bei der Passwortabfrage darf weder PASS oder sonstetwas vor dem Passwort sehen (zumindest was den Windows FTP-CLI Client angeht).
2. Vor den Umleitungsoperatoren (>>) darf kein Leerzeichen stehen, sonst wird das Leerzeichen mit in die FTP-Skriptdatei übernommen, was nicht unbedingt schlecht ist, aber was letztendlich dazu führt, dass der FTP-Client ein zusätzliches Leerzeichen am Ende des PASS-Befehles mitsendet - was dann den Login scheitern lässt.
3. Warum auch immer - es gibt bei der Verwendung von FOR /F mit Verknüpfungen (&&) von echo und Umleitungen in Dateien ein Problem, welches bewirkt das zusätzlich noch ein Leerzeichen an das Ende jeder Zeile geschrieben wird.
4. Ein QUIT gleich nach dem ersten Server beendet den FTP-Client, es würde also nur ein Server abgearbeitet werden und dann wäre das Skript zu Ende weil ja der FTP-Client nicht mehr läuft, deshalb immer CLOSE verwenden und dann am Ende dann zusätzlich ein QUIT einfügen.
Mit diesem Skript sollte das ganze nun ohne Probleme funktionieren, auch ohne Python
@echo off for /f "tokens=2,3,4* delims=/:@" %%i IN (test.txt) DO ( echo OPEN %%k>>ftp.ftp echo USER %%i>>ftp.ftp echo %%j>>ftp.ftp echo DELE %%l>>ftp.ftp echo CLOSE>>ftp.ftp ) echo QUIT>>ftp.ftp ftp -n -i -s:"ftp.ftp" > "logfile.txt" del ftp.ftp
Dieser Beitrag wurde von puppet bearbeitet: 01. August 2006 - 15:45
#22
geschrieben 01. August 2006 - 09:46
#23
geschrieben 01. August 2006 - 10:41
DatenMetzgerX sagte:
Nö, eigentlich unter Windows. Ist doch ein stinknormales Batch-Skript.
#25
geschrieben 07. Oktober 2006 - 00:19
geht das vielleicht irgendwie das gleich alle dateien gelöscht werden und nicht nur die aus der liste?
mir fehlt bei sowas leider der durchblick

Hilfe
Neues Thema
Antworten
Nach oben


