SilenZer 10 Geschrieben 18. Januar 2008 Melden Teilen Geschrieben 18. Januar 2008 Ich soll ein Script schreiben, welches überprüft, ob der User neue Daten erzeugt hat, wenn ja, sollen diesen auf einen Server Kopiert werden. Anschließend soll der Transfer der Daten überprüft werden, sprich ob die Originaldateien mit den kopierten Dateien übereinstimmen. Ist dies alles erledigt soll eine Logfile erstellt werden und per E-Mail versendet werden. Den leichten teil mit dem Kopieren habe ich mit einer Batch Datei gelöst und das funktioniert soweit. Hier ist mein Quelltext, damit ihr seht wie weit ich bin: @echo off xcopy g:\test\*.* h:\safe /e/s/y/d FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j rename h:\safe\safe "%dat%%zeit%.Safe" FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B h:\safe\*safe') DO (rd h:\safe\"%%c" /s/q) exit erklärungen in (): xcopy g:\test\*.* (Start) h:\safe (Ziel) /e/s/y/d (Parameter) (kopiert das Startverzeichnis zum Zielverzeichnis) FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d (kreiert eine Variable "dat" = Datum) FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j (kreiert eine Variable "zeit" = Uhrzeit) rename h:\safe\safe "%dat%%zeit%.Safe" (benennt das soeben kopierte Verzeichnis in "Datum Uhrzeit.Safe" um) FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B h:\safe\*safe') DO (rd h:\safe\"%%c" /s/q) (legt fest, dass nur die zwei neusten Verzeichnisse bleiben, und die älteren gelöscht werden. Details: skip=2 = gibt an, dass die zwei neusten übersprungen werden h:\safe\*Safe' = gibt die zu prüfenden Verzeichnisse an rd h:\safe\"%%c" /s/q = das ist der Löschbefehl Wenn mir jmd helfen könnte wäre ich euch sehr sehr verbunden. Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 18. Januar 2008 Melden Teilen Geschrieben 18. Januar 2008 Die Frage: Muss es ein Script sein? Mit Arcserve o.ä. könnte man das alles komfortabel erledigen. Zitieren Link zu diesem Kommentar
SilenZer 10 Geschrieben 18. Januar 2008 Autor Melden Teilen Geschrieben 18. Januar 2008 ja muss es leider :( Dass ganze soll täglich durch den Taskplaner ausgeführt werden. Zitieren Link zu diesem Kommentar
retofischer 10 Geschrieben 18. Januar 2008 Melden Teilen Geschrieben 18. Januar 2008 schonmal WinTotal - Artikel - Robocopy – Der Kopier-Gigant ausprobiert? Zumindest kann das Teil Ordner Syncen und ist per Batch datei Aufruf, sowie natürlich beeinflussbar. Edith schliesst sich aber ansonsten der Meinung an, dass das die Aufgabe eines ausgewachsenen Backup-Tools ist. Die kann man ja auch täglich ausführen lassen ;) Zitieren Link zu diesem Kommentar
XP-Fan 217 Geschrieben 18. Januar 2008 Melden Teilen Geschrieben 18. Januar 2008 Hallo SilenZer, ich würde dir auch dazu raten eine Backupsoftware einzusetzen, in deinem Fall NTBackup welches im OS integriert ist. Dieses beherrscht u.A differentielle und inkrementelle Sicherung. Scripten kannst du das Ganze natürlich auch und es komprimiert nebenbei auch die Daten. Den Cleanvorgang könntest du im Anschluß laufen lassen und Nachrichten per blat versenden. Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 18. Januar 2008 Melden Teilen Geschrieben 18. Januar 2008 Wenn Du unbedingt scripten willst, wäre z.B. das Windows-Kommandozeilentool "Comp" für den Vergleich möglich. Die Ausgabe in ne Textdatei umleiten und per blat o.ä. versenden. Zitieren Link zu diesem Kommentar
SilenZer 10 Geschrieben 21. Januar 2008 Autor Melden Teilen Geschrieben 21. Januar 2008 Leider muss es alles in einem Script geschrieben werden, so sind leider die Anforderungen und ich hab nicht wirklich viel kenntnis in sachen Scriptsprachen. Zitieren Link zu diesem Kommentar
SilenZer 10 Geschrieben 23. Januar 2008 Autor Melden Teilen Geschrieben 23. Januar 2008 Soweit bin ich gekommen, allerdings hab ich ein, zwei schwierigkeiten. Er hat probleme bei Pfaden, die in " " geschrieben werden bzw wenn ich welche mit Leerzeichen habe. Desweiteren wird die Mail nicht versendet. Das ganze erfolg via Bmail. @echo off if "%1"=="" ( echo Starte den Batch folgendermassen: echo SAFE Clientname echo. ) ::Variablen setzen set quelle=\\%1\<Pfad....> set ziel=<\\servername\share>\Safe_%1_%date_%time% set logfile=<\\servername\share>\Safe-Log_%1_%date_%time%.txt ::Files kopieren (Zielordner wird dank Robocopy automatisch erstellt, wenn er nicht existiert) robocopy %quelle% %ziel% /s /LOG:%logfile% if errorlevel 16 ( echo FATAL ERROR: BACKUP IST FEHLGESCHLAGEN! >>%logfile% ) if errorlevel 8 ( echo FEHLGESCHLAGENE KOPIERVORGAENGE! >>%logfile% ) if errorlevel 4 ( echo DIFFERENZEN ZWISCHEN QUELL- UND ZIELDATEIEN! >>%logfile% ) if errorlevel 2 ( echo NEUE FILES SIND DAZUGEKOMMEN >>%logfile% ) if errorlevel 1 ( echo KOPIERVORGANG ERFOLGREICH >>%logfile% ) :: Directories werden nicht verglichen, es wird der Errorlevel von Robocopy ausgelesen, der aussagt, ob der Kopiervorgang geklappt hat oder nicht. :: Je nach Rückmeldung von Robocopy wird eine andere Statusmeldung an das Ende des Logfiles geschrieben. :: Du kannst also einfach im Logfile nach unten scrollen und dort kurz geschrieben, was genau passiert ist. :: Logfile per Mail verschicken (bmail.exe gibts bei Google) bmail.exe -s mail.bluewin.ch -t <deine-mailadresse> -f logfilemailer@hotmail.com -a "SAFE-Log %1 %date% %time%" -m %logfile% Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.