Backupprogramm das auf FTP sichert und Archivbit verwendet
Hallo,
ich suche für Windows XP ein Backup Programm, das so wie das kostenlose Personal Backup unter Benutzung des Archivbits (mit Zurücksetzen) auf einen FTP-Server (adrive.com) sichern kann und die Dateien vorher verschlüsselt.
Es sollte kostenlos sein, kann aber ruhig was kosten, wenn es problemlos funktioniert.
Es kann auch eine Batchdatei sein, wenn das irgendwie geht.
Es muss über den Taskplaner (oder sonst einen Planer) täglich ausgeführt werden.
Also ich brauche:
-sichere Verschlüsselung
-FTP als Sicherungsziel
-Archivbit muss verwendet werden (wg. großer Mengen an zu sichernden Dateien, von denen sich nur wenige ändern, ein Datumsvergleich wäre schon zu lange)
-per Taskplaner automatisch zu starten
Gibt es sowas?
Personal Backup verwende ich nun schon lange, aber beim FTP-Einsatz versagt es immer wieder, dann wird nur teilweise oder gar nichts gesichert.
Gruß, franc
ich suche für Windows XP ein Backup Programm, das so wie das kostenlose Personal Backup unter Benutzung des Archivbits (mit Zurücksetzen) auf einen FTP-Server (adrive.com) sichern kann und die Dateien vorher verschlüsselt.
Es sollte kostenlos sein, kann aber ruhig was kosten, wenn es problemlos funktioniert.
Es kann auch eine Batchdatei sein, wenn das irgendwie geht.
Es muss über den Taskplaner (oder sonst einen Planer) täglich ausgeführt werden.
Also ich brauche:
-sichere Verschlüsselung
-FTP als Sicherungsziel
-Archivbit muss verwendet werden (wg. großer Mengen an zu sichernden Dateien, von denen sich nur wenige ändern, ein Datumsvergleich wäre schon zu lange)
-per Taskplaner automatisch zu starten
Gibt es sowas?
Personal Backup verwende ich nun schon lange, aber beim FTP-Einsatz versagt es immer wieder, dann wird nur teilweise oder gar nichts gesichert.
Gruß, franc
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169495
Url: https://administrator.de/forum/backupprogramm-das-auf-ftp-sichert-und-archivbit-verwendet-169495.html
Ausgedruckt am: 22.04.2025 um 00:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo franc,
per Batch könnte das so gehen:
Die Variablen in den Zeilen 4 bis 11 musst Du auf Deine Bedürfnisse anpassen.
Zum Verschlüsseln der Dateien wird die Konsolenversion von 7-Zip verwendet, erhältlich hier (die 7-Zip Command Line Version laden). 7za.exe muss im gleichen Verzeichnis wie das obige Script gespeichert werden.
Der
In Zeile 19 wird dann jede Datei einzeln mit 7-Zip in ein passwortgeschütztes ZIP-Archiv mit AES256-Verschlüsselung und maximaler Kompression gepackt. Alle Ausgabedateien landen im in Zeile 15 temporär angelegten Verzeichnis, das durch die Variable
In Zeile 20 wird nach dem Verschlüsseln/Komprimieren das Archivattribut jeder verarbeiteten Datei gelöscht.
Wenn die Prüfung in Zeile 25 ergibt, dass keine ZIP-Dateien erstellt wurden, wird das temporäre Verzeichnis wieder gelöscht und das Script beendet.
Ansonsten wird ab Zeile 29 ein temporäres FTP-Script erzeugt, das wegen dem
Zum Schluss wird das FTP-Script und das temporäre Verzeichnis mit den verschlüsselten ZIP-Dateien gelöscht.
Was Dir jetzt noch zu tun bleibt, ist für die Absicherung des FTP-Transfers zu sorgen, indem Du die Meldungen des FTP-Servers auswertest und darin nach Fehlern suchst. Das könntest Du z.B. dadurch bewerkstelligen, indem Du die Ausgaben des FTP-Befehls in eine Datei umleitest und diese Datei nach dem Transfer auf Fehlermeldungen bzw. auf positive Rückmeldungen untersuchst (je nach dem was einfacher ist) und bei Abweichungen vom erwarteten Ergebnis entsprechend reagierst (Log-Datei schreiben oder z.B. mit
Gruß
Friemler
per Batch könnte das so gehen:
@echo off & setlocal
set "SrcDir=E:\Test"
set "EncryptedFilesDir=%Temp%\Encrypted"
set "FilePwd=Geheim"
set "FTPServer=ftp.DerServer.de"
set "FTPDir=/Sicherung"
set "FTPUser=anonymous"
set "FTPPwd=anonymous@example.com"
set "StartDir=%~dp0"
md "%EncryptedFilesDir%" 2>NUL
pushd "%SrcDir%"
for /f "delims=" %%f in ('xcopy /al *.* dummy ^| find /v "Datei(en) kopiert"') do (
"%StartDir%7za.exe" a -tzip "%EncryptedFilesDir%\%%~nf.zip" "%%~nxf" -mx9 -mem=AES256 -p%FilePwd% > NUL
attrib -a "%%~nxf"
)
popd
if not exist "%EncryptedFilesDir%\*.zip" rd "%EncryptedFilesDir%" & exit /b
set "FTPScript=%Temp%\FTPScript.txt"
> "%FTPScript%" echo open %FTPServer%
>>"%FTPScript%" echo user %FTPUser% %FTPPwd%
>>"%FTPScript%" echo binary
>>"%FTPScript%" echo cd "%FTPDir%"
>>"%FTPScript%" echo lcd "%EncryptedFilesDir%"
>>"%FTPScript%" echo mput *.*
>>"%FTPScript%" echo bye
ftp -n -i -s:"%FTPScript%"
del "%FTPScript%"
rd /s /q "%EncryptedFilesDir%"
Die Variablen in den Zeilen 4 bis 11 musst Du auf Deine Bedürfnisse anpassen.
Zum Verschlüsseln der Dateien wird die Konsolenversion von 7-Zip verwendet, erhältlich hier (die 7-Zip Command Line Version laden). 7za.exe muss im gleichen Verzeichnis wie das obige Script gespeichert werden.
Der
XCOPY
-Befehl in Zeile 18 ermittelt alle Dateien im Quellverzeichnis, deren Archivbit gesetzt ist. Er kopiert jedoch nicht, sondern listet die Dateien nur auf. Es werden dabei nur die Dateien in dem angegebenen Verzeichnis berücksichtigt, Dateien in evtl. vorhandenen Unterverzeichnissen nicht. Auch versteckte bzw. System-Dateien werden nicht berücksichtigt. Dazu müsste man statt /al
die Optionen /ahl
an XCOPY
übergeben.In Zeile 19 wird dann jede Datei einzeln mit 7-Zip in ein passwortgeschütztes ZIP-Archiv mit AES256-Verschlüsselung und maximaler Kompression gepackt. Alle Ausgabedateien landen im in Zeile 15 temporär angelegten Verzeichnis, das durch die Variable
EncryptedFilesDir
aus Zeile 5 angegeben wurde. Durch den Verzeichniswechsel in das Verzeichnis der Quelldateien in Zeile 16 enthalten die ZIP-Dateien keine Verzeichnisstruktur.In Zeile 20 wird nach dem Verschlüsseln/Komprimieren das Archivattribut jeder verarbeiteten Datei gelöscht.
Wenn die Prüfung in Zeile 25 ergibt, dass keine ZIP-Dateien erstellt wurden, wird das temporäre Verzeichnis wieder gelöscht und das Script beendet.
Ansonsten wird ab Zeile 29 ein temporäres FTP-Script erzeugt, das wegen dem
MPUT
-Befehl alle Dateien aus dem Verzeichnis, in dem die verschlüsselten ZIP-Dateien gespeichert wurden, auf den FTP-Server in das angegebene Verzeichnis lädt. Dieses FTP-Script wird in Zeile 37 ausgeführt.Zum Schluss wird das FTP-Script und das temporäre Verzeichnis mit den verschlüsselten ZIP-Dateien gelöscht.
Was Dir jetzt noch zu tun bleibt, ist für die Absicherung des FTP-Transfers zu sorgen, indem Du die Meldungen des FTP-Servers auswertest und darin nach Fehlern suchst. Das könntest Du z.B. dadurch bewerkstelligen, indem Du die Ausgaben des FTP-Befehls in eine Datei umleitest und diese Datei nach dem Transfer auf Fehlermeldungen bzw. auf positive Rückmeldungen untersuchst (je nach dem was einfacher ist) und bei Abweichungen vom erwarteten Ergebnis entsprechend reagierst (Log-Datei schreiben oder z.B. mit
BLAT
eine EMail verschicken oder Archivattribut der betroffenen Datei wieder setzen o.ä.).Gruß
Friemler
Hallo franc,
in dem Fall wird es kompliziert. Du müsstest ja dann die Verzeichnisstruktur der Quelldateien im Verzeichnis für die gezippten Dateien abbilden oder nur ein großes ZIP-File erzeugen, was eine Verzeichnisstruktur mit den herausgefilterten Dateien enthält (das wäre relativ einfach).
Der FTP-Befehl
Für den einfachen Fall habe ich diesen Vorschlag:
Die Namen der zu verarbeitenden Dateien werden inkl. relativem Pfad zum Quellverzeichnis in eine Datei geschrieben, die von
Gruß
Friemler
in dem Fall wird es kompliziert. Du müsstest ja dann die Verzeichnisstruktur der Quelldateien im Verzeichnis für die gezippten Dateien abbilden oder nur ein großes ZIP-File erzeugen, was eine Verzeichnisstruktur mit den herausgefilterten Dateien enthält (das wäre relativ einfach).
Der FTP-Befehl
MPUT
kann außerdem keine kompletten Verzeichnisbäume auf den FTP-Server hochladen, nur alle Dateien aus einem Verzeichnis. Wenn Du vorher ein großes ZIP-File erzeugst, wäre das kein Problem und Du könntest statt MPUT
einfach PUT
verwenden. Wenn Du viele einzelne ZIP-Files in einer Kopie der originalen Verzeichnisstruktur hochladen willst, wird es auch hier kompliziert.Für den einfachen Fall habe ich diesen Vorschlag:
@echo off & setlocal
set "SrcDir=E:\Test"
set "DestFile=%Temp%\Backup.zip"
set "FilePwd=Geheim"
set "FTPServer=ftp.DerServer.de"
set "FTPDir=/Sicherung"
set "FTPUser=anonymous"
set "FTPPwd=anonymous@example.com"
set "StartDir=%~dp0"
set "ListFile=%Temp%\7ZListFile.txt"
set "FTPScript=%Temp%\FTPScript.txt"
del "%ListFile%" 2>NUL
pushd "%SrcDir%"
for /f "tokens=1* delims=:" %%e in ('xcopy /alsi "*.*" "%Temp%\dummy" ^| findstr /v "^[0-9]"') do (
>>"%ListFile%" echo %%f
attrib -a "%%f"
)
if not exist "%ListFile%" exit /b
"%StartDir%7za.exe" a -tzip "%DestFile%" @"%ListFile%" -scsDOS -mx9 -mem=AES256 -p%FilePwd%
popd
> "%FTPScript%" echo open %FTPServer%
>>"%FTPScript%" echo user %FTPUser% %FTPPwd%
>>"%FTPScript%" echo binary
>>"%FTPScript%" echo cd "%FTPDir%"
>>"%FTPScript%" echo put "%DestFile%"
>>"%FTPScript%" echo bye
ftp -n -s:"%FTPScript%"
del "%FTPScript%"
del "%ListFile%"
del "%DestFile%"
Die Namen der zu verarbeitenden Dateien werden inkl. relativem Pfad zum Quellverzeichnis in eine Datei geschrieben, die von
7Za.exe
eingelesen wird. Aus den Dateien wird ein ZIP-File erzeugt und mit PUT
auf den FTP-Server hochgeladen.Gruß
Friemler