Linux Datensicherung Script

#!/bin/bash
# Marco Krage, Adi Stiller 26.07.2012
 
 
### Installation:
## Auf jeweiligem Server per SSH verbinden und folgendes ausfuehren:
## ssh root@svr-file2 'cat /data/backup-install.sh' | sh
##  backup-install.sh: scp root@svr-file2:/data/backup.sh /usr/local/bin/ && chmod a+x /usr/local/bin/backup.sh && echo "00 23    * * *   root    /usr/local/bin/backup.sh" >> /etc/crontab && vi /usr/local/bin/backup.sh
##
## Oder fuer Admin
## touch /usr/local/bin/backup.sh && chmod a+x /usr/local/bin/backup.sh && vi /etc/crontab && vi /usr/local/bin/backup.sh
## 0 23 * * *   root    /usr/local/bin/backup.sh >> /datensicherung/dasi.log
 
 
 
# Datensicherungsziel OHNE abschliessenden Slash
DEST="/backup"
 
# Dateien loeschen die aelter als X Minuten sind (1440 = 24 Stunden)
OLDMIN="1380" # 23 Stunden
 
# MySQL Zugangsdaten
DBUSER=""
DBPASS=""
 
# MySQL Datenbanken (Leerzeichen getrennt)
DBS=""
 
# Datei -/Ordnerpfade (Leerzeichen getrennt, ohne abschliessenden Slash)
DIRS="/home/pi /var/www /usr/local/bin /usr/local/sbin /etc"
EXDIRS="/var/www/webcam/archiv"
 
 
#### Ab hier Finger weg, wenn keine Ahnung ####
 
# binary Pfade
BINHOSTNAME=`which hostname`
BINMYSQLDUMP=`which mysqldump`
BINTAR=`which tar`
BINGZIP=`which gzip`
BINCAT=`which cat`
BINFIND=`which find`
BINRM=`which rm`
BINMOUNT=`which mount`
BINUMOUNT=`which umount`
 
# Timestamp fuer logging
LOGTS="$(date "+%b %d %Y %H:%M:%S")"
 
# Filename prefix
FILEPREFIX="$(date +%Y-%m-%d_%H-%M).`${BINHOSTNAME} -s`"
 
 
 
#
# MySQL
#
for db in ${DBS}
do
        echo "${LOGTS} sichere Datenbank: $db"
        ${BINMYSQLDUMP} -u${DBUSER} --password=${DBPASS} --opt $db | ${BINGZIP} -c | ${BINCAT} > "${DEST}/${FILEPREFIX}.$db.sql.gz"
done
 
 
#
# Dateien
#
echo "${LOGTS} sichere Dateien: ${DIRS}"
 
${BINTAR} -zcvf "${DEST}/${FILEPREFIX}.files.tar.gz" ${DIRS} --exclude=${EXDIRS} 1> /dev/null
 
 
#
# Alte Backups loeschen
#
echo "${LOGTS} loesche Backups welche aelter als ${OLDMIN} Sekunden sind"
${BINFIND} ${DEST}/*.gz -type f -mmin +${OLDMIN} -exec ${BINRM} {} \;
 
 
#
# Dropbox Upload
#
cp $(ls -t /backup/*.gz |head -n 1) /tmp/raspberrypi.files.tar.gz
/usr/local/bin/dropbox_uploader.sh upload /tmp/raspberrypi.files.tar.gz
rm /tmp/raspberrypi.files.tar.gz
 
exit 0
pub/linux-datensicherung-script.txt · Zuletzt geändert: 2013/12/06 19:12 von 127.0.0.1