Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Datensicherung über Batch

jdeen / 9 Antworten / Baumansicht Nickles

Hallo zusammen !


Ich habe ein batch für eine Datensicherung mit xcopy geschrieben.


Die funktioniert auch so weit. 


Die Datensicherung dauert ca. 1 1/2 Std. Die einzelnen Dateien werden beim Kopieren auf dem Bildschirm angezeigt. Das ist auch gut so. Da hat man eine optische Kontrolle.


Nun möchte ich zusätzlich den Ablauf in einer Protokoll-Datei speichern um den Ablauf nachträglich überprüfen zu können.


Die Ausgabe umzuleiten, ist nicht das Problem, wohl aber (für mich) die doppelte Ausgabe.


Gruß jdeen


 

. . . when the kid next door walking on the moon . . .Wirklich gute Jdeen passen auf einen Bierdeckel
bei Antwort benachrichtigen
Kolti jdeen „Datensicherung über Batch“
Optionen

Warum zeigst Du nicht einfach mal die Bat

bei Antwort benachrichtigen
jdeen Nachtrag zu: „Datensicherung über Batch“
Optionen

Hallo Kolti !
Anbei die Datensicherungs-Batch :

@echo off
echo ------------------------------------------ >> protokol.txt
call beginn.bat
cls
echo.
echo Datensicherung vom Montag
echo.
echo Wollen Sie Montag sichern ?
echo.
echo Ja = Enter
echo.
echo Abbruch mit Strg+C
echo.
pause
echo.
echo Daten werden gespeichert ...
echo.
echo Datensicherung auf : 1Mo >> protokol.txt
cls
S:
cd\
cd Tagessicherungen
cd 1Mo

echo ------------------------------------------ >> prot.txt
echo|more|date|find "Aktuell" >> prot.txt
echo|more|time|find "Aktuell" >> prot.txt

xcopy E: /S /E

echo|more|time|find "Aktuell" >> prot.txt

cd\
C:
cls
echo.
echo Datensicherung beendet.
echo.
call ende.bat
pause

@echo on

Die aufgerufenen bat's beginn.bat und ende.bat schreiben das
jeweilige Datum/Zeit in's Protokoll.

Gruß jdeen

. . . when the kid next door walking on the moon . . .Wirklich gute Jdeen passen auf einen Bierdeckel
bei Antwort benachrichtigen
Kolti jdeen „Datensicherung über Batch“
Optionen

Sag mal, warum machst Du die Datensicherung nur so, daß ausschließlich geänderte Daten gesichert werden? Das geht wesentlich schneller.

Die doppelte Ausgabe entsteht wohl durch die doppelten Befehle:

echo|more|date|find "Aktuell" >> prot.txt
echo|more|time|find "Aktuell" >> prot.txt
xcopy E: /S /E
echo|more|time|find "Aktuell" >> prot.txt

bei Antwort benachrichtigen
jdeen Nachtrag zu: „Datensicherung über Batch“
Optionen

Einmal will ich immer alles sichern.

Zum anderen schreiben die Zeilen
echo|more|date|find "Aktuell" >> prot.txt
echo|more|time|find "Aktuell" >> prot.txt
den Tag und die Startzeit in eine Protokoll-Datei

die 2.Zeile (nach den xcopy-Befehl)
echo|more|time|find "Aktuell" >> prot.txt
schreibt die Zeit nach Beendigung der Sicherung in die Prot.Datei.

Ich wollte eigentlich wissen, wie ich die Meldungen von xcopy sowohl auf den Bildschirm als auch in eine Prot.Datei bekomme.

Die Anzeige umzuleiten wäre mit xcopy ... >> prot.txt
einfach handzuhaben.

Nur : dann habe ich keine Kontrolle auf dem Bildschirm mehr.

Gruß jdeen

. . . when the kid next door walking on the moon . . .Wirklich gute Jdeen passen auf einen Bierdeckel
bei Antwort benachrichtigen
REPI jdeen „Datensicherung über Batch“
Optionen

