Unterstütze unsere Tutorials mit einem WerbeClick!

Linux Tipps

Debian Tipp #16: Wenn Sie eine bestimmte Datei suche, aber nicht wissen, zu welchem Paket sie gehört, installieren Sie »apt-file«. Dieses unterhält eine kleine Datenbank mit solchen Informationen.

Datensicherung mit Linux

Selbst gemachte Datensicherung
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

Wir gehen davon aus, dass ein funktionsfähiges Linux Betriebssystem vorhanden ist.
  • 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-client

Linux 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

Als nächstes muss ein Datensicherungsskript geschrieben werden. Am besten im Pfad ablegen. Z.B. in /usr/local/sbin. Name des Skripts: sichern.sh
#!/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.

Beispiel: Cronjob in /etc/crontab
# 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.
Viel Erfolg!
Unterstütze unsere Tutorials mit einem Werbeclick!

Über uns

Wir sind ein agiles Team von Softwareentwicklungen, UX-Designern und IT-Supporten und haben uns auf individuelle Softwarelösung für den Mittelstand spezialisiert. Unsere besondere Stärken sind  Web-Anwendungen mit dem Symfony Framework sowie individuelle Industrielösungen für Produktionslinien, Servicetechniker oder Inspekteure zu entwickeln. Eine weitere Stärke ist die Erweiterung von Content Management Systemen wie beispielsweise Wordpress, Typo3, Drupal und Joomla. Das entwickeln von Apps für Android, Windows und Apple OS Systemen ist selbstverständlich!