wild-wolf
Goto Top

Linux Debian Backup auf Synology NAS?

Hallo zusammen.

Und zwar würde ich gerne einen Debian Server auf ein NAS das via dyndns erreichbar ist sichern.
Dieses soll immer nachts passieren.

Meine Frage an dieser Stelle wäre jetzt, was ist Sinnvoller.
1) Backup auf dem Server erstellen lassen und anschließend via ssh auf das NAS zu schieben
2) NAS mounten und dort das Backup draufmachen

Da ich mich mit den Scripten nicht so gut auskenne, wäre jetzt meine Frage ob man das Script was ich gefunden habe so anpassen könnte,
Das ich auf dem NAS folgende Ordner habe: daily, weekly, monthly. Am liebsten wäre mir eine Rotatefunktion das immer nach einem Wöchentlichen Backup die täglichen geleert werden und nach dem monatlichen, die wöchentlichen.

Vielleicht kennt auch jemand eine bessere Lösung.


#!/bin/bash

LANG=en_EN

BACKUPDIR=/var/opt/backup
SCRIPTDIR=/opt/backup
BACKUPUSER=USER
BACKUPUSERPASSWD=PASSWORD
DAY=`date +"%A"`
SUNDAY=$[(`date +"%e"` - 1) / 7 + 1]
MONTH=`date +"%B"`

EMAIL="system@DOMAIN.TLD"
MYHOSTNAME=$(/bin/hostname -f)
MYDATE=$(/bin/date)
SYSTEMLOG=/var/log/backup-system.log
RET=0

function getip()
{
/sbin/ifconfig eth0 | grep "inet addr" | cut -d':' -f 2 | cut -d' ' -f 1
}

function run()
{
local RET
echo "<<< ---------------------------------------------" >> /tmp/backup.log.$$
echo "<<< $@" >> /tmp/backup.log.$$
echo "<<< ---------------------------------------------" >> /tmp/backup.log.$$
echo >> /tmp/backup.log.$$
($* 2>&1) >> /tmp/backup.log.$$
RET=$?
echo >> /tmp/backup.log.$$
echo ">>> ---------------------------------------------" >> /tmp/backup.log.$$
echo ">>> Exit status: $RET" >> /tmp/backup.log.$$
echo ">>> ---------------------------------------------" >> /tmp/backup.log.$$
echo >> /tmp/backup.log.$$
return $RET
}

function INFO_HEADER()
{
local MYIP
MYIP=$(getip)
echo "============================================="
echo " Hostname: $MYHOSTNAME"
echo " IP: $MYIP"
echo " Date: $MYDATE"
echo -n " Version: Debian "
if [ -f /etc/debian_version ]; then
cat /etc/debian_version
fi
echo "============================================="
}

INFO_HEADER >> /tmp/backup.log.$$

if test $DAY = 'Sunday'
then
DAY=$DAY-$SUNDAY
if test $SUNDAY = 1
then
DAY=$DAY-$MONTH
fi
fi

### Backup-Space mounten

mount -t nfs -o nfsvers=3,soft,intr 192.168.x.x:/volume1/servername $BACKUPDIR

### MySQL-Datenbanken sichern

DATABASES=`mysql -u$BACKUPUSER -p$BACKUPUSERPASSWD -e"show databases"`

for DATABASE in $DATABASES
do
if [ $DATABASE != "Database" ]; then
run `mysqldump -u$BACKUPUSER -p$BACKUPUSERPASSWD $DATABASE > $BACKUPDIR/mysql/$DATABASE.sql`
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
fi
done

