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, 2784 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
Server-Hardware
Windows Server oder NAS (Synology) - Empfehlung (7)

Frage von Niklass zum Thema Server-Hardware ...

Batch & Shell
gelöst Batchdatei für Aufgabenplanung zum Löschen von Backups (2)

Frage von Winuser zum Thema Batch & Shell ...

SAN, NAS, DAS
gelöst NAS für TV Aufzeichnung (9)

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

Batch & Shell
gelöst PowerShell Scripte über NAS ausführbar? (4)

Frage von Stefan007 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

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

Internet Domänen
Nameserver ein Geist? (7)

Frage von zelamedia zum Thema Internet Domänen ...

Video & Streaming
Kamera mit 24-7 auf Website hat Aussetzer (6)

Frage von Calvus zum Thema Video & Streaming ...