NetVision-Technik

Zur?ck   NetVision-Technik > Forum > Server > Webserver > Security

Security Hier kommen alle Fragen und Lösungen zur Sicherheit und zu Fixes am Serversystem rein

Antwort
 
Themen-Optionen Ansicht
Alt 10.12.2008, 02:03   #1
[HOW-TO] Sicherung eines Servers mit backup2l und
Bluesteel Bluesteel ist offline 10.12.2008, 02:03

Ziel ist es, einmal pro Nacht alle VHosts mit Datenbanken zu sichern und 7 Tage vorzuhalten. Parallel dazu möchten wir 2x Pro Woche das Komplette System sichern, und jeweils 2 Generationen davon aufbewahren. Das komplette Backup lagern wir auf einem FTP Server aus. Achtet auf jeden Fall darauf, genügend Speicherplatz zu haben. Ansonsten könnt Ihr die Zahl der Backups verringern. Ich mache nur Fullbackups, inkrementelle kommen bei mir nicht in Frage. Wer das möchte, kann sich dass aber gerne Parametrisieren.
Ein

man backup2l
hilft hier nach der installation weiter.
Durch das Systembackup fällt der der Server 2x die Woche früh morgens für ca. 15 Minuten aus. Wer das nicht verkraften kann, sollte die enstprechenden Dienste nicht beenden. Da wir allerdings auch Datenbanken als Files mitnehmen, wäre das beenden empfehlenswert!

Ich gehe hier von einem opensuse 10.1 mit Plesk 8.2.0 aus. Ausserdem gehe ich davon aus, dass entsprechend ein FTP Backup Server vorhanden ist.

Fangen wir an:

Zuerst legen wir das lokale Backupverzeichniss an. Am besten da, wo noch genügend Platz vorhanden ist:
Code:
     mkdir  /srv/backup
mkdir  /srv/backup/sync
Runterladen der benötigten Software:
Code:
     mkdir  /srv/software/
CD  /srv/software/
Code:
wget http://dfn.dl.sourceforge.net/sourceforge/backup2l/backup2l_1.4.tar.gz
wget http://www.lyra.org/sitecopy/sitecopy-0.16.3.tar.gz
Entpacken:
Code:
     tar xzf backup2l_1.4.tar.gz
tar xzf sitecopy-0.16.3.tar.gz

Installieren von backup2l:

Code:
     CD  /srv/software/backup2l-1.4/
./install-sh
Die beiden Fragen können mit „y“ beantwortet werden.


Entfernen des täglichen Cronjobs (später mehr dazu)

Code:
     rm  /etc/cron.daily/zz-backup2l
Wir beginnen nun mit der Einrichtung von backup2:
Code:
     mv  /etc/backup2l.conf /etc/backup2l-vhost.conf
Bearbeiten der VHost Config:
Code:
     vi /etc/backup2l-vhost.conf
Finde:
Code:
     VOLNAME=“all“

Ersetze durch

Code:
     VOLNAME=“vhost“
Finde:
Code:
     SRCLIST=(/etc /root /home /var/mail /usr/local)

Ersetze durch (Deinen VHost Pfad!)

Code:
     SRCLIST=(/srv/www/vhosts)
Finde
Code:
     BACKUP_DIR=“/disk2/backup/“
Ersetze durch
Code:
     BACKUP_DIR=“/srv/backup/sync“
Setze folgende Werte:
Code:
     MAX_LEVEL=0
MAX_PER_LEVEL=0
MAX_FULL=7
Finde:
Code:
     UNCONFIGURED=1

Ersetze durch:

Code:
     # UNCONFIGURED=1
Nun konfigurieren wir das Systembackup:
Code:
     CP  /etc/backup2l-vhost.conf /etc/backup2l-system.conf
vi /etc/backup2l-system.conf
Code:
     VOLNAME="system"
SRCLIST=(/)

SKIPCOND=(-path '/proc' -o -path '/proc/*' -o -path '/srv/backup/*' -o -path '/srv/backup' -o -path '/srv/www/*' -o -path '/srv/www' -o -path '/sys' -o -path '/sys/*')

MAX_LEVEL=0
MAX_PER_LEVEL=0
MAX_FULL=2
GENERATIONS=1
Vor dem Backup:
Code:
     PRE_BACKUP ()
{
        echo "pre-backup:  Dienste beenden"

        echo "Apache"
        rcapache2 stop
        echo "MySQL"
        rcmysql stop
        echo "Nameserver"
        rcnamed stop
        echo "Mailserver"
        /etc/init.d/qmail stop
        echo "Plesk"
        /etc/init.d/psa stop
        echo "Mailman"
        rcmailman stop
}
Nach dem Backup:
Code:
     POST_BACKUP ()
{
        echo "  post-backup: Dienste starten"

        echo "Plesk"
        /etc/init.d/psa start
        echo "Mailserver"
        /etc/init.d/qmail start

}
Kommen wir zu den Datenbanken, die wir einzeln in Files dumpen und eine gewisse Zeit auf dem Server und dem FTP Backup Server vorhalten möchten:

Code:
     touch /usr/local/bin/dbsave
chmod 700 /usr/local/bin/dbsave
vi /usr/local/bin/dbsave
Inhalt der Datei: (Fragmente aus einem alten fund im Internet, Danke dem Author!)
Code:
     #!/bin/bash