run tar -cf $BACKUPDIR/mysql/mysql-$DAY.tar $BACKUPDIR/mysql/*.sql
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
rm $BACKUPDIR/mysql/*.sql
run 7za a -p2coT7o0S -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on -bd $BACKUPDIR/mysql/mysql-$DAY.tar.7z $BACKUPDIR/mysql/mysql-$DAY.tar
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
rm $BACKUPDIR/mysql/mysql-$DAY.tar

### WWW-Dateien sichern

run tar -cf $BACKUPDIR/web/www-$DAY.tar /var/www
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
run 7za a -p2coT7o0S -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on -bd $BACKUPDIR/web/www-$DAY.tar.7z $BACKUPDIR/web/www-$DAY.tar
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
rm $BACKUPDIR/web/www-$DAY.tar

### etc-Verzeichnis sichern

run tar -cf $BACKUPDIR/system/etc-$DAY.tar /etc
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
run 7za a -p2coT7o0S -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on -bd $BACKUPDIR/system/etc-$DAY.tar.7z $BACKUPDIR/system/etc-$DAY.tar
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
rm $BACKUPDIR/system/etc-$DAY.tar

### opt-Verzeichnis sichern

run tar -cf $BACKUPDIR/system/opt-$DAY.tar /opt
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
run 7za a -p2coT7o0S -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on -bd $BACKUPDIR/system/opt-$DAY.tar.7z $BACKUPDIR/system/opt-$DAY.tar
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
rm $BACKUPDIR/system/opt-$DAY.tar

### home-Verzeichnis sichern

run tar -cf $BACKUPDIR/sonstige/home-$DAY.tar /home
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
run 7za a -p2coT7o0S -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on -bd $BACKUPDIR/sonstige/home-$DAY.tar.7z $BACKUPDIR/sonstige/home-$DAY.tar
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
rm $BACKUPDIR/sonstige/home-$DAY.tar

### sonstige Daten sichern

EXCLUDE=exclude-sonstige

run tar -cf $BACKUPDIR/sonstige/sonstige-$DAY.tar -X $SCRIPTDIR/$EXCLUDE /var/lib/munin /var/mail /var/spool/mail /var/spool/cron /var/spool/postfix /var/opt /var/log/apache2
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
run 7za a -p2coT7o0S -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on -bd $BACKUPDIR/sonstige/sonstige-$DAY.tar.7z $BACKUPDIR/sonstige/sonstige-$DAY.tar
RET2=$?; if [ $RET2 -ne 0 ]; then RET=$RET2; fi
rm $BACKUPDIR/sonstige/sonstige-$DAY.tar

ls -lah /var/opt/backup >> /tmp/backup.log.$$

### Backup-Space unmounten

umount $BACKUPDIR

for REC in $EMAIL; do
case $RET in
0)
mail -s "Backup report [success] $MYHOSTNAME" $REC < /tmp/backup.log.$$
;;
1)
mail -s "Backup report [failure] $MYHOSTNAME" $REC < /tmp/backup.log.$$
;;
2)
mail -s "Backup report [warning] $MYHOSTNAME" $REC < /tmp/backup.log.$$
;;
*)
mail -s "Backup report [status unknown] $MYHOSTNAME" $REC < /tmp/backup.log.$$
;;

esac
done

more /tmp/backup.log.$$ >> $SYSTEMLOG
rm -f /tmp/backup.log.$$

Content-ID: 292819

Url: https://administrator.de/contentid/292819

Ausgedruckt am: 05.11.2024 um 19:11 Uhr

aqui
aqui 12.01.2016 um 10:40:38 Uhr
Goto Top
DynDNS riecht nach Backup über das Internet ??
Ein NFS Mount wäre da kritisch, denn da gelten Laufzeiten und was noch viel wichtiger ist die Daten sind nicht verschlüsselt ! Jeder könnte also deine daten offen sehen wenn die Sicherung denn über das Internet geht.
Besser also die .tar Dateien erst lokal sichern und dann per SCP an das NAS schicken.
Wild-Wolf
Wild-Wolf 12.01.2016 um 10:55:56 Uhr
Goto Top
Daran habe ich auch schon gedacht.
Dann müsste ich nur schauen, wie ich am Ende der Sicherung noch sage, verschieb den Spaß via scp aufs NAS.
michi1983
michi1983 12.01.2016 um 10:58:54 Uhr
Goto Top
Hallo,

ich hab das so gemacht, dass mein NAS mittels rsnapshot (rsync) + SSH die Daten von meinem Ubuntu Server geholt hat. Da hast du dann genau die Ordner Struktur die du wünscht.

Gruß
Wild-Wolf
Wild-Wolf 12.01.2016 um 11:04:28 Uhr
Goto Top
rsnapshot schaue ich mir auch gerade an.
- Wie schauts da mit den Daten allgemein aus? Komme ich ohne Probleme an die Daten, wenn ich diese z.B. auf meiner Festplatte entpacke dran, oder sind die verschlüsselt/verpackt, wie z.B. bei BackupExec oder Agronis.
- Werden diese als tar gesichert?
michi1983
Lösung michi1983 12.01.2016 um 11:10:12 Uhr
Goto Top
Zitat von @Wild-Wolf:

rsnapshot schaue ich mir auch gerade an.
- Wie schauts da mit den Daten allgemein aus? Komme ich ohne Probleme an die Daten, wenn ich diese z.B. auf meiner Festplatte entpacke dran, oder sind die verschlüsselt/verpackt, wie z.B. bei BackupExec oder Agronis.
- Werden diese als tar gesichert?
Die Daten werden nicht verpackt und nicht verschlüsselt.
Aber die Verbindung selbst wird verschlüsselt.
Das heißt, die Daten liegen 1:1 auf dem NAS wie sie auch auf dem Server liegen.

Gruß