Last active
September 27, 2016 20:02
-
-
Save magujs/250dec07e0339a2162c0280e1d70be85 to your computer and use it in GitHub Desktop.
Backup Script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Script fuer inkrementelles Backup mit 30 taegigem Vollbackup | |
### Einstellungen ## | |
BACKUPDIR="home/user/p/test/backup" ## Pfad zum Backupverzeichnis | |
ROTATEDIR="home/user/p/test/backup/rotate" ## Pfad wo die Backups nach 30 Tagen konserviert werden | |
TIMESTAMP="timestamp.dat" ## Zeitstempel | |
SOURCE="home/user/p/test/mackdir" ## Verzeichnis(se) welche(s) gesichert werden soll(en) | |
DATUM="$(date +%d-%m-%Y)" ## Datumsformat einstellen | |
ZEIT="$(date +%H:%M)" ## Zeitformat einstellen | |
### Verzeichnisse/Dateien welche nicht gesichert werden sollen ! Achtung keinen Zeilenumbruch ! ## EXCLUDE="--exclude=home/user/Filme --exclude=home/user/Musik --exclude=home/user/Spiele --exclude=home/user/.VirtualBox --exclude=home/user/.local/share/Trash" | |
EXCLUDE="" | |
### Wechsel in root damit die Pfade stimmen ## | |
cd / | |
### Backupverzeichnis anlegen ## | |
mkdir -p ${BACKUPDIR} | |
### Test ob Backupverzeichnis existiert und Mail an Admin bei fehlschlagen ## | |
if [ ! -d "${BACKUPDIR}" ]; then | |
#mail -s "Backupverzeichnis nicht vorhanden!" root <<EOM | |
#Hallo Admin, | |
#das Backup am ${DATUM} konnte nicht erstellt werden. Das Verzeichnis ${BACKUPDIR} wurde nicht gefunden und konnte auch nicht angelegt werden. | |
#Mit freundlichem Gruss Backupscript | |
#EOM | |
. exit 1 | |
fi | |
### Alle Variablen einlesen und letzte Backupdateinummer herausfinden ## | |
set -- ${BACKUPDIR}/backup-???.tgz | |
lastname=${!#} | |
backupnr=${lastname##*backup-} | |
backupnr=${backupnr%%.*} | |
backupnr=${backupnr//\?/0} | |
backupnr=$[10#${backupnr}] | |
### Backupdateinummer automatisch um +1 bis maximal 30 erhoehen ## | |
if [ "$[backupnr++]" -ge 30 ]; then | |
mkdir -p ${ROTATEDIR}/${DATUM}-${ZEIT} | |
### Test ob Rotateverzeichnis existiert und Mail an Admin bei fehlschlagen ## | |
if [ ! -d "${ROTATEDIR}/${DATUM}-${ZEIT}" ]; then | |
#mail -s "Rotateverzeichnis nicht vorhanden!" root <<EOM | |
#Hallo Admin, | |
#die alten Backups konnten am ${DATUM} nicht verschoben werden. Das Verzeichnis ${ROTATEDIR} wurde nicht gefunden und konnte auch nicht angelegt werden. | |
#Mit freundlichem Gruss Backupscript | |
#EOM | |
. exit 1 | |
else | |
mv ${BACKUPDIR}/* ${ROTATEDIR}/${DATUM}-${ZEIT} | |
fi | |
### Abfragen ob das Backupverschieben erfolgreich war ## | |
if [ $? -ne 0 ]; then | |
#mail -s "Backupverschieben fehlerhaft!" root <<EOM | |
#Hallo Admin, | |
#die alten Backups konnte am ${DATUM} nicht verschoben werden. | |
#Mit freundlichem Gruss Backupscript | |
#EOM | |
exit 1 | |
else | |
#mail -s "Backupverschieben erfolgreich" root <<EOM | |
#Hallo Admin, | |
#die alten Backups wurde am ${DATUM} erfolgreich nach ${ROTATEDIR}/${DATUM}-${ZEIT} verschoben. | |
#Mit freundlichem Gruss Backupscript | |
#EOM | |
### die Backupnummer wieder auf 1 stellen ## | |
backupnr=1 | |
fi | |
fi | |
backupnr=000${backupnr} | |
backupnr=${backupnr: -3} | |
filename=backup-${backupnr}.tgz | |
### Nun wird das eigentliche Backup ausgefuehrt ## | |
tar -cpzf ${BACKUPDIR}/${filename} -g ${BACKUPDIR}/${TIMESTAMP} ${SOURCE} ${EXCLUDE} | |
### Abfragen ob das Backup erfolgreich war ## | |
#if [ $? -ne 0 ]; then | |
#mail -s "Backup (${SOURCE}) war fehlerhaft!" root <<EOM | |
#Hallo Admin, | |
#das Backup ${filename} am ${DATUM} wurde mit Fehler(n) beendet. | |
#Mit freundlichem Gruss Backupscript | |
#EOM | |
#else | |
#mail -s "Backup (${SOURCE}) war erfolgreich" root <<EOM | |
#Hallo Admin, | |
#das Backup ${filename} am ${DATUM} wurde erfolgreich beendet. | |
#Mit freundlichem Gruss Backupscript | |
#EOM | |
#fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment