Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: Modellix

Modellix (Level 1) - Jetzt verbinden

14.05.2009, aktualisiert 14:59 Uhr, 3878 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 ..
Ähnliche Inhalte
LAN, WAN, Wireless
Anfängerfrage Routing
gelöst Frage von PharITLAN, WAN, Wireless10 Kommentare

Hallo allerseits, eine Frage, die ich mir nur mal interessehalber stelle: Die Telekom bietet hier einen Tarif mit 8 ...

Batch & Shell

Batch-Anfängerfrage: Variablenfreie Ausgabe und mehrere Suchergebnisse ermöglichen

gelöst Frage von YauhunBatch & Shell2 Kommentare

Hallo liebe Leute, mein erster Beitrag. Ich versuche mich seit gestern erstmals am Batch-Scripting, also blutiger Anfänger. Nach fleißigem ...

Batch & Shell

Batch Datei: Alte Dateien in div. Unterordnern löschen

gelöst Frage von simonsaysBatch & Shell11 Kommentare

Hallo zusammen Ich habe einen Ordner "xxx" in diesem Ordner sind Unterordner "yyy" und "zzz" - xxx yyy zzz ...

Visual Studio

Anfängerfrage zu INI-Dateien bei der Programmierung

gelöst Frage von Freund.der.NachtVisual Studio6 Kommentare

Guten Tag an alle! Ich habe in VB.Net ein Programm geschrieben. Da dieses Programm auch Einstellungen speichern muss, legt ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 15 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 21 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 1 TagiOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 2 TagenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...