Error
  • JHTMLicon not supported. File not found.
  • JHTMLicon not supported. File not found.
  • JHTMLicon not supported. File not found.

und

Backupscript 1.2
Wednesday, 04 August 2010 09:11
// description of your code here


#!/bin/sh

#
# Dies ist ein einfaches BackupScript welches
# Datenbanken und Ordner synchronisiert und
# das mittels SSH (AuthKey) und rsync.
#
# Name: SSHBackup
# Version: 1.2 (02.08.2010)
# Copyright: 2008-2010 by sp3x, www.sp3x.de
# _____
# ___ _ __|___ /_ __
# / __| '_ \ |_ \ \/ /
# \__ \ |_) |__) > <
# |___/ .__/____/_/\_\
# (c)|_| www.sp3x.de
#

#################
# KONFIGURATION #
#################

#
# Workingdir
#
WDIR="/root/backup/"

#
# Database-Backup History in Days
#
HISTORY=7

#
# Remote IP
#
HOST="localhost"

#
# MySQL-Datenbanken sichern?
# 1 = ja, 0 = nein
#
MYSQL=1

#
# Dateien sichern?
# 1 = ja, 0 = nein
#
FILESYSTEM=1

#
# MySQL-Datenbank Benutzer
#
MYSQL_USR="root"

#
# MySQL-Datenbank Password
#
MYSQL_PWD=""

#
# MySQL-Port
#
MYSQL_PORT=3306

#
# SSH-Port
#
SSH_PORT=9990

#
# SSH-Auth Key (default: ssh/key)
#
SSH_KEY="ssh/key"

#
# SSH-User (default: root)
#
SSH_USER="root"

#
# Maximale Geschwindigkeit in KByte/s
#
SPEED=99999

######################
# KONFIGURATION ENDE #
#####################Ã#

# Text formatiert in Konsole ausgeben
function cout() {

if [ "$2" = "" ]; then
MSG=$1
else
MSG="\033\13301;$2m$1\033\1330m"
fi

if [ "$3" = "1" ]; then
MSG="$MSG\a"
fi


echo -e -n "$MSG"
}

# Commando remote ausfuehren
function scmd() {

ssh -q $HOST -p$SSH_PORT -l$SSH_USER -i $SSH_KEY $1 $2 $3 $4 $5 $6 $7 $8 $9
}

#################################
# Backupvorgang vorbereiten
# und starten
cout "\n\tStarting backup... "

cd $WDIR

set $(date)
DATE=`date "+%Y-%m-%d_%H-%M"`
let deathline=`date "+%Y%m%d"`-$HISTORY+1
deathline=$deathline"0000"
#################################
# Alte Backups löschen
#
for dir in `ls ./DATABASE/`; do
cleandir=`echo $dir |sed s/_// |sed s/-// |sed s/-// |sed s/-//`
if [ $cleandir -lt $deathline ]; then
rm -Rf ./DATABASE/$dir
fi
done

#################################
# MYSQL - Backup
if [ "$MYSQL" = "1" ]; then

cout "\n\n\t\tStarting MySQL backup... "

# Backupscript erstellen
SCRIPT=`cat tpl/mysql`

sed -e "s/{MYSQL_USR}/$MYSQL_USR/" tpl/mysql > tmp.1
sed -e "s/{MYSQL_PWD}/$MYSQL_PWD/" tmp.1 > tmp.2
sed -e "s/{MYSQL_PORT}/$MYSQL_PORT/" tmp.2 > tmp.3
chmod +x tmp.3

scmd rm ~/tmp.dbbackup.sh 2> /dev/null
scp -P$SSH_PORT -i $SSH_KEY tmp.3 $SSH_USER@$HOST:~/tmp.dbbackup.sh 1> /dev/null
rm tmp.*

# Datenbank backup
scmd ~/tmp.dbbackup.sh

# Datenbankbackups synchronisieren
rsync -a -z -e "ssh -q -i$SSH_KEY -p$SSH_PORT" --bwlimit=$SPEED --stats "$SSH_USER@$HOST:/root/tmp.database/" ./DATABASE/ > log/${DATE}_database.log

# Datenbankordner loeoeschen
scmd rm -R ~/tmp.database

cout "\tDone" 32
fi
#################################
# FILESYSTEM - Backup
if [ "$FILESYSTEM" = "1" ]; then
cout "\n\t\tStarting Files backup... "


for x in `cat rpath.conf`; do
IFS=":"
data=($x)
mkdir FILE/${data[1]} 2> /dev/null
rsync -a -z -e "ssh -i$SSH_KEY -p9990" --bwlimit=$SPEED --stats --delete "$SSH_USER@$HOST:${data[0]}/" FILE/${data[1]}/ > log/${DATE}_file.log
done;

cout "\tDone" 32
fi

cout "\n\n\n\tFinished backup!\n\n" 32

Read more: http://feeds.dzone.com/~r/dzone/snippets/~3/FmV4RqGgSaU/11967

 


Taxonomy by Zaragoza Online