skripting-section:bash:synology-backup-skript

This is an old revision of the document!


Synology Backup Skript

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!)

Filename: blackserv_backup_script.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/bash
#############################################################################################
#******************* Backup blackSERV Script by Michael Reber - v 1.0 **********************#
#############################################################################################
  
#############################################################################################
## Variable Definition & System Vorbereitungen:
today=`date +"%Y-%m-%d"`
OLDBACKUP=`date -d "7 days ago" +"%Y-%m-%d"`
  
## System dependency Check:
if [ -n "$(command -v apt-get)" ]; then
    if [ $(dpkg-query -W -f='${Status}' nfs-common 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
      apt-get install nfs-common -y;
    fi
else
    if [ $(yum -q list installed nfs-utils &>/dev/null && echo "1" || echo "0") -eq 0 ]; then
      yum install nfs-utils -y;
      systemctl start rpcbind && systemctl enable rpcbind;
    fi
fi
if [ ! -d "/mnt/backup-disk" ]; then
    mkdir /mnt/backup-disk
fi
if [ ! -d "/mnt/blackSERV" ]; then
    mkdir /mnt/blackSERV
fi
################################################################################################
## Mount und bereitstellen der Backup-Disk:
mount /dev/sda1 /mnt/backup-disk
 
if [ ! -d "/mnt/backup-disk/daten_michael" ]; then
    mkdir /mnt/backup-disk/daten_michael
    echo "$today - Creating new backup-topdir: 'daten_michael'.." >> /var/log/blackSERV-backup.log
fi
if [ ! -d "/mnt/backup-disk/server_backups" ]; then
    mkdir /mnt/backup-disk/server_backups
    echo "$today - Creating new backup-topdir: 'server_backups'.." >> /var/log/blackSERV-backup.log
fi
if [ ! -d "/mnt/backup-disk/web" ]; then
    mkdir /mnt/backup-disk/web
    echo "$today - Creating new backup-topdir: 'web'.." >> /var/log/blackSERV-backup.log
fi
if [ ! -d "/mnt/backup-disk/znextCloud" ]; then
    mkdir /mnt/backup-disk/znextCloud
    echo "$today - Creating new backup-topdir: 'znextCloud'.." >> /var/log/blackSERV-backup.log
fi
################################################################################################
## Start des täglichen blackSERV-Backups:
echo "$today - Starting with backup of server: $backupdir .." >> /var/log/blackSERV-backup.log
 
#Create Backup of daten_michael:
mount -t nfs -o ro,hard 192.168.1.21:/volume1/daten_michael /mnt/blackSERV 2>> /var/log/blackSERV-backup.log
rsync -av --exclude '*@SynoResource' --exclude '@eaDir' \
--exclude '*.vsmeta' --exclude '.DS_Store' --exclude 'Thumbs.db' \
/mnt/blackSERV/3_Dokumente /mnt/blackSERV/4_Medien /mnt/blackSERV/5_Development /mnt/blackSERV/6_KnowHow  \
/mnt/backup-disk/daten_michael/
umount /mnt/blackSERV
 
#Create Backup of server_backups:
mount -t nfs -o ro,hard 192.168.1.21:/volume1/server-backups /mnt/blackSERV 2>> /var/log/blackSERV-backup.log
#rsync -av --exclude '*@SynoResource' --exclude '@eaDir' \
--exclude '*.vsmeta' --exclude '.DS_Store' --exclude 'Thumbs.db' \
/mnt/blackSERV/ \
/mnt/backup-disk/server-backups/
umount /mnt/blackSERV
  
#Create Backup of web:
mount -t nfs -o ro,hard 192.168.1.21:/volume1/web /mnt/blackSERV 2>> /var/log/blackSERV-backup.log
rsync -av --exclude '*@SynoResource' --exclude '@eaDir' \
--exclude '*.vsmeta' --exclude '.DS_Store' --exclude 'Thumbs.db' \
/mnt/blackSERV/ \
/mnt/backup-disk/web/
umount /mnt/blackSERV
  
#Create Backup of znextCloud:
mount -t nfs -o ro,hard 192.168.1.21:/volume1/znextCloud /mnt/blackSERV 2>> /var/log/blackSERV-backup.log
rsync -av --exclude '*@SynoResource' --exclude '@eaDir' \
--exclude '*.vsmeta' --exclude '.DS_Store' --exclude 'Thumbs.db' \
/mnt/blackSERV/ \
/mnt/backup-disk/znextCloud/
umount /mnt/blackSERV 
 
  
################################################################################################
## Löschen von 7 Tage alten Backups:
#if [ -d "/mnt/server-backup/$backupdir/$OLDBACKUP" ]; then
#    rm -fR /mnt/server-backup/$backupdir/$OLDBACKUP
#fi
################################################################################################
##
umount /mnt/backup-disk

  • skripting-section/bash/synology-backup-skript.1515152189.txt.gz
  • Last modified: 2018/01/05 12:36
  • by michael