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

NAS-Backups via Batchfiles

Frage Entwicklung Batch & Shell

Mitglied: BlueBones

BlueBones (Level 1) - Jetzt verbinden

10.01.2010, aktualisiert 23:24 Uhr, 2776 Aufrufe

In meiner kleinen Windows-Umgebung mit NT5.1 und NT6.0-Rechnern (also ohne Server) betreibe ich eine kleine NAS.
Hersteller: Synology Disk Station DS 209 mit RAID-1; Kapazität ca. 1,3 TByte; Linux-Basis).
Bekanntlich ist selbst ein RAID-1-Verbund kein wirkliches Backup unersetzbarer Datenbestände.
Daher betreibe ich über einen vorhandenen freien USB-Anschluss eine externe HDD (NTFS, Kap. ca. 930 GByte), auf die ich einmal pro Woche über einen Batch-Job die wichtigsten Verzeichnisse per robocopy wegsichere bzw. synchronisiere.

Hierzu verwende ich zwei verschiedene Batch-Files

Einmal eine (ich lasse die Namen im Originalzustand, dann muss ich Inhalte hier nicht anpassen) Verz_eintragen.bat.
Mit der "echo"e ich einzelne Verzeichnisse in eine GETDIRS.txt. Diese erstelle ich selbstredend nicht jedes Mal neu, ich lasse sie stehen und ergänze sie nur ggf.
Die besagte Verz_eintragen.bat sieht - verkürzt - so aus:

@ECHO OFF
SETLOCAL
SET TRGT=%CD%\Backups
ECHO Definiertes Ziel: %TRGT%

:WORK
TITLE Warte auf Ordner-Definierung...
SET /P ECHODIR=Verzeichnis in Liste eintragen:
IF /I "%ECHODIR%."=="." goto :end
FOR /F "TOKENS=2 DELIMS=:\ " %%a IN ("%ECHODIR%") DO IF NOT EXIST "%TRGT%\%%~na" (MKDIR "%TRGT%\%%~na")
ECHO %ECHODIR%>>GETDIRS.txt
GOTO :WORK

:END
ENDLOCAL
ECHO Das war's!
PAUSE >NUL:


Hier beginnt schon mal mein Dilemma, da beim Schritt (MKDIR "%TRGT%\%%~na") DOS (wie sonst auch) Probleme mit Verzeichnisnamen hat, die Leerzeichen haben.
Nun, wie auch immer. Jedenfalls sorgt folgende GetBackups.bat dafür, die in GETDIRS.txt genannten Verzeichnisse ins Unterverzeichnis \Backups per robocopy zu schaufeln.
Wobei ich klar sagen muss, die Einträge an sich im TXT sind okay. Fehler treten beim folgenden Kontrukt auf:
Hier die GetBackups.bat, die imselben Verzeichnis liegt, wie die txt und die verz_eintragen.bat:

@ECHO off
SETLOCAL
SET TRGT=%CD%\Backups
::Anmerkung für das Forum: Mit %OPT% kann man mit Eingabe OFF angeben, ob man nach Abschluss des Jobs einen Forced Shutdown möchte oder nicht)
SET OPT=%1

IF /I %TRGT%.==. GOTO :ERRTRGT
ECHO Definiertes Ziel: %TRGT%
IF NOT EXIST %CD%\GETDIRS.txt (
ECHO Keine Verzeichnisliste %CD%\GETDIRS.txt gefunden. Abbruch...
GOTO :END
) else (
ECHO Verzeichnisliste gefunden. Weiter geht's...
)
ECHO.
TYPE GETDIRS.txt
ECHO.
goto :work
IF (%OPT%)==(OFF) GOTO :WORK

SET /P ASK4OFF=Eingabe "OFF" l”st nach Synch-Vorgang %COMPUTERNAME% herunter:
IF (%ASK4OFF%)==(OFF) ECHO Achtung: %COMPUTERNAME% wird nach Sync-Vorgang heruntergefahren. Abbruch ist sp„ter m”glich...
IF (%ASK4OFF%) NEQ (OFF) ECHO %COMPUTERNAME% wird nach Sync-Vorgang NICHT heruntergefahren.
ECHO.

:WORK
for /f "tokens=2* delims=:\" %%a in (GETDIRS.txt) do @if not exist "%TRGT%\%%~na" (MD "%TRGT%\%%~na")
for /f " usebackq delims=" %%b in (GETDIRS.txt) do @echo %TIME:~0,8%: Synchronisiere %TRGT%%%~npb & start /wait "Ziel: %TRGT%%%~npb" robocopy.exe "%%b" "%TRGT%%%~npb" /S /E /W:10 /R:15 /ZB
GOTO :END

:ERRTRGT
ECHO Ziel ist unklar. Abbruch...
ENDLOCAL
GOTO :EOF

:END
ECHO.
IF (%ASK4OFF%)==(OFF) GOTO :OUT
ECHO Das war's!
ENDLOCAL
PAUSE >NUL:
GOTO :EOF

:OUT
shutdown.exe -s -f -t 100 -c "Synchronisation abgeschlossen. Fahre %COMPUTERNAME% herunter..."
ENDLOCAL
ECHO Das war's! Tastendruck verhindert lokalen Shutdown...
PAUSE >NUL:
ECHO Lokaler Shutdown wird unterbunden...
shutdown.exe -a
PAUSE >NUL:


Wer von Euch Weisen sieht den Fehler, der dazu führt, dass Verzeinisse mit Leerzeichen trotz der "" nicht sauber erzeugt werden und der Job abbricht?
Danke Euch schon mal für Eure bisherige Geduld beim Durchlesen und für die Mühe Eurer evtl. Antworten im Voraus!
Ähnliche Inhalte
Tipps & Tricks
gelöst Netztrennung (Firma, Gast) und Datenumzug von File-Server auf NAS (5)

Frage von Daniel776 zum Thema Tipps & Tricks ...

SAN, NAS, DAS
NAS-System von Qnap weist laut F-Secure-Warnung Sicherheitslecks auf (1)

Link von runasservice zum Thema SAN, NAS, DAS ...

SAN, NAS, DAS
gelöst NAS Fernzugriff über DynDNS, kein Zugriff (15)

Frage von Amanuel zum Thema SAN, NAS, DAS ...

Server
Webhosting mit NAS und dynamischer IP (2)

Frage von gugusus zum Thema Server ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Email in Exchange an 2ten Empfänger senden (18)

Frage von MultiStorm zum Thema Exchange Server ...

Weiterbildung
Gehaltsvorstellungen (13)

Frage von SYS64738 zum Thema Weiterbildung ...

Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (13)

Frage von planetIT2016 zum Thema Windows Server ...