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

Backup per Batch - div. Anfängerfragen

Frage Sicherheit Backup

Mitglied: Modellix

Modellix (Level 1) - Jetzt verbinden

14.05.2009, aktualisiert 14:59 Uhr, 3826 Aufrufe, 5 Kommentare

Per RoboCopy soll jede Nacht ein vollständiges Backup unseres Servers Win2003 SBS) auf eine lokal angeschlossene USB-Platte gemacht werden.
Die Platte wird wöchentlich gewechselt und bietet Platz für insgesamt fünf Sicherungen.

Hallo Administratoren!

Als "blutiger" Anfänger in Administration und Programmierung habe ich oben beschriebene Aufgabenstellung.
Nach ausführlicher Lektüre hier und in den weiten Untiefen des Webs habe ich mit der Erstellung eines Batch-Scripts
begonnen, welches zum Teil auch schon funktioniert. Aber ich brauche eure Hilfe, um das Projekt fertig zu bekommen.

Zunächst der "Rahmen":

Jede Nacht soll auf unserem Server (Windows SBS2003) eine automatische Datensicherung per RoboCopy auf einer
lokal angeschlossenen USB-Festplatte erfolgen. Es ist geplant, dass die Platte jeweils montags gewechselt wird.

Ich plane, über den Scheduler jeweils Di, Mi, Do, Fr, Sa um 02:00Uhr die Sicherung zu starten. Dann sind alle Daten
des Produktivtages soweit geschlossen, dass auch die "Nachtarbeit" mit gesichert werden kann.

Diese fünf Voll-Sicherungen (also nicht inkremental) passen gut auf die externen Platten, eine sechste würde nicht draufpassen.

Also starte ich damit, dass ich die vorhandenen Verzeichnisse der Platte abfrage und das jeweils älteste lösche.

Im nächsten Schritt lege ich einen neuen Ordner an, der das aktuelle Sicherungsdatum in der Form JJJJMMTT als Namen trägt.

Jetzt soll RoboCopy die gewünschten Files in den neu angelegten Ordner schreiben. Und da sitzt der Haken:
Wie kann ich den neu erzeugten Ordner automatisch als Zielpfad für RoboCopy übergeben?

01.
:: @echo off 
02.
 
03.
:: --------- Setzen der Pfade --------- 
04.
set scriptdir=C:\Backupscripts 
05.
set logdir=C:\Backupscripts\Logfile 
06.
set bckdrv=X: 
07.
 
08.
 
