Datensicherung mit Linux
Einrichtung einer inkrementellen Datensicherung von Linux auf einen NAS (Network Attached Storage) mit Cron, Tar und Gzip. Einfache Lösung mit Standard-Boardmitteln der meisten Linux-Distributionen.
Voraussetzungen
- Linux Betriebssystem
- die Pakete gzip und cron müssen installiert sein.
- für das Mounten von Windows Freigaben das Paket smbclient.
apt-get install gzip cron samba-clientLinux bietet die Möglichkeit mittels CIFS Windows Netzwerkfreigaben einzubinden. Zumindest für Betriebssystem unabhängige Daten ist dies eine Möglichkeit um die Daten einfach zu sichern.
Beispiel: Manuelles mounten einer Windows Freigabe:
mount.cifs <remotetarget> <dir> -o <options>Um die Einbindung der Windows Freigabe permanent verfügbar zu machen, muss diese in die Datei /etc/fstab eingetragen werden.
# /etc/fstab ... # windows netzwerkfreigabe mounten //rechner/freigabe /mnt/win cifs username=win,password=pass,rw,umask=0700 0 0
Das Datensicherungsskript
#!/bin/bash
#
# Sicherungsskript: sichern.sh
#
# Aufruf Parameter
# sichern.sh mo fuer Sicherung Montag
# sichern.sh okt fuer Monatssicherung Oktober
# Parameter pruefen
if ! test $1 ; then
echo "aufruf: sichern.sh <wochentag oder monat>"
echo "Beispiel: sichern.sh mo"
exit 1
fi
# Mountpoints
NASMOUNT=/mnt/nas/backup
NASCHECK=NASDisk
LOGFILE=/var/log/sicherung.log
# Tag oder Monatsname der Sicherung (mo,di,mi,do,fr,sa,so)
TAG=$1
# starte backup
doBackup() {
# Start Zeitstempel der Sicherung protokollieren
echo "Start: `date`" >> $LOGFILE
# Beginn der Sicherung
# 1. Windows /mnt/win sichern
SAVEPATH="/mnt/win/"
OUTNAME="daten"
tar czf $NASMOUNT/$TAG.$OUTNAME.tgz $SAVEPATH
# 2. /home sichern
SAVEPATH="/home/"
OUTNAME="linux-home"
tar czf $NASMOUNT/$TAG.$OUTNAME.tgz $SAVEPATH
# 3. /etc sichern
SAVEPATH="/etc/"
OUTNAME="etc"
tar czf $NASMOUNT/$TAG.$OUTNAME.tgz $SAVEPATH
# .... und was sonst noch wichtig ist!
# Ende Zeitstempel
echo "Ende: `date`" >> $LOGFILE
# logfile fuer kontrolle kopieren
cp -f $LOGFILE $NASMOUNT
chmod a+r $NASMOUNT/sicherung.log
}
# pruefen ob nas gemountet ist
if grep $NASCHECK /proc/mounts > /dev/null ; then
# check for backup folder
if [ ! -d $NASMOUNT ]; then
mkdir $NASMOUNT
fi
# start backup
doBackup
else
echo "Nas is not available!"
exit 1;
fi
cron job
Abschließend muss jetzt noch ein cron job angelegt werden, der die Sicherung regelmäßig startet. Da die Sicherung einen Parameter erwartet, verwenden wir die Formatierungsanweisung %a (Tag) bzw. %b (Monat) des date Kommandos. Das %-Zeichen muss bei der Verwendung innerhalb von Crontab allerdings noch mittels Backslash (\) escaped werden.
# Datensicherung täglich Nachts um 1:00 Uhr 0 1 * * * root /usr/local/sbin/sichern.sh $(date +\%a) # Datensicherung 1 x pro Monat immer am 1. um 3 Uhr 0 3 1 * * root /usr/local/sbin/sichern.sh $(date +\%b)Jetzt sollten täglich Sicherungsdateien erzeugt werden die im Dateinamen den Wochentag, bzw. den Monatsnamen enthalten.
You are a guest
or post as a guest
Be the first to comment.