Hey alle zusammen,
ich versuche mich gerade am erstellen eines scriptes und stecke irgendwie in einer sackgasse
folgendes ist mein ziel:
ich möchte bald in meinem htpc ein ssd laufwerk verbauen um strom zusparen und den lärm der "normalen" festplatten zu vermeiden.
leider sind die dinger noch sehr teuer und mehr als 64gb werd ich mir da eh nicht leisten können.
diese sind aber mit tv aufnahmen (gerade bei hdtv) sehr schneller gefüllt und daher muss das ganze regelmäßig auf eine herkömmliche festplatte gesichert werden.
vom prinzip her wollte ich dafür ein skript erstellen und dieses vor jedem herunterfahren ausführen - folgenden "plan" hab ich mir dazu überlegt. leider mangelt es an der praktischen umsetzung!
1. Schritt: prüfen wieviel freier speicherplatz noch auf der ssd platte zur verfügung steht.
bei >15 GB soll sich das skript einfach wieder beenden
2. Schritt: prüfen ob die datentank festplatte überhaupt angeschlossen ist (wird meistens nicht der fall sein)
-> wenn nein: Statusmeldung abgeben
3. Schritt:
Ordner Aufnahmen auf der ssd in den ordner Aufnahmen auf der Datenfestplatte kopieren
4. Schritt:
Eine Art Prüfsumme zwischen den kopierten Datein um sicherzustellen, dass alles funktioniert hat.
5. Schritt:
Inhalt des Aufnahme ordners auf der ssd löschen.
6. Schritt
PC herunterfahren (schritt fehlt in meinem entwurf, aber das bekomm ich schon hin)
soweit bin ich gekommen:
[autoit]
#cs
Titel: Aufnahmesicherung
Autor: Nuts
Beschreibung: Backup von SSD auf Datentank
#ce
;Definition der Variablen
dim $titel
$titel = "Backup-Skript"
dim $quelle
$quelle = "C:\Dokumente und Einstellungen\Nussman\Eigene Dateien\test-backup2"
dim $ziel
$ziel = "H:\test"
dim $ziel2
$ziel2 = "D:\test-backup"
dim $freierSpeicher
$freierSpeicher = DriveSpaceFree( "D:\" )
;prüft den freien Speicherplatz
MsgBox(4096, "Free space on D:\", $freierSpeicher & " MB")
;prüft ob Zielverzeichnis existiert
if FileExists($ziel2) Then
;Kopiert Quelle -> Ziel
dircopy ( $quelle, $ziel2 , 0 )
;kurz warten
sleep (1000)
;datein in quelle löschen
FileDelete ($quelle)
else
MsgBox(64, $titel, "Zielverzeichnis nicht gefunden!" , 5)
EndIf
die variable "ziel" ist ein usb stick zum überprüfen ob das zielverzeichnis existiert und wird eigentlich nicht benötigt.
meine probleme sind auf aus der info wieviel speicherplatz noch zur verfügung steht eine if then/else schleife einzuleiten um eben das backup zu starten oder den pc gleich herunterzufahren.
und bei schritt 4, also der prüfsumme, fehlt mir komplett der ansatz wie das gehen soll.
der datentank wird mit der zeit natürlich immer "voller" also kann ich nicht einfach abgleichen ob quellverzeichnis und zielverzeichnis gleich groß sind.
irgendeine überprüfung, ob das kopieren erfolgreich war, wäre aber schon super, da sonst meine aufnahmen im ernstfall im quellverzeichnis gelöscht werden und im zielverzeichnis nur unvollständig oder fehlerhaft vorhanden sind! ist sowas mit autoit möglich?
ansonsten funktioniert das ganze eigentlich wie es soll
was noch interessant wäre: muss ich nach "dircopy" eine art wartefunktion einbauen? immerhin könnte es passieren, dass ~15gb kopiert werden müssen und das dauert schon etwas länger. bei meinen tests (nur mit ~1gb großen dateien) war dies nicht nötig - also das skript hat erst weitergemacht nachdem die datein kopiert wurden!
vielen dank schonmal für die antworten.
gruß nuts