Logo von Guschtel.de Nicht eingeloggt.  
Main |  Privat |  Linux |  Clausthal |  Studium |  Stuff |  UniInfos II |  Userbereich |  Block |  Admin | 

 
Sie sind hier: Main > Linux > Backup
KrabbelViech

Backup

Damit der Schaden im Falle eines Falles möglichst klein ausfällt, ist dieser Rechner mit 2 180GB Festplatten ausgestattet von denen eine ausschliesslich redundant als Backup-Platte fungiert und auf die täglich Backups kopiert werden. Desweiteren wird jede Nacht ein Backup der Postgres-Datenbank in das Rechenzentrum der TU-Clausthal kopiert, dort werden diese Daten nochmal automatisch vom Rechenzentrum gebackupt.

Dazu verwende ich folgende Backup-Scripte:
#!/bin/bash

# BACKUP SCRIPT von Christoph Hermann
# http://www.guschtel.de

if [ $UID != 0 ]
then
    echo Are you root?
    exit 1
fi

# Settings
DATE=`date +%Y-%m-%d`
TIME=`date +%H:%M`
BACKUPROOT=/backup
BACKUPLOG=$BACKUPROOT/log/backup.log

# Backup Start
echo HP5 Backup started at $DATE $TIME.
echo "- MARK -" >> $BACKUPLOG
echo HP5 Backup started at $DATE $TIME. >> $BACKUPLOG

# Backupdir
if [ ! -d $BACKUPROOT/$DATE ]
then
    echo Creating Backup-Directory for $DATE
    mkdir $BACKUPROOT/$DATE
fi

# /var Dir erstellen
if [ ! -d $BACKUPROOT/$DATE/var ]
then
    echo Creating Backup-Directory for $DATE/var
    mkdir $BACKUPROOT/$DATE/var
fi

# web (HP5 & uni-infos)
# HP5
echo -n Compressing Files in /.../HP5 using tar...
tar -cjf $BACKUPROOT/$DATE/var/www_HP5.tar.bz2 -C/ -X $BACKUPROOT/exclude.txt var/.../HP5
echo done
# /.../files
echo -n Compressing Files in /.../files using tar...
tar -cjf $BACKUPROOT/$DATE/var/www_files.tar.bz2 -C/ -X $BACKUPROOT/exclude.txt var/.../files
echo done

# Datenbank
# Password for postgres database
PGPASSWORD="***"
if [ ! -d $BACKUPROOT/$DATE/database ]
then
    echo Creating Backup-Directory for $DATE/database
    mkdir $BACKUPROOT/$DATE/database
fi
FILE=$BACKUPROOT/$DATE/database/guschtel.sql
export PGPASSWORD
pg_dump -D -f $FILE -U <dbuser> -x <databasename>
gzip $FILE
PGPASSWORD=""
export PGPASSWORD

ENDDATE=`date +%Y-%m-%d`
ENDTIME=`date +%H:%M`
echo HP5 Backup finished at $ENDDATE $ENDTIME.
echo HP5 Backup finished at $ENDDATE $ENDTIME. >> $BACKUPLOG
#!/bin/sh
PGPASSWORD="***"
FILE=/home/<userid>/.../`date +%Y-%m-%d_%H:%M`_guschtel.sql
export PGPASSWORD
pg_dump -D -f $FILE -x <db-userid>
gzip $FILE
rm $FILE
#!/bin/bash
for i in $(find /home/<userid>/.../ -name "`date +%Y-%m-%d`*.gz");
do
	scp $i <userid>@ra.rz.tu-clausthal.de:/home/<userid>/.../postgres/
done
ssh -l <userid> ra.rz.tu-clausthal.de /home/<userid>/.../cleanpostgresdumps

Durch die SSH Hostkey Authentication kommt dieses Script ohne eine Passwort-Eingabe aus.
In der letzten Zeile rufe ich ein Script auf, was mir Backups löscht, die älter sind als 28 Tage:
#!/usr/bin/bash
DIR=/home/<userid>/.../postgres/
find $DIR -atime +28 -exec rm {} \;




Main |  Privat |  Linux |  Clausthal |  Studium |  Stuff |  UniInfos II |  Userbereich |  Block |  Admin |   
Freitag, 30. Juli 2010 13:59:48 - http://old.guschtel.de/HP5/linux/backup.php - Impressum
krabbel