Externe Platte per Script mounten, Backup machen, Platte trennen

sinkpäd

Lt. Commander
Registriert
Aug. 2009
Beiträge
1.575
Die Daten auf unserem Fileserver liegen auf Platte 1 in einem Raid 1 System. Jede Nacht wird ein inkrementelles Backup auf Platte 2, ebenfalls Raid 1 geschrieben.

Um nochmal etwas mehr Sicherheit zu haben, sollen die Daten nun zusätzlich täglich von Platte 2 auf eine externe USB Platte gesichert werden, welche aber nicht permanent eingebunden sein soll sondern nur während des Backups selbst, damit beispielsweise Cryptotrojaner das Volume nicht finden.

Ist unter Windows sowas möglich, oder kann man USB-Geräte nur softwareseitig aus- aber nicht "ein"werfen?
 
Mit devon.exe i.V.m. usbview.exe können USB-Geräte deaktiviert & aktiviert werden. Hierzu muß das Windows Kit installiert sein
Installieren > aus dem Ordner C:\Program Files (x86)\Windows Kits\10\Tools\x64
die Datei usbview.exe und devcon.exe wegkopieren (nur die beiden .exe werden benötigt => einfach auf einem Test-System installieren)

Mit usbview.exe die USB-ID der Platte herausfinden (einen Screenshot machen, mit angeschlossener Platte) > Platte entfernen > danach Platte wieder anhängen > vergleichen.
(Alternativ : devcon find USB\*
einen Screenshot machen > USB-Device entfernen > Befehl nochmals ausführen > vergleichen )

Beim entsprechenden Gerät gibt es dann die idVendor und idProduct. Beispielhaft
idVendor : 0x152D
idProduct : 0x2339

devcon.exe entsprechend Parameter beachten

Eine Batch schreiben:
Code:
@echo off
REM Gerät verbinden
C:\devcon.exe enable "USB\VID_152D&PID_2339"
REM kopieren
xcopy /S /E /H /Y C:\Daten E:\backup\%date%_%time:~-11,2%.%time:~-8,2%.%time:~-5,2%\
REM Gerät trennen
C:\devcon.exe disable "USB\VID_152D&PID_2339"

Um es jetzt noch dynamischer zu halten : angenommen die externe Platte würde dieEXTERNE heißen, so würde folgendes Script den Laufwerksbuchstaben automatisch erkennen:
Code:
@echo off

:ANFANG
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
    if exist %%i:\* (
        for /f "tokens=6 delims= " %%a in ('vol %%i: 2^>^&0') do (
            set myDrive=%%i
            call :%%a
        )
    ) else (
)
)
REM exit /b
GOTO ANFANG

:: Nach dem Doppelpunkt (=Name der Sprungmarke) kommt der Name des Datenträgers.
:: Der Name des Datenträgers darf KEIN LEERZEICHEN enthalten.

:dieEXTERNE
REM STICK/Platte IST ANGESTECKT / GEMOUNTET
@echo off
REM Gerät verbinden
C:\devcon.exe enable "USB\VID_152D&PID_2339"
REM kopieren
xcopy /S /E /H C:\Daten %myDrive%:\backup\%date%_%time:~-11,2%.%time:~-8,2%.%time:~-5,2%\
REM Gerät trennen
C:\devcon.exe disable "USB\VID_152D&PID_2339"

:Stick
exit
 
Zuletzt bearbeitet:
Veeam Endpoint Backup bietet so eine Funktion des Trennens, genau wegen Cryptolockern! :)

Nur müsste die Platte dann wieder abgezogen werden, damit sie fürs nächste Backup wieder sichtbar ist. Es sei denn man kann das auch scripten, vllt via Script den USB Port deaktivieren und wieder aktivieren?

EDIT:
Ah cool, ryan_blackdrago hat das passende Tool :)
 
Interessante Frage. Externe USB-HDs werden von Windows erkannt wenn sie Strom bekommen und werden dann eingebunden. Wie von dir bemerkt erfolgt die Trennung dann über Software. Vielleicht hat jemand eine Idee eine einzelne, externe HD mittels WOL o.ä. zu aktivieren. Trennen sollte per Batch schon machbar sein. An einem Lösungsansatz wäre ich auch interessiert.

@ryan_blackdrago: Super, werde das heute mal testen, wäre super, wenn so einfach umsetzbar.
 
Zuletzt bearbeitet:
Ich würde mir überlegen, die Platte nach erfolgten Backup
physikalisch zu trennen und in einen feuer und wassersicheren
Bereich aufzubewahren.

Grund: Möglichkeit von Blitzschlag, Feuer, Löschwasser

Als einfache Lösung sollte schon ein kleiner Datenkoffer reichen
< 100 € oder ein Datensicherungsschrank ~ 1000-3000€
(je nachdem wieviel euch die Daten wert sind).

Zumindest über die grundsätzlich physikalisch Trennung nach erfolgter Sicherung
würde ich wegen einer möglichen Überspannung durch Blitzschlag nachdenken.

Dadurch würde sich die Frage nach dem automatischen Wiedereinbinden erübrigen.
 
Grundsätzlich sind deine Einwände/Vorschläge völlig richtig. Aber dem TE geht es darum die zusätzliche Sicherung eines RAID1 zu automatisieren.

Meine Daten habe ich auch in zwei seperaten Non-RAID-Datastations an zwei verschiedenen Orten ohne Saft gelagert. Mein RAID1 habe ich angelegt, da ich zwei HDs quasi über hatte und diese jetzt für die Speicherung von Daten verwende.
 
@ryan_blackdrago:

Besten Dank für die große Mühe! Habe das Ganze jetzt mal mit zwei getrennten Batch Files (eins zum Verbinden und eins zum Trennen) und einem USB Stick getestet und was soll ich sagen, es läuft 1a. Ist genau das, was ich suche. Jetzt muss es nur noch unter Win Server 2003 laufen :evillol: , wir sind nicht die Schnellsten was Upgrades angeht.

Das Backup selbst läuft über ein eigenständiges Backup Tool (Second Copy), dem ich befehlen kann, vor und nach den Backupjobs bestimmte Programme auszuführen. Nutzen diese Funktion aktuell schon, um vor dem Backup ein Batch auszuführen, welches den SQL Server stoppt, damit die Datenbanken frei zum sichern sind.

Bleibt nur zu hoffen, dass die Programmierer von Cryptolockern nicht bald dahinterkommen, dann hilft nämlich wirklich nur noch das physische Trennen der Datenträger vom Server.

EDIT: Eben getestet. Mit einer passenden devcon Version läuft es grundsätzlich, das Trennen funktioniert laut Batch, allerdings ist ein Reboot fällig, was das Ganze leider unnötig verkompliziert :( Naja in den nächsten Monaten wird der Server sowieso ausgetauscht, dann hat sich das Problem erledigt. Bis dahin ist eben Handarbeit angesagt.
 
Zuletzt bearbeitet:
Recht hast du. Das einmalige manuelle Trennen und Neuverbinden hat gefruchtet, das Script funktioniert jetzt wie es soll auch ohne Reboots.
 
Zurück
Oben