echo "Alle MySQL-Datenbanken sichern:"
mysqlshow -uadmin -pGEHEIM | awk '{print $2}' | grep -v Databases | sort >/tmp/dblist.txt
CD  /srv/backup/sync/
mkdir  -p `date +%Y%m%W%D`
CD  `date +%Y%m%W%D`
for x in `cat /tmp/dblist.txt`; do
    echo "Datenbank: $x sichern";
    mysqldump --opt -uadmin -pGEHEIM $x >$x.sql;
done;
echo "Alte .gz-Dateien loeschen:"
rm  *.gz
echo "Dateien zippen:"
gzip *
echo .fertig.
echo "=================================================="
Nach Ablauf liegen nun die Datenbanken in
Code:
     /srv/backup/sync/DATUM….
vor und werden später mit Sitecopy auf den server kopiert. Pro Tag gibt es einen Unterordner.

Damit dieser Ordner nicht voll läuft, kümmern wir uns um die regelmäßige Verschiebung:

Code:
     mkdir  /srv/backup/db_old
touch /usr/local/bin/dbpush
chmod 700 /usr/local/bin/dbpush
vi /usr/local/bin/dbpush
Inhalt der Datei:
Code:
     #!/bin/bash
echo "Alle MySQL-Datenbanken verschieben:"
rm  -fr /srv/backup/db_old/*
mv  -v /srv/backup/sync/2* /srv/backup/db_old/
Um volle Kontrolle zu behalten legen wir für jeden Sicherungsablauf ein eigenes Starterskript an. Beginnen wir mit den VHost-Sicherungen:

Code:
     touch /usr/local/bin/webbackup
chmod 700 /usr/local/bin/webbackup
vi /usr/local/bin/webbackup

Inhalt der Datei:

Code:
     #!/bin/bash
echo "Sicherung aller VHosts anlegen"
echo "=================================================="
/usr/local/bin/backup2l -c /etc/backup2l-vhost.conf –b

Nun das Systembackup:

Code:
     touch /usr/local/bin/sysbackup
chmod 700 /usr/local/bin/sysbackup
vi /usr/local/bin/sysbackup
Inhalt dieser Datei:
Code:
     #!/bin/bash
echo "Sicherung des Systems anlegen"
echo "=================================================="
/usr/local/bin/backup2l -c /etc/backup2l-system.conf -b
Ok, nachdem wir uns um die Sicherung gekümmert haben, installieren wir sitecopy:

Installieren von sitecopy:
Code:
     CD  /srv/software/sitecopy-0.16.3/
./configure
make
make install

Anlegen des configfile/folder:

Code:
     mkdir  -m 700 /root/.sitecopy 
touch /root/.sitecopyrc 
chmod 600 /root/.sitecopyrc 
vi /root/.sitecopyrc
Inhalt der Datei:
Code:
     site backup
  server backupxxx.onlinehome-server.info
  remote /backup
  local /srv/backup/sync
  username bakxxxxxx
  password geheim
Ordner auf dem Backupserver anlegen:

Code:
     ftp bakxxxxxx@backupxxx.onlinehome-server.info 
mkdir  backup 
quit
Und Sitecopy initialisieren:
Code:
     /usr/local/bin/sitecopy --init backup
Da wir vorhaben, täglich als letzten Vorgang die Datenbanken zu sichern, nehmen wir die Syncronisation da mit rein. Da ich jeden Tag mir den Status per Email zukommen lassen möchte, habe ich in dieser Mail den Überblick ob die Datenbanken gesichert sind, und ob das Syncronisieren geklappt hat:


Code:
     vi /usr/local/bin/dbsave
und fügen am Ende
Code:
     echo "Sync starten:"
/usr/local/bin/sitecopy -u backup
echo "Sync beendet"
hinzu.

Nun kümmern wir uns darum, dass alle Programme ablaufen, Infos in Logfiles schreiben und uns das per mail schicken:

Code:
     crontab -e
Alle Programme Ausführen, Logs schreiben
Code:
     00      01      *       *       *       /usr/local/bin/webbackup > /tmp/webbackup.log
30      03      *       *       1,4     /usr/local/bin/sysbackup > /tmp/sysbackup.log
00      04      *       *       *       /usr/local/bin/dbsave > /tmp/dbsave.log
45      03      *       *       1       /usr/local/bin/dbpush > /tmp/dbpush.log

Logs per mail schicken lassen

Code:
    00      06      *       *       *       mail -s "VHost Sicherung" -a /tmp/webbackup.log mail@adresse.de
00      06      *       *       1,4     mail -s "System Sicherung" -a /tmp/sysbackup.log mail@adresse.de
00      06      *       *       *       mail -s "DB Sicherung + Sync" -a /tmp/dbsave.log mail@adresse.de
00      06      *       *       1       mail -s "DB Archivierung" -a /tmp/dbpush.log mail@
__________________




Ge?ndert von Cerberus (10.12.2008 um 08:50 Uhr).

 
Benutzerbild von Bluesteel
Bluesteel
Super-Moderator
Letzte Erfolge
Registriert seit: 27.05.2008
Ort: zu hause
Beitr?ge: 2.029
Abgegebene Danke: 510
Erhielt 302 Danke für 52 Beiträge
Downloads: 48
Uploads: 2
Nachrichten: 1565
Hits: 11974
Mit Zitat antworten
Folgende 2 Benutzer sagen Danke zu Bluesteel für den nützlichen Beitrag:
$iMpLy (10.12.2008), Mauerwerk (16.11.2014)
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, G?ste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beitr?ge zu antworten.
Es ist Ihnen nicht erlaubt, Anh?nge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beitr?ge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Template-Modifikationen durch TMS