Da es unter Windows/Dos leider keinen tee Befehl wie unter Linux gibt,
leite doch die Ausgabe von xcopy ersteinmal ein eine temporäre Datei mit xcopy > prot.tmp um !

Diese wird also bei jedem Lauf neu geschrieben und kann am Ende mit type prot.tmp ausgegegen werden bzw. mit einem Editor editiert werden.Mit type prot.tmp >> prot.log kanndie temporäre Datei an die Potokolldatei angehängt werden.

Die Bildschirmausgabe ist zwar schön, aber wenn der batch läuft kannste eh nichts mehr ändern !

Würde diese Sache jedoch per VB-Script handeln !!

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
jdeen REPI „Da es unter Windows/Dos leider keinen tee Befehl wie unter Linux gibt, leite...“
Optionen

Hallo repi !

Die Bildschirmausgabe dient dem Mitarbeiter, der die batch kurz vor Feierabend startet, als Kontrolle, daß sich "etwas tut". Wir haben immer wieder das Problem, daß die Verbindung zum Sicherungsrechner (Verbindung "S:")fehlerhaft ist(???). Dann dauert die "Sicherung" ca. 2 min. Mit Bildschirmausgabe erkennt dieser Mitarbeiter (zumindest solange er im Betrieb ist), daß das Programm arbeitet.

Sollte die Sicherung nur 2 Min. gedauert haben, könnte er mich gleich informieren. Ohne Bildschirmanzeige hat er keine Kontrolle.

Danke für den Tipp mit VB. Daran habe ich auch schon gedacht : Das Ganze einfach neu aufziehen. VB wäre geeignet.

Gruß jdeen

. . . when the kid next door walking on the moon . . .Wirklich gute Jdeen passen auf einen Bierdeckel
bei Antwort benachrichtigen
REPI jdeen „Hallo repi ! Die Bildschirmausgabe dient dem Mitarbeiter, der die batch kurz vor...“
Optionen

Nun, für diese Kontrolle könntest Du am Anfang ein net view \\servername in den Batch einbauen !

Wird da was angezeigt , sollte der Server auch "da" sein !
Desweiteren würde ich nicht mit gemappten LW wie S: arbeiten , sondern mit \\servername\lw\verzeichniss !!!

hth

repi

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
Kolti jdeen „Datensicherung über Batch“
Optionen

Wenn es nur darum geht, daß man auf dem Moni was sieht, dann nimm das @echo off raus.

bei Antwort benachrichtigen
jdeen Kolti „Wenn es nur darum geht, daß man auf dem Moni was sieht, dann nimm das @echo off...“
Optionen

Hallo kolti !
Mit "@echo on" erreiche ich nur, daß die batch-Befehlszeilen auf dem Bildschirm angezeigt oder bei "@echo off" eben nicht angezeigt werden.

Unabhängig von @echo on/off gibt der Befehl "xcopy" die kopierten Dateien auf dem Bildschirm aus. Das ist gut so, da man auf einen Blick sieht, was das Programm gerade macht. Da man aber bei einer Datensicherung nicht die ganze Zeit davor sitzen kann, möchte ich diese Information zusätzlich noch in einem Ablaufprotokoll speichern. Dieses kann ich dann später im Falle eines Fehlers durchsehen/ausdrucken. Diese Ausgabe umzuleiten, also nicht auf dem Bildschirm anzuzeigen, sondern statt dessen in eine Textdatei zu schreiben erreiche ich mit "xcopy ... > protokoll.txt".
Mir dem Befehl "xcopy ... > lpt1" wird die Ausgabe auf einen Drucker umgeleitet. Die Druckerumleitung fällt bei meinem Problem absolut flach, obwohl es die einfachste Lösung wäre.

Gruß jdeen

. . . when the kid next door walking on the moon . . .Wirklich gute Jdeen passen auf einen Bierdeckel
bei Antwort benachrichtigen