09.
:: --------- Ueberpruefung der vorhandenen Ordner im %bckdrv% , aelteste werden geloescht, >maximum=4< bleiben erhalten --------- 
10.
:MaxBackupUeberpruefen 
11.
set "maximum=4" 
12.
FOR /F "skip=%maximum% delims=" %%i in ('dir /O-D /B /AD %bckdrv%\') do rd /S /Q %bckdrv%\"%%i" 
13.
 
14.
GOTO :DatumsordnerErzeugen 
15.
 
16.
 
17.
:: --------- Anlegen des neuen Sicherungsordners im %bckdrv% im Format YYYYMMDD --------- 
18.
:DatumsordnerErzeugen 
19.
set jahr=%date:~-4% 
20.
set monat=%date:~-7,2% 
21.
set tag=%date:~-10,2% 
22.
md %bckdrv%\%jahr%%monat%%tag% 
23.
 
24.
GOTO :ROBOCOPY 
25.
 
26.
 
27.
:: --------- Ausfuehren der Sicherung per robocopy im neu erzeugten Ordner --------- 
28.
:ROBOCOPY 
29.
 
30.
set bckdir= 
31.
 
32.
robocopy "d:\test1" %bckdrv%%bckdir%\test1 /S /E /COPY:DATS /R:4 /W:10 /LOG+:%logdir%\backuplog.log /NP /TEE 
33.
 
34.
GOTO :EOF 
35.
 
36.
:EOF 
37.
 
38.
:: @echo on

Speziell geht es mir also darum, dass ich das Zielverzeichnis %bckdir% definieren muss, aber nicht weiss, wie.
Kann mir jemand einen eleganten Tip beisteuern?

Vielen Dank!

Felix
Mitglied: 60730
14.05.2009 um 15:10 Uhr
Servus,

gib dem Script doch eine logische "Struktur"
Set zu Set usw.
Und du hattest
set bckdir= Nix nada da stehen....

Also Zeile 17 - 22 ganz an den Anfang und aus der ehemaligen Zeile 22 ein Set


01.
:: @echo off 
02.
:: --------- Setzen der Variablen --------- 
03.
set scriptdir=C:\Backupscripts 
04.
set logdir=C:\Backupscripts\Logfile 
05.
set bckdrv=X: 
06.
 
07.
set jahr=%date:~-4% 
08.
set monat=%date:~-7,2% 
09.
set tag=%date:~-10,2% 
10.
set bckdir=%bckdrv%\%jahr%%monat%%tag% 
11.
 
12.
 
13.
:: --------- Ueberpruefung der vorhandenen Ordner im %bckdrv% , aelteste werden geloescht, >maximum=4< bleiben erhalten --------- 
14.
:MaxBackupUeberpruefen 
15.
set "maximum=4" 
16.
FOR /F "skip=%maximum% delims=" %%i in ('dir /O-D /B /AD %bckdrv%\') do rd /S /Q %bckdrv%\"%%i" 
17.
 
18.
:: --------- Anlegen des neuen Sicherungsordners im %bckdrv% im Format YYYYMMDD --------- 
19.
 
20.
md %bckdir% 
21.
 
22.
:: --------- Ausfuehren der Sicherung per robocopy im neu erzeugten Ordner --------- 
23.
:ROBOCOPY 
24.
 
25.
robocopy "d:\test1" %bckdrv%%bckdir%\test1 /S /E /COPY:DATS /R:4 /W:10 /LOG+:%logdir%\backuplog.log /NP /TEE 
26.
 
27.
:EOF 
28.
 
29.
:: @echo on
...so mal Pi mal daumen drüber gesehen...

edit - so mal alle goto - die eh angesprungen würden, da direkt darunter - rausgekickt... /edit
edit² jau und nun ist auch in Zeile 10 ein \ - wo es hingehört /edit²

Gruß
Bitte warten ..
Mitglied: Biber
14.05.2009 um 15:16 Uhr
Moin Modellix,

willkommen im Forum.

In Zeile 17-21 Deines Schnipsels wird schon ein neuer Sicherungsordner unterhalb %bckdrv% zusammengebastelt.
Also wäre doch der Wert des neuen Sicherungsordners laut Skizze %jahr%%monat%%tag%, und dementsprechen solltest Du VOR dem "MD ..." (Zeile 22) einfügen:
Set "bckdir=%jahr%%monat%%tag%"

Grüße
Biber
Bitte warten ..
Mitglied: Modellix
14.05.2009 um 15:24 Uhr
Moin TimoBeil, Moin Biber,

schon nicht schlecht, wenn man sich die Sachen nochmal mit Verstand durchliest...
Ich hatte mit die einzelnen Abschnitte in jeweils separaten Files geschrieben und getestet.
Danach hab' ich sie zwar zusammen>kopiert< aber eben nicht zusammen>kapiert<...

Zunächst danke für eure Hilfe!

Felix
Bitte warten ..
Mitglied: Modellix
15.07.2009 um 15:56 Uhr
Hallo Admins,

jetzt ist einige Zeit vergangen, und mein Backup läuft immer noch nicht automatisch und
vollständig. Statt dessen sichere ich die wichtigsten Sachen von Hand, die unwichtigen eigentlich
gar nicht...
Auch wenn das Script mit eurer Hilfe eigentlich schon fertig ist, traue ich mich noch nicht so recht,
es auf meinen Server loszulassen.

Kann bitte nochmal jemand drüber schauen, ob das so in Ordnung ist?

01.
@echo off 
02.
:: --------- Setzen der Variablen --------- 
03.
if exist x:\ set bckdrv=x: 
04.
if exist y:\ set bckdrv=y: 
05.
 
06.
set scriptdir=C:\Backupscripts 
07.
set logdir=C:\Backupscripts\Logfile 
08.
set jahr=%date:~-4% 
09.
set monat=%date:~-7,2% 
10.
set tag=%date:~-10,2% 
11.
set bckdir=%bckdrv%\%jahr%%monat%%tag% 
12.
 
13.
 
14.
:: --------- Ueberpruefung der vorhandenen Ordner im %bckdrv% , aelteste werden geloescht, >maximum=4< bleiben erhalten --------- 
15.
:MaxBackupUeberpruefen 
16.
set "maximum=4" 
17.
FOR /F "skip=%maximum% delims=" %%i in ('dir /O-D /B /AD %bckdrv%\') do rd /S /Q %bckdrv%\"%%i" 
18.
 
19.
 
20.
:: --------- Anlegen des neuen Sicherungsordners im %bckdrv% im Format YYYYMMDD --------- 
21.
md %bckdir% 
22.
 
23.
:: --------- Ausfuehren der Sicherung per robocopy im neu erzeugten Ordner --------- 
24.
:ROBOCOPY 
25.
 
26.
robocopy "D:\Archiv_1" "%bckdrv%%bckdir%\Archiv_1" /S /E /COPY:DATS /R:4 /W:10 /LOG+:%logdir%\backuplog.log /NP /TEE 
27.
robocopy "D:\Archiv_2" "%bckdrv%%bckdir%\Archiv_2" /S /E /COPY:DATS /R:4 /W:10 /LOG+:%logdir%\backuplog.log /NP /TEE 
28.
robocopy "D:\Archiv_3" "%bckdrv%%bckdir%\Archiv_3" /S /E /COPY:DATS /R:4 /W:10 /LOG+:%logdir%\backuplog.log /NP /TEE 
29.
 
30.
:EOF 
31.
 
32.
@echo on
Noch zur Erklärung:
Die zwei externen Platten, auf die ich abwechselnd sichern möchte, sind am Server über die Datenträgerverwaltung als
Laufwerk X bzw. Y angemeldet und werden immer abwechselnd angeschlossen.

Hauptsächlich geht es mir übrigens um die richtigen Parameter beim RoboCopy, um täglich ein volles Backup in ein jeweils
neues Verzeichnis zu machen. Stimmen die so? Kann ich die einzelnen Robocopy-Befehlszeilen so untereinander schreiben,
und sie werden nach einander abgearbeitet? Oder benötige ich eine Art Zwangspause nach jedem einzelnen Befehl?

Danke schonmal!

Felix
Bitte warten ..
Mitglied: 60730
15.07.2009 um 21:58 Uhr
Zitat von Modellix:
Hallo Admins,

jetzt ist einige Zeit vergangen, und mein Backup läuft immer
noch nicht automatisch und
vollständig. Statt dessen sichere ich die wichtigsten Sachen von
Hand, die unwichtigen eigentlich
gar nicht...
Auch wenn das Script mit eurer Hilfe eigentlich schon fertig ist,
traue ich mich noch nicht so recht,
es auf meinen Server loszulassen.

Kann bitte nochmal jemand drüber schauen, ob das so in Ordnung
ist?

Servus,

das mit dem drüberschauen machen wir bitte anders

Überall wo ich in unfertigen Scripten als erste Zeile ein Echo finde - ist das debuggen nicht drin.
Die machst du bitte erstmal (in einer Kopie?) raus - obwohl das Original ist ja noch Hier

Überall - wo ein Befehl drin steht - wie rd oder robocopy - machst du ein echo davor.

Durch beide "zutaten" sowohl kein Echo off, als auch echo vor dem Befehl - solltest du sehen, welche Befehlszeilenvom Script erzeugt werden.
Hinter jedem echo noch eine Pause und die Zeile in einer separaten DOsbox abfeuern - ist dann schlussendlich dein Stepover über das Script.

Das kannst du alleine und bringt dir auch mehr als einem von uns - denn wir können das - du wilst es doch auchkönnen

bzw. ich kanns nicht - weil mein Apfel (der mit einem M im Namen - kann das nicht - besser ich will nicht, dass er das kann - ist ja keine Win Birne)


Gruß
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

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 ...

Hyper-V
Altaro VM Backup auf RDX

Frage von smeclnt zum Thema Hyper-V ...

Windows Server
gelöst BackupExec 2016 Fehler beim Backup von Windows 2016 (1)

Frage von Looser27 zum Thema Windows Server ...

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 ...

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

Frage von Floh21 zum Thema Outlook & Mail ...

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

Frage von Haures zum Thema Windows Server ...