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

Frage Sicherheit Backup

Backup per Batch - div. Anfängerfragen

Mitglied: Modellix

Modellix (Level 1) - Jetzt verbinden

14.05.2009, aktualisiert 14:59 Uhr, 3867 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 ...

Exchange Server
Outlook Exchanged Cache (Anfängerfrage)
Frage von ITraffnixExchange Server1 Kommentar

Hallo. Habe mal eine Anfängerfrage. Ich habe Mitarbeiter, bei denen ist das Arbeiten ohne Cache Mode schneller, als mit. ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 8 StundenRouter & Routing2 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 15 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 19 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...