Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
skripting-section:bash:synology-backup-skript [2018/01/05 12:36] – created michael | skripting-section:bash:synology-backup-skript [2018/09/25 11:15] (current) – michael | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Synology Backup Skript ====== | + | ====== Synology |
Skript, welches vom mir erstellt wurde, um automatisiert wichtige Daten von meinem Synology NAS, auf eine externe Harddisk welche an meinem Backup-Server angeschlossen ist zu sichern! (Die HDD wird nur aktiv für die Zeit der Sicherung!) | Skript, welches vom mir erstellt wurde, um automatisiert wichtige Daten von meinem Synology NAS, auf eine externe Harddisk welche an meinem Backup-Server angeschlossen ist zu sichern! (Die HDD wird nur aktiv für die Zeit der Sicherung!) | ||
Line 9: | Line 9: | ||
#!/bin/bash | #!/bin/bash | ||
############################################################################################# | ############################################################################################# | ||
- | # | + | # |
############################################################################################# | ############################################################################################# | ||
- | + | ||
############################################################################################# | ############################################################################################# | ||
## Variable Definition & System Vorbereitungen: | ## Variable Definition & System Vorbereitungen: | ||
today=`date +" | today=`date +" | ||
OLDBACKUP=`date -d "7 days ago" +" | OLDBACKUP=`date -d "7 days ago" +" | ||
- | + | ||
## System dependency Check: | ## System dependency Check: | ||
if [ -n " | if [ -n " | ||
Line 35: | Line 35: | ||
fi | fi | ||
################################################################################################ | ################################################################################################ | ||
- | ## Mount und bereitstellen der Backup-Disk: | ||
- | mount /dev/sda1 / | ||
- | if [ ! -d "/ | + | ## Aktivieren des Stroms der Backup-Festplatte und bereitstellen des Mounts: |
- | mkdir / | + | uhubctl |
- | echo " | + | |
- | fi | + | |
- | if [ ! -d "/ | + | |
- | mkdir /mnt/ | + | |
- | echo " | + | |
- | fi | + | |
- | if [ ! -d "/ | + | |
- | mkdir / | + | |
- | echo " | + | |
- | fi | + | |
- | if [ ! -d "/ | + | |
- | mkdir / | + | |
- | echo " | + | |
- | fi | + | |
- | ################################################################################################ | + | |
- | ## Start des täglichen blackSERV-Backups: | + | |
- | echo " | + | |
- | #Create | + | # Überprüfen, |
- | mount -t nfs -o ro,hard 192.168.1.21:/ | + | if [ "$(df | grep -oP '/ |
- | rsync -av --exclude '*@SynoResource' | + | then |
- | --exclude '*.vsmeta' | + | echo "ERROR: Disk has less than 50GB free space!" |
- | / | + | df -h > /tmp/dfInfo |
- | /mnt/backup-disk/ | + | sendemail |
- | umount | + | -u " |
+ | | ||
+ | -s "smtp.gmail.com: | ||
+ | | ||
+ | | ||
+ | -xp " | ||
+ | -o message-file=" | ||
- | #Create | + | umount / |
- | mount -t nfs -o ro,hard 192.168.1.21: | + | exit 1 |
- | #rsync -av --exclude ' | + | else |
- | --exclude ' | + | |
- | /mnt/blackSERV/ \ | + | if [ ! -d "/mnt/backup-disk/ |
- | / | + | mkdir /mnt/backup-disk/ |
- | umount / | + | echo " |
- | + | fi | |
- | #Create Backup of web: | + | if [ ! -d "/mnt/backup-disk/server_backups" |
- | mount -t nfs -o ro,hard 192.168.1.21:/ | + | |
- | rsync -av --exclude ' | + | echo " |
- | --exclude ' | + | fi |
- | /mnt/blackSERV/ \ | + | if [ ! -d "/mnt/backup-disk/web" ]; then |
- | / | + | |
- | umount / | + | echo " |
- | + | fi | |
- | #Create Backup of znextCloud: | + | if [ ! -d "/mnt/backup-disk/znextCloud" |
- | mount -t nfs -o ro,hard 192.168.1.21:/ | + | |
- | rsync -av --exclude ' | + | echo " |
- | --exclude ' | + | fi |
- | /mnt/blackSERV/ \ | + | ################################################################################################ |
- | / | + | ## Start des täglichen blackSERV-Backups: |
- | umount | + | |
- | + | #Create Backup of daten_michael: | |
- | ################################################################################################ | + | #**************************************************************** |
- | ## Löschen von 7 Tage alten Backups: | + | mount -t nfs -o ro,hard 192.168.1.21:/ |
- | #if [ -d "/mnt/server-backup/$backupdir/$OLDBACKUP" | + | rsync -av --exclude ' |
- | # | + | --exclude ' |
- | #fi | + | / |
- | ################################################################################################ | + | / |
- | ## | + | umount / |
- | umount / | + | |
+ | | ||
+ | | ||
+ | mount -t nfs -o ro,hard 192.168.1.21:/ | ||
+ | | ||
+ | for serverBackupPath in `find / | ||
+ | do | ||
+ | serverBackupFolder=$(echo $serverBackupPath | cut -d '/' | ||
+ | rsync -av --exclude ' | ||
+ | --exclude ' | ||
+ | $serverBackupPath/ | ||
+ | | ||
+ | | ||
+ | umount / | ||
+ | |||
+ | | ||
+ | # | ||
+ | mount -t nfs -o ro,hard 192.168.1.21:/ | ||
+ | rsync -av --exclude ' | ||
+ | --exclude ' | ||
+ | | ||
+ | / | ||
+ | | ||
+ | |||
+ | | ||
+ | #**************************************************************** | ||
+ | mount -t nfs -o ro,hard 192.168.1.21:/ | ||
+ | rsync -av --exclude ' | ||
+ | --exclude ' | ||
+ | / | ||
+ | / | ||
+ | umount / | ||
+ | |||
+ | echo " | ||
+ | fi | ||
+ | |||
+ | umount / | ||
</ | </ |