Linux: einfaches Backup Script (Dateien + Datenbank)

Hier pflegen wir selbst Tips ein, deren Verwendung wir immer wieder selbst einmal brauchen.

Moderator: ThoGoe

Benutzeravatar
maennchen1.de
Administrator
Beiträge: 15453
Registriert: 14.08.2003, 16:55
Lizenz: wpShopGermany Enterprise
Wohnort: Thüringen, Ellersleben
Kontaktdaten:

Linux: einfaches Backup Script (Dateien + Datenbank)

Beitragvon maennchen1.de » 15.08.2014, 14:57

Folgendes Script kopiert Dateien von $SRCDIR (in diesem Beispiel sind es 2 Verzeichnisse; diese Liste kann beliebig erweitert werden) nach $DESTDIR. In $DESTDIR wird zuvor ein neues Verzeichnis mit dem heutigen Datum angelegt und alle Dateien werden dort hinein kopiert. Bei der Ausführung des Scriptes wird darauf geachtet, dass bereits angelegte Backups nicht älter als 30 Tage sind, um die Festplatte des NAS nicht vollzumüllen.

Code: Alles auswählen

#!/bin/bash

SRCDIR=("/var/backups/" "/etc/")
DESTDIR=/mnt/nas-backup/server01
DATE=`date -I`

find $DESTDIR -type d -mtime +30 -exec rm -R {} \;

if [ ! -x $DESTDIR/$DATE ]; then
    mkdir $DESTDIR/$DATE;
fi

for p in ${SRCDIR[@]};
    do cp -r $p $DESTDIR/$DATE;
done


In diesem Zusammenhang ist es zum Beispiel notwendig, MySQL-Datenbanken zu sichern. Dazu werden lediglich die Datenbanktabellen in einem zweiten Script als Dump exportiert und gepackt:

Code: Alles auswählen

#!/bin/bash

DESTDIR=/var/backups/dbbackup

for db in $(/usr/bin/mysql -e 'show databases' -s | grep -v 'lost+found' | grep -v 'information_schema' | grep -v 'performance_schema') ;
    do /usr/bin/mysqldump --events -B --opt -Q $db | bzip2 -c > $DESTDIR/$db.sql.bz2 ;
done


Damit der User das obige Script aufrufen kann, ohne ein Passwort angeben zu müssen, sollte noch ein Datei namens ".my.cnf" mit folgendem Inhalt angelegt werden (Achtung: der Datei möglichst nur Leserechte für den Besitzer geben!):

Code: Alles auswählen

[client]
password=DeinPassWort
Kein Support per PN! Alle Fragen beantworten wir hier im Forum. Per PN bitte nur Passwörter, Namen und URLs - sofern notwendig.
Bitte vor dem posten lesen:
FAQ / häufig gestellte Fragen
wpShopGermany Fehler? Hilfeanleitung!
PHTML-Dateien richtig verwenden (für eigene Anpassungen)

Zurück zu „m1.Tips“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast