348 lines
8.1 KiB
Markdown
348 lines
8.1 KiB
Markdown
![]() |
**Backup: 7-zip**
|
|||
|
|
|||
|
Sonntag, 7. Juli 2019
|
|||
|
|
|||
|
10:47
|
|||
|
|
|||
|
|
|||
|
|
|||
|
**Backup: 7-zip und batch dateien für ein automatisiertes Backup**
|
|||
|
|
|||
|
Veröffentlicht am [12. Oktober 2009](https://www.camma.ch/2009/10/12/backup-7-zip-und-batch-dateien-fuer-ein-automatisiertes-backup/)
|
|||
|
|
|||
|
Ab und zu schaut man sich nach besseren Backup Programmen um. Ein [Blogeintrag von Caschy](http://stadt-bremerhaven.de/fbackup-kostenloses-backup-programm-der-extraklasse/) hat mich dazu animiert. Da alle „normalen" Backupprogramme das sichern ganzer Laufwerke nicht zulassen, habe ich mich auf die Suche nach etwas schlauerem gemacht. Die Idee war ein Pendant zum [bash-Backupscript](https://www.camma.ch/2009/07/21/bash-script-zum-erstellen-eines-file-und-mysql-backup-mit-ftp-upload/) von mir zu finden ohne die Welt gleich neu erfinden zu müssen (sprich selber schreiben).
|
|||
|
|
|||
|
Auf [Loogans Site](http://www.logaans-site.co.uk/2009/04/06/using-7-zip-and-batch-files-to-perform-backups-automatically/) wurde ich fündig.
|
|||
|
|
|||
|
Dieses Backup kann full oder auch incrementelle Backups erstellen.
|
|||
|
|
|||
|
Das Script besteht aus 7 Teilen:
|
|||
|
|
|||
|
- **Backup.cmd**, ist das Haupscript das die Backup Kommandos ausführt
|
|||
|
|
|||
|
- **Backupset.txt**, eine Liste der Ordner und Files die gesichert werden sollen
|
|||
|
|
|||
|
- **CurrentSet.txt**, hier steht der Pfad zum aktuellen FullBackup. Dieser wird für das incrementelle Backup benötigt
|
|||
|
|
|||
|
- **FullBackup.cmd**, zum starten des FullBackup
|
|||
|
|
|||
|
- **FullBackupSettings.ini**, alle Einstellungen des FullBackup
|
|||
|
|
|||
|
- **IncrementalBackup.cmd**, zum starten des incrementellen Backups
|
|||
|
|
|||
|
- **IncrementalBackupSettings.ini**, alle Einstellungen des incrementellen Backups
|
|||
|
|
|||
|
Das Scriptgebilde kann natürlich auch gestrafft werden. Durch den bestehenden Aufbau lassen sich die Einstellungen relativ einfach ändern und zur Ausführung des Scripts reicht ein ExecuteScript. Im folgenden sind hier alle Scripts aufgeführt:
|
|||
|
|
|||
|
**Backup.cmd**
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\@echo off
|
|||
|
|
|||
|
echo TRACE: Start
|
|||
|
|
|||
|
IF EXIST %1 GOTO Begin
|
|||
|
|
|||
|
echo Settings file does not exist
|
|||
|
|
|||
|
GOTO End
|
|||
|
|
|||
|
:Begin
|
|||
|
|
|||
|
echo TRACE: Read settings
|
|||
|
|
|||
|
for /f \"eol=# tokens=1,2 delims==\" %%i in (%1) do SET %%i=%%j
|
|||
|
|
|||
|
set varNewBackupSet=%varBackupLocation%\\%DATE:\~-4%-%DATE:\~3,2%-%DATE:\~0,2%-%TIME:\~0,2%-%TIME:\~3,2%-backup.%varFormat%
|
|||
|
|
|||
|
IF \"%varBackupType%\"==\"full\" GOTO CreateNewSet
|
|||
|
|
|||
|
echo TRACE: Load existing set
|
|||
|
|
|||
|
for /F %%i in (CurrentSet.txt) do set varOldBackupSet=%%i
|
|||
|
|
|||
|
IF EXIST \"%varOldBackupSet%\" GOTO ExecuteIncremental
|
|||
|
|
|||
|
echo Backup set does not exist!
|
|||
|
|
|||
|
GOTO End
|
|||
|
|
|||
|
:CreateNewSet
|
|||
|
|
|||
|
echo TRACE: Create new set
|
|||
|
|
|||
|
echo %varNewBackupSet% \> CurrentSet.txt
|
|||
|
|
|||
|
:ExecuteFull
|
|||
|
|
|||
|
echo TRACE: Execute Full backup
|
|||
|
|
|||
|
\"%var7zipPath%\\7z\" a -t%varFormat% \"%varNewBackupSet%\" @\"%varFileList%\"
|
|||
|
|
|||
|
GOTO End
|
|||
|
|
|||
|
:ExecuteIncremental
|
|||
|
|
|||
|
echo TRACE: Execute Incremental backup
|
|||
|
|
|||
|
\"%var7zipPath%\\7z\" u -u- -u!\"%varNewBackupSet%\" -t%varFormat% \"%varOldBackupSet%\" @\"%varFileList%\"
|
|||
|
|
|||
|
:End
|
|||
|
|
|||
|
echo TRACE: Finished
|
|||
|
|
|||
|
pause
|
|||
|
|
|||
|
Das Backup Script lädt die Einstellungen aus dem Parameter 1, macht ein paar Prüfungen und startet danach 7Zip zum Backup. In den Konfigurations-Dateien wird definiert was wie und wo.
|
|||
|
|
|||
|
**BackupSet.txt**
|
|||
|
|
|||
|
|
|||
|
|
|||
|
D:\\Guild Wars\\Screens
|
|||
|
|
|||
|
D:\\camma\\Documents
|
|||
|
|
|||
|
D:\\camma\\Favorites
|
|||
|
|
|||
|
C:\\Users\\camma\\Desktop
|
|||
|
|
|||
|
D:\\Logaan\\Saved Games
|
|||
|
|
|||
|
C:\\Users\\camma\\AppData\\Local\\2DBoy
|
|||
|
|
|||
|
C:\\Users\\camma\\AppData\\Local\\Ascaron Entertainment
|
|||
|
|
|||
|
C:\\Users\\camma\\AppData\\Local\\id Software
|
|||
|
|
|||
|
C:\\Users\\camma\\AppData\\Local\\Ironclad Games
|
|||
|
|
|||
|
C:\\Users\\camma\\AppData\\Local\\Rockstar Games
|
|||
|
|
|||
|
C:\\Users\\camma\\AppData\\Roaming\\EditPlus 3
|
|||
|
|
|||
|
C:\\Users\\camma\\AppData\\Roaming\\FileZilla
|
|||
|
|
|||
|
C:\\Users\\camma\\AppData\\Roaming\\Free Download Manager
|
|||
|
|
|||
|
C:\\Users\\camma\\AppData\\Roaming\\Xfire
|
|||
|
|
|||
|
Dies Dateiliste wird an 7Zip übergeben. Einzige Einschränkung ist hier, dass der gleiche Ordner oder die gleiche Datei nicht doppelt aufgeführt werden dürfen. Wenn mehrere Ordner an verschiedenen Stellen gleich heissen, kann dies auch durch mehrere Scripts gelöst werden, welche gleichnamige Ordner auf verschiedene BackupSets verteilt.
|
|||
|
|
|||
|
**CurrentSet.txt**
|
|||
|
|
|||
|
|
|||
|
|
|||
|
D:\\2009-08-15-17-16-backup.zip
|
|||
|
|
|||
|
Hier ist der Pfad zum zuletzt angefertigten FullBackup enthalten. Die incrementellen Backups lesen diesen aus uns benützen das FullBackup zum Updaten der Dateienlisten die gesichert werden müssen.
|
|||
|
|
|||
|
**FullBackup.cmd**
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\@echo off
|
|||
|
|
|||
|
Backup D:\\camma\\Documents\\Tools\\7ZipBackup\\FullBackupSettings.ini
|
|||
|
|
|||
|
Dieses startet das Hauptscript mit den entsprechenden Einstellungen. Falls mehrere Sets mit verschiedenen Einstellungen ausgeführt werden sollen, muss folgender Code benutzt werden:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\@echo off
|
|||
|
|
|||
|
call Backup D:\\camma\\Documents\\Tools\\7ZipBackup\\FullBackupSettings.ini
|
|||
|
|
|||
|
call Backup D:\\camma\\Documents\\Tools\\7ZipBackup\\FullBackupSettings2.ini
|
|||
|
|
|||
|
call Backup D:\\camma\\Documents\\Tools\\7ZipBackup\\FullBackupSettings3.ini
|
|||
|
|
|||
|
**FullBackupSettings.ini**
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\# File path to the 7-zip executables
|
|||
|
|
|||
|
var7zipPath=C:\\Program Files\\7-Zip
|
|||
|
|
|||
|
\# Backup format
|
|||
|
|
|||
|
varFormat=zip
|
|||
|
|
|||
|
\# Target location for the backup
|
|||
|
|
|||
|
varBackupLocation=D:
|
|||
|
|
|||
|
\# List file
|
|||
|
|
|||
|
varFileList=D:\\camma\\Documents\\Tools\\7ZipBackup\\BackupSet.txt
|
|||
|
|
|||
|
\# Mode
|
|||
|
|
|||
|
varMode=a
|
|||
|
|
|||
|
\# Type
|
|||
|
|
|||
|
varBackupType=full
|
|||
|
|
|||
|
Die Konfigurationsdatei wird im Hauptscript eingelesen. Es enthält den Modus des Backups, die Pfad angaben sowie Einstellungen von 7Zip.
|
|||
|
|
|||
|
**IncrementalBackup.cmd**
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\@echo off
|
|||
|
|
|||
|
Backup D:\\camma\\Documents\\Tools\\7ZipBackup\\IncrementalBackupSettings.ini
|
|||
|
|
|||
|
Analog der FullBackup Konfiguration für das incrementelle Backup
|
|||
|
|
|||
|
**IncrementalBackupSettings.ini**
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\# File path to the 7-zip executables
|
|||
|
|
|||
|
var7zipPath=C:\\Program Files\\7-Zip
|
|||
|
|
|||
|
\# Backup format
|
|||
|
|
|||
|
varFormat=zip
|
|||
|
|
|||
|
\# Target location for the backup
|
|||
|
|
|||
|
varBackupLocation=D:
|
|||
|
|
|||
|
\# List file
|
|||
|
|
|||
|
varFileList=D:\\camma\\Documents\\Tools\\7ZipBackup\\BackupSet.txt
|
|||
|
|
|||
|
\# Mode
|
|||
|
|
|||
|
varMode=u
|
|||
|
|
|||
|
\# Type
|
|||
|
|
|||
|
varBackupType=incremental
|
|||
|
|
|||
|
Viel Spass beim testen und benutzen des Scripts.
|
|||
|
|
|||
|
**Related Posts:**
|
|||
|
|
|||
|
- No Related Posts
|
|||
|
|
|||
|
Dieser Eintrag wurde veröffentlicht in [Windows](https://www.camma.ch/category/windows/) und verschlagwortet mit [Backup](https://www.camma.ch/tag/backup/), [Security](https://www.camma.ch/tag/security/), [Tipps](https://www.camma.ch/tag/tipps/), [Windows](https://www.camma.ch/tag/windows/) von [Lukas Blatter](https://www.camma.ch/author/blattertech/). [Permanenter Link zum Eintrag](https://www.camma.ch/2009/10/12/backup-7-zip-und-batch-dateien-fuer-ein-automatisiertes-backup/).
|
|||
|
|
|||
|
**Ein Gedanke zu „Backup: 7-zip und batch dateien für ein automatisiertes Backup"**
|
|||
|
|
|||
|
{width="0.7083333333333334in" height="0.7083333333333334in"}
|
|||
|
|
|||
|
Björn sagte am [8. Dezember 2009 um 08:56](https://www.camma.ch/2009/10/12/backup-7-zip-und-batch-dateien-fuer-ein-automatisiertes-backup/#comment-91) :\
|
|||
|
Hallo\
|
|||
|
Tolles Skript, das Vollbackup funktioniert gut. Danach habe ich schon lange gesucht, danke! Allerdings habe ich Probleme mit dem inkrementellen Backup. Ich bekomme die Fehlermeldung: Backup set does not exist! Also scheint die Variable varOldBackupSet nicht richtig gesetzt zu werden. Außerdem wird die Datei CurrentSet.txt nicht automatisch neu beschrieben durch das Skript?!
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Aus \<<https://www.camma.ch/2009/10/12/backup-7-zip-und-batch-dateien-fuer-ein-automatisiertes-backup/>\>
|
|||
|
|
|||
|
Aufteilen der Dateien :
|
|||
|
|
|||
|
--**v1900m**
|
|||
|
|
|||
|
-v ist der Operator
|
|||
|
|
|||
|
1900 ist die größe
|
|||
|
|
|||
|
m ist die Maßeinheit hier Megabyte
|
|||
|
|
|||
|
b wäre Byte
|
|||
|
|
|||
|
k wäre kilobyte
|
|||
|
|
|||
|
g wäre gigabyte
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
bei mir also :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
-v25g
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Passwort Parameter muss als erstes kommen :
|
|||
|
|
|||
|
-pPASSWORT
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Große Datei der letzten 30 Tage :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
gci \|where {\$\_.Length -gt 20000000 -and \$\_.LastWriteTime -gt (get-date).AddDays(-1)}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Get-ChildItem \| select name, {\[Math\]::round(\$\_.Length /1MB)}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#Dateiname-vorbereiten
|
|||
|
|
|||
|
\$date = get-date
|
|||
|
|
|||
|
\$Day = \$Date.Day
|
|||
|
|
|||
|
\$Month = \$Date.Month
|
|||
|
|
|||
|
\$Year = \$Date.Year
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#Aktuelle Datei ermitteln
|
|||
|
|
|||
|
\$ad = gci \|?{\$\_.LastWriteTime -gt (get-date).AddDays(-1)}
|
|||
|
|
|||
|
#Datei packen mit 7zip
|
|||
|
|
|||
|
& \'C:\\Program Files\\7-Zip\\7z.exe\' a -v25g -p.bunte1. \"\$day-\$month-\$year.zip\" \"\$ad\"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Backup Kette
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Veeam backup auf E:\\Daten Lokal - server-tews
|
|||
|
|
|||
|
Von dort mit 7zip auf D:\\ziop
|
|||
|
|
|||
|
Von dort geht es per Qsync auf die Nas
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Auf der Nas mit Hybrid Backup Sync in das Langzeitarchiv
|
|||
|
|
|||
|
|