Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Datensicherung mit Batch (incrementel)

Frage Microsoft

Mitglied: ran

ran (Level 1) - Jetzt verbinden

09.10.2006, aktualisiert 02.11.2006, 10959 Aufrufe, 14 Kommentare

Musik und Fotos auf ein anderes Laufwerk sichern

Hallo zusammen!

Cooles Board hier! Ich hoffe, dass ich hier eine Antwort auf meine Frage finde. Bin optimistisch ;).

Ich möchte bei jedem Herunterfahren meines PCs, meine Musik und meine Fotos auf dem Computer auf eine andere Festplatte sichern. Es sollte aber nicht immer meine ganze Musik-Sammlung kopieren, sondern nur das neu dazugekommene.

Ich möchte aber nicht nur xcopy /d machen, da die Lieder, die ich herausgelöscht habe ja dann in der Sicherung immernoch vorhanden sind.

Habe mir einmal folgendes gemacht:
@echo off
cls
rem ---------------------------------------
rem Name: MyBackup.bat
rem Autor: Raphael Nussbaum
rem Datum: 09. Oktober 2006
rem ---------------------------------------
echo Variablen deklarieren.
set programmpfad=C:\MyBackup
set logpfad=%programmpfad%\Logfiles
set log=%logpfad%\MyBackup.log
set error=%logpfad%\Copyerror.log
set quellpfad=C:\quelle
set zielpfad=C:\Backup
rem ---------------------------------------
echo Ordnerstruktur wird eingerichtet.
if not exist %programmpfad% md %programmpfad%
if not exist %logpfad% md %logpfad%
if not exist %log% MyBackup-Log >> %log%
if not exist %error% Fehler-Log >> %error%
if not exist %quellpfad% echo Der angegebene Quellpfad ist falsch!
if not exist %zielpfad% md %zielpfad%
if exist %zielpfad%\backup.new rd /s/q %zielpfad%\backup.new
md %zielpfad%\backup.new
rem ---------------------------------------
echo Datum in die Logdatei schreiben.
echo ----------------------------- > %log%
echo %date% %time% >> %log%
echo
>> %log%
rem ---------------------------------------
echo Daten werden kopiert.
xcopy %quellpfad%\*.* %zielpfad%\backup.new\ /s /e /h /o /r /y /d /v /i >> %log% 2>> %error%
if %errorlevel% GTR 1 goto fehler1
if %errorlevel% GTR 2 goto fehler2
if %errorlevel% GTR 3 goto fehler3
if %errorlevel% GTR 4 goto fehler4
rem ---------------------------------------
echo Alte Daten werden geloescht. Neuer Datenblock verschoben.
if exist %zielpfad%\backup rd /s /q %zielpfad%\backup
move %zielpfad%\backup.new %zielpfad%\backup
goto end
rem ---------------------------------------
rem Fehlertexte
:fehler1
echo Es wurden keine zu kopierenden Dateien gefunden.
:fehler2
echo Der Benutzer hat xcopy durch Drücken von STRG+C abgebrochen.
:fehler3
echo Es ist ein Initialisierungsfehler aufgetreten. Es steht nicht genügend Speicherplatz auf dem Datenträger oder im Arbeitsspeicher zur Verfügung, Sie haben eine ungültige Laufwerkbezeichnung eingegeben oder eine unzulässige Syntax in der Befehlszeile verwendet.
:fehler4
echo Beim Schreiben auf den Datenträger ist ein Fehler aufgetreten.
rem ---------------------------------------
:end
rem Abschluss
echo Das Backup wurde ohne Fehler erstellt!
echo Ende - %date% %time% >> %log%
echo ----------------------------- >> %log%
echo Die Logdateien befinden sich im Programmordner (%logpfad%)

Dazu ist vielleicht noch zu sagen, dass dies mein erstes .bat-Script ist ;).

Jedoch ist das glaube ich nicht die richtige Lösung.

Kann mir jemand helfen?

Gruss
Mitglied: andyj
09.10.2006 um 15:13 Uhr
Hallo,
schau mal bei heise nach. Die haben ein Script geschrieben zum Backups herstellen mit inkemateller Funktion. Nennt sich "Backup fuer Faule".

Gruss
Bitte warten ..
Mitglied: ran
09.10.2006 um 15:25 Uhr
Danke für den Tipp!

Ich hab mir das Script gesucht. leider komm ich mit dem Code noch nicht ganz mit. Könnte ich meins ergänzen dass es funktioniert wie ich es will? Ich kenne leider die Möglichkeiten noch nicht wirklich.

Hier der Code für das BfF von heise:
set Quelle="C:\Dokumente und Einstellungen"
set Ziel="D:\Backup\%date%"
set templog="%temp%\temp.log"
;
echo . >>%windir%\backup.log
echo Starte Backup: %date% %time% von %Quelle% nach %Ziel% >>%windir%\backup.log
md %Ziel%
xcopy %Quelle% %Ziel% /m /s /v /c /i /f /h /k /o /x /y >>%windir%\backup.log
echo Starte Überprüfung >>%windir%\backup.log
start /w windiff.exe -Sdx %templog% -T %Ziel% %quelle%
find "different" %templog% >>%windir%\backup.log
echo Fertig >>%windir%\backup.log
start notepad.exe %windir%\backup.log
;
rem Erstellt 2003 von Axel Vahldiek / c't
rem mailto: axv@ctmagazin.de

Grüsse!
Bitte warten ..
Mitglied: Supaman
09.10.2006 um 15:37 Uhr
oder du besorgst dir ein replikations-software.
Bitte warten ..
Mitglied: ran
09.10.2006 um 15:42 Uhr
Ich möchte es schon mit einem Batch lösen.

Ich habe das Script von heise jetzt mal getestet. Es macht nicht ganz das was ich will. Es macht für jedes Backup einen neuen Ordner. Das soll es ja nicht, da ich nicht bei jedem Herunterfahren eine halbe Stunde warten will, bis meine 26GB Musik kopiert sind.

Und wenn ich in meinem Musik-Ordner was lösche, ist es im Backup immernoch da.

//Edit:
Was macht das Script mit windiff.exe genau? Es vergleicht die beiden Ordner (Quelle/Ziel). Und dann?
Bitte warten ..
Mitglied: andyj
09.10.2006 um 16:10 Uhr
Hallo,
na auf dem 1. Backup ist der Ordner noch da. In den neuen Ordnern ist jeweils nur das Inkrement drin. Mir Windiff wird nur verglichen, was ist neu und alt.
Bitte warten ..
Mitglied: ran
09.10.2006 um 16:35 Uhr
Das ist ja eigentlich doof.

Ich möchte nur eine 1 zu 1 Kopie von meinem Ordner "Daten" auf einem anderen Laufwerk. Die Kopie sollte jeden Tag aktualisiert werden.

Ich will auch nicht, dass ich mehrere Kopien habe. Wirklich nur eine "Spiegelung". Geht das nicht per Batch?
Bitte warten ..
Mitglied: miniversum
09.10.2006 um 17:03 Uhr
Ok jetzt die Lösung ohne zusätzliche exe und so... allerdings ohne log, das müßtest du noch selbst ein-/umbauen. Sind ja nur 3 oder 4 Stellen.

Guckst du da ;) :

http://www.administrator.de/Synchronisation_einer_Ordnerstruktur.html

miniversum
Bitte warten ..
Mitglied: ghofmann
09.10.2006 um 17:34 Uhr
In der c't ist mal eine rsync-basierte Lösung ftplicity bzw. duplicity vorgestellt worden, Link:
http://www.heise.de/ct/06/13/links/216.shtml

Hoffe, das ist jetzt nicht das gleiche wie "Backup für Faule", das weiter oben schon mal erwähnt worden ist.

Falls es für Dich in Frage kommt, ein zusätzliches Programm zu erwerben, würde ich 2BrightSparks SyncBack Pro empfehlen. Microsoft's SyncToy wär von den Features her ähnlich und sogar umsonst, ist aber m.E. leider ziemlich buggy.
Bitte warten ..
Mitglied: andyj
10.10.2006 um 06:52 Uhr
Hi,
den BAtch umschreiben ist doch kein Problem. Habe das BfF auch auf meine Beduerfnisse angepasst.
Bitte warten ..
Mitglied: ran
10.10.2006 um 08:15 Uhr
Irgendwas funktioniert da aber nicht. Fehler erhalte ich aber keine.

Und wie ich da das Loggen rein bringe muss ich mir noch überlegen.

Hier das Script:

@echo off & setlocal
cls
::---------------------------------------
echo Variablen deklarieren.
set quelle="C:\quelle"
set ziel="C:\Backup
::---------------------------------------
echo Quelle und Ziel als Laufwerke einbinden.
for %%L in (d e f g h i j k l m n o p q r s t u v w x y z) do if not exist %%L:\>NUL set LWdelquelle=%%L:
if %LWdelquelle.==. (
echo.
echo FEHLER: Auf Ihrem System existiert kein freier Laufwerksbuchstabe.
goto eof
)
::---------------------------------------
if (%quelle:~2,1%)==( subst %LWdelquelle% %quelle% > NUL
if (%quelle:~2,1%)==(\) net use %LWdelquelle% %quelle% > NUL
for %%L in (d e f g h i j k l m n o p q r s t u v w x y z) do if not exist %%L:\>NUL set LWdelziel=%%L:
if %LWdelziel.==. (
echo.
echo FEHLER: Auf Ihrem System existiert kein freier Laufwerksbuchstabe.
goto eof
)
::---------------------------------------
if (%ziel:~2,1%)==( subst %LWdelziel% %ziel% > NUL
if (%ziel:~2,1%)==(\) net use %LWdelziel% %ziel% > NUL
::---------------------------------------
echo Es wird eine Liste aller Dateien und Verzeichnisse im Ziel erzeugt.
echo Dateien und Verzeichnisse werden verglichen.
echo Dateien, die nicht in der Quelle vorhanden sind werden geloescht.
dir /s /b /ad %LWdelziel% >%temp%\Vergleich.Lst
for /F "delims=: tokens=2" %%a in (%temp%\Vergleich.Lst) do if NOT exist %LWdelquelle%\%%a\NUL RD /Q /S "%LWdelziel%%%a"
dir /s /b /a-d %LWdelziel% >%temp%\Vergleich.Lst
for /F "delims=: tokens=2" %%a in (%temp%\Vergleich.Lst) do if NOT exist %LWdelquelle%\%%a del /Q /S "%LWdelziel%%%a"
::---------------------------------------
echo Die Laufwerksbuchstaben für die Quelle und das Ziel werden entfernt.
subst %LWdelquelle% /D > NUL
net use %LWdelquelle% /Delete > NUL
subst %LWdelziel% /D > NUL
net use %LWdelquelle% /Delete > NUL
..---------------------------------------
echo Daten werden von %quelle% nach %ziel% kopiert.
xcopy %quelle% %ziel% /v /f /d /s /e /r /y /z /i


Was könnte da falsch sein?

Grüsse!
Bitte warten ..
Mitglied: miniversum
10.10.2006 um 14:02 Uhr
Was funktioniert den nicht? Der kopier Teil oder der lösch Teil?

Mit Log könnts so aussehen:


@echo off & setlocal

set Quelle="E:\quelle"
set Ziel="E:\ziel"
set Logfile="E:\Log.txt"
:: Quelle und Ziel als Laufwerke einbinden
for %%L in (d e f g h i j k l m n o p q r s t u v w x y z) do if not exist %%L:\>NUL set LWdelquelle=%%L:
if %LWdelquelle.==. (
echo.
echo FEHLER: Auf Ihrem System existiert kein freier Laufwerksbuchstabe.
goto eof
)

if (%Quelle:~2,1%)==( subst %LWdelquelle% %Quelle% > NUL
if (%Quelle:~2,1%)==(\) net use %LWdelQuelle% %Quelle% > NUL
for %%L in (d e f g h i j k l m n o p q r s t u v w x y z) do if not exist %%L:\>NUL set LWdelZiel=%%L:
if %LWdelZiel.==. (
echo.
echo FEHLER: Auf Ihrem System existiert kein freier Laufwerksbuchstabe.
goto eof
)

if (%Ziel:~2,1%)==( subst %LWdelZiel% %Ziel% > NUL
if (%Ziel:~2,1%)==(\) net use %LWdelZiel% %Ziel% > NUL

echo Sicherung vom %Date% %Time% >%Logfile%

:: Eine Liste alles Dateien und Verzeichnisse im Ziel erzeugen
:: Danach alle Dateien und Verzeichnisse die nicht in der Quelle vorhanden sind löschen
dir /s /b /ad %LWdelZiel% >%temp%\OnlyInTarget.Lst
for /F "delims=: tokens=2" %%a in (%temp%\OnlyInTarget.Lst) do if NOT exist %LWdelQuelle%\%%a\NUL RD /Q /S "%LWdelZiel%%%a" & echo "%LWdelZiel%%%a" entfernt>>%Logfile%
dir /s /b /a-d %LWdelZiel% >%temp%\OnlyInTarget.Lst
for /F "delims=: tokens=2" %%a in (%temp%\OnlyInTarget.Lst) do if NOT exist %LWdelQuelle%\%%a del /Q /S "%LWdelZiel%%%a" & echo "%LWdelZiel%%%a" entfernt>>%Logfile%

:: Laufwerksbuchstaben für Quelle und Ziel entfernen
subst %LWdelquelle% /D > NUL
net use %LWdelquelle% /Delete > NUL
subst %LWdelZiel% /D > NUL
net use %LWdelquelle% /Delete > NUL

:: Jetzt die Dateien die von Quelle nach Ziel kopieren
echo Kopierte/ERsetzte Dateien:>>%Logfile%
xcopy %Quelle% %Ziel% /v /f /d /s /e /r /y /z /i /l >>%Logfile%
xcopy %Quelle% %Ziel% /v /f /d /s /e /r /y /z /i


miniversum
Bitte warten ..
Mitglied: ran
10.10.2006 um 19:29 Uhr
Hi

Ich bin jetzt zu Hause und wollte es testen. Nur bekomm ich jetzt einen Fehler. Im Geschäft hats einwandfrei funktioniert.

Es muss irgendwo in diesem Codeabschnitt ein Problem sein:

echo Die Quelle und das Ziel werden als Laufwerke eingebunden.

for %%L in (d e f g h i j k l m n o p q r s t u v w x y z) do if not exist %%L:\>NUL set LWdelquelle=%%L:
if %LWdelquelle.==. (
echo.
echo FEHLER: Auf Ihrem System existiert kein freier Laufwerksbuchstabe.
goto eof
)

if (%Quelle:~2,1%)==( subst %LWdelquelle% %Quelle% > NUL
if (%Quelle:~2,1%)==(\) net use %LWdelQuelle% %Quelle% > NUL
for %%L in (d e f g h i j k l m n o p q r s t u v w x y z) do if not exist %%L:\>NUL set LWdelZiel=%%L:
if %LWdelZiel.==. (
echo.
echo FEHLER: Auf Ihrem System existiert kein freier Laufwerksbuchstabe.
goto eof
)

if (%Ziel:~2,1%)==( subst %LWdelZiel% %Ziel% > NUL
if (%Ziel:~2,1%)==(\) net use %LWdelZiel% %Ziel% > NUL


Die Fehlermeldung lautet: "Es befindet sich kein Datenträger im Laufwerk. Legen Sie einen Datenträger in Laufwerk ein."

Oder hat das etwas mit Rechten zu tun?

Als Quelle hab ich die Platte E:\ und als Ziel die Platte K:\ angegeben.

Wäre froh, wenn mir jemand helfen könnte.

Grüsse!
Bitte warten ..
Mitglied: miniversum
10.10.2006 um 20:56 Uhr
Das kann an der
for %%L in (d e f g h i j k l m n o p q r s t u v w x y z) do
Schleife leigen. Hier wird ja nach freien laufwerksbuchstaben gesucht und wen einer gefunden wird dieser benutzt.
Schau mal welche bei dir benutzt werden und las mal das ausführen:
for %%L in (d e f g h i j k l m n o p q r s t u v w x y z) do if not exist %%L:\>NUL echo %%L

Wenn der Buchstabe auf ein CD oder DVD Laufwerk verweist geht da was schief.
Dann dreh einfachmal die reihenfolge um oder lass die ersten paar Buchstaben weg udn fang erst bei g oder so an.

An den Rechten kanns auch liegen, da die Verzeichnisse, in deinem Fall die Laufwerke E und K, mit subst auf andere Laufwerksbuchstaben zusätzlich geleitet werden (macht halt nur Sinn bei Verzeichnissen, stört aber auch nicht). Erlauben das deine Rechte nicht gehts auch nicht gut.

Kannst du die Problemstelle noch genauer einschränken?

miniversum
Bitte warten ..
Mitglied: Filerman
02.11.2006 um 14:22 Uhr
Hallo,

spontan faellt mir da sofort ein kostenloses Microsoft Tool ein (robocopy.exe). Mit diesem Tool kann
man Dateien in einem Ziellaufwerk immer 1:1 haben wie in dem Quellenlaufwerk.

Beispiel:
robocopy c:\Quelle d:\Ziel *.* /mir

/mir = Mirror (loescht im Ziel!)

ueberprueft welche Dateien im Verzeichnis Quelle sind und noch im Verzeichnis Ziel fehlen.

Aber Vorsicht! Wenn man als Zielverzeichnis ein Verzeichnis angibt in dem sich noch andere Dateien / Verzeichnisse
befinden, werden diese sofort geloescht, sie existieren ja nicht in der Quelle. Also am besten als Zielverzeichnis
ein leeres Verzeichnis angeben.

robocopy /??? | more bringt eine gute Hilfe in die noch zusaetzlichen Moeglichkeiten von "Robust Copy".

Mehr auch hier: http://support.microsoft.com/kb/160513/de

Gruss Filerman
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(6)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (2)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...