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

Per Batch Gestern und Heute auf Zielpfad kopieren

Tipp Entwicklung Batch & Shell

Mitglied: dit-chuss

dit-chuss (Level 1) - Jetzt verbinden

27.11.2012 um 17:12 Uhr, 4256 Aufrufe

Grundsätzlich ging es bei mir um Datensicherung. Zunächst werden diverse Backups auf NetworkShares eines QNAP NAS geschrieben.
Da das QNAP NAS eine USB und eSATA Schnittstelle besitzt, wird die eSATA Schnittstelle benutzt, um immer die aktuelle Datensicherung auf eine externe Festplatte zu kopieren.

Die Problemstellung an diesem war allerdings, dass die Datensicherungen "Tagesübergreifend" erstellt wurden.
Jeweils die erste Sicherung läuft direkt abends gegen 20 Uhr. Alle weiteren Sicherungen verlaufen sich dann über die 00:00 Uhr Marke, womit wir dann bei dem nächsten Tag waren.

Jetzt stellte sich mir das Problem, dass ich gerne immer die aktuellste Sicherung auf der externen Festplatte hätte.
Dies wollte ich natürlich mit relativ Kostengünstigen Mitteln umsetzen.
Daher kam für mich direkt eine Batch Datei in Frage.
Nach einigem stöbern und Sucheim Netz sowie auf administrator.de bin ich dann auch fündig geworden.
(Sorry wenn ich die Leute nicht mehr nennen kann von denen ich mir die Informationen "Zusammenkopiert" habe.)

Die erste Datei brachte zumindest den "Teilerfolg" der Tageskopie mit erstellen eines Ordners mit aktuellem Datum.
Jetzt war noch das Problem "Gestern" zu lösen. Hier fand ich auch ein schönes vbs skript, welches mir den Tag versüßte ! (Vielen Dank an Biber für sein VBS Script welches hier zu finden ist).

Somit konnte ich dann die komplette Aufgabe in der Aufgabenplaung erstellen.
Zusätzlich habe ich dann noch via des Programms "BLAT" eine Email Benachrichtigung an das Ende gehangen. Somit wird man schön per Email benachrichtigt, wenn das Skript ausgeführt wurde.

!!ACHTUNG!!:
Vorweg habe ich noch einen Löschbefehl, welcher das Ziellaufwerk im Vorfeld löscht (sonst werden immer die Daten nur hinzukopiert)

01.
REM "Mit diesem Befehl werden alle vorhandenen Daten auf dem Ziellaufwerk geloescht" 
02.
U: 
03.
del *.* /s /q 
04.
rmdir U:\ /s /q 
05.
 
06.
setlocal 
07.
REM set "Quelle=\\server1\verzeichnis1" 
08.
REM set "Ziel=\\server2\verzeichnis-xyz" 
09.
 
10.
REM "hier geben Sie die Quelle und den Zielpfad an, mit diesem Ablauf werden Dateien von HEUTE kopiert mit Endung .tib!!!" 
11.
 
12.
set "Quelle=Y:\Quelllaufwerk" 
13.
set "Ziel=U:\Ziellaufwerk" 
14.
set "Typ=.tib" 
15.
 
16.
 
17.
REM "Hier werden die Variablen definiert" 
18.
REM "Variable: Heute" 
19.
 
20.
set "Datum=%date%" 
21.
 
22.
REM "Variable: Gestern" 
23.
 
24.
echo wscript.echo dateAdd("d",-1, date())>%temp%\Gestern.vbs  
25.
For /f %%i in ('cscript //nologo %temp%\Gestern.vbs') do set "Gestern=%%i"  
26.
del %temp%\Gestern.vbs 
27.
 
28.
 
29.
for /f "tokens=1-3 delims=." %%a in ("%Datum%") do set "ZielOrdner=%Ziel%\%%c-%%b-%%a" 
30.
md "%Zielordner%" 2>nul 
31.
 
32.
pushd "%Quelle%" 
33.
for /f "tokens=1-3*" %%a in ('dir /a-d /tc *%Typ%^|findstr /i /e "\%Typ%"') do if "%%a"=="%Datum%" copy "%%d" "%Zielordner%" 
34.
REM for /f "tokens=1-3*" %%a in ('dir /a-d /tc *%Typ%^|findstr /i /e "\%Typ%"') do if "%%a"=="%Datum%" echo move "%%d" "%Zielordner%" 
35.
popd 
36.
 
37.
 
38.
setlocal 
39.
REM set "Quelle=\\server1\verzeichnis1" 
40.
REM set "Ziel=\\server2\verzeichnis-xyz" 
41.
 
42.
REM "hier geben Sie die Quelle und den Zielpfad an, mit diesem Ablauf werden Dateien von GESTERN kopiert mit Endung .tib!!!" 
43.
 
44.
set "Quelle=X:\" 
45.
set "Ziel=U:\Backup_TS1" 
46.
set "Typ=.tib" 
47.
 
48.
REM "Hier werden die Variablen definiert" 
49.
REM "Variable: Heute" 
50.
 
51.
set "Datum=%date%" 
52.
 
53.
REM "Variable: Gestern" 
54.
 
55.
echo wscript.echo dateAdd("d",-1, date())>%temp%\Gestern.vbs  
56.
For /f %%i in ('cscript //nologo %temp%\Gestern.vbs') do set "Gestern=%%i"  
57.
del %temp%\Gestern.vbs 
58.
 
59.
 
60.
for /f "tokens=1-3 delims=." %%a in ("%Gestern%") do set "ZielOrdner=%Ziel%\%%c-%%b-%%a" 
61.
md "%Zielordner%" 2>nul 
62.
 
63.
pushd "%Quelle%" 
64.
for /f "tokens=1-3*" %%a in ('dir /a-d /tc *%Typ%^|findstr /i /e "\%Typ%"') do if "%%a"=="%Gestern%" copy "%%d" "%Zielordner%" 
65.
REM for /f "tokens=1-3*" %%a in ('dir /a-d /tc *%Typ%^|findstr /i /e "\%Typ%"') do if "%%a"=="%Gestern%" echo move "%%d" "%Zielordner%" 
66.
popd 
67.
 
68.
 
69.
 
70.
REM "Zum Mailversand nach dem Erfolgreichen durchlauf der Batchdatei - das Programm Blat muss im System32 Ordner liegen" 
71.
 
72.
blat -body "Die Sicherung auf die externe Festplatte ist abgeschlossen." -server smtp.provider.de -to empfängeradresse@domain.de -f sendeadresse@domain.de -subject "Datensicherung auf externe Festplatte" -u benutzeranmeldungfuermailversand -pw passwortfuermailversand

Ich habe hier einfach mal einen Durchlauf aufgeschrieben, welcher die aktuelle Datei von heute (also nach 00:00 Uhr) kopiert und dann noch eine Datei von Gestern (also vor 00:00 Uhr).
Wenn es mehrere Laufwerke oder Quellen sind, kann man einfach die Skriptzeilen untereinander kopieren und dann in der Batch ausführen. Dann wird alles nacheinander durchlaufen.

Bei mir klappt es zumindest. Wenn Fragen sind: nicht an mich . Ich wollte nur allen anderen die eventuell vor solch einem Problem stehen, eine Lösung bieten.
Bei mir hat es wunderbar funktioniert.

Wünsche euch allen noch nen schönen Tag!

Grüße
Chris

Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...