evobackup/evobackup_local

156 lines
5.6 KiB
Bash

#!/bin/sh
#
# Script evobackup client
# $Id: evobackup_cron_daily_client,v 1.21 2010-08-22 10:15:42 gcolpart Exp $
#
# systeme de la machine ("linux" ou "bsd")
SYSTEME=linux
# mail de remontee
MAIL=jdoe@example.com
# operations specifiques
mkdir -p -m 700 /home/backup
# Dump LDAP
# slapcat -l /home/backup/ldap.bak
# Dump MySQL
#mysqldump --defaults-extra-file=/etc/mysql/debian.cnf \
# --opt --all-databases --events | gzip --best > /home/backup/mysql.bak.gz
# for i in $(echo SHOW DATABASES | mysql | egrep -v "^(Database|information_schema|performance_schema)" ); \
# do mkdir -p /home/mysqldump/$i ; chown -R mysql /home/mysqldump ; \
# mysqldump --defaults-extra-file=/etc/mysql/debian.cnf -Q --opt --skip-comments --events -T \
# /home/mysqldump/$i $i; done
# Dump par base
# mkdir -p -m 700 /home/mysqldump/BASE
# chown -R mysql /home/mysqldump/
# mysqldump --defaults-extra-file=/etc/mysql/debian.cnf -Q \
# --opt -T /home/mysqldump/BASE BASE
# mkdir -p /home/mysqlhotcopy/
# mysqlhotcopy BASE /home/mysqlhotcopy/
# Dump instanceS MySQL
#oldIFS=$IFS
#IFS=$'\n'
#
## Recherche du mot de passe mysqladmin
#mysqladminpasswd=`cat /root/.my.cnf |grep -m1 'password = .*' |cut -d" " -f3`
#
## Determination des instances MySQL disponibles sur le serveur (hors 3306)
#for instance in `cat /etc/mysql/my.cnf |grep "port\s*=\s\d*"`
#do
# instance=${instance// /}
# instance=${instance// /}
# instance=${instance//port=/}
# if [ "$instance" != "3306" ]
# then
# mysqldump -P $instance --opt --all-databases -u mysqladmin -p$mysqladminpasswd > /home/backup/mysql.$instance.bak
# fi
#done
#
#IFS=$old_IFS
# Dump PostgreSQL
# su - postgres -c "pg_dumpall > ~/pg.dump.bak"
# mv ~postgres/pg.dump.bak /home/backup/
# Exemple de backups...
# On sauvegarde les tables d'une base sauf des exceptions
# pg_dump -p 5432 -h 127.0.0.1 -U USER --clean -F t --inserts -f /home/backup/pg-backup.tar -t 'TABLE1' -t 'TABLE2' BASE
# On sauvegarde uniquement certaines tables d'une base
# pg_dump -p 5432 -h 127.0.0.1 -U USER --clean -F t --inserts -f /home/backup/pg-backup.tar -T 'TABLE1' -T 'TABLE2' BASE
# Dump MBR / table partitions
#dd if=/dev/sda of=/home/backup/MBR bs=512 count=1 2>&1 | egrep -v "(records in|records out|512 bytes)"
#sfdisk -d /dev/sda > /home/backup/partitions 2>&1 | egrep -v "(Warning: extended partition does not start at a cylinder boundary|DOS and Linux will interpret the contents differently)"
# Dump routes
#traceroute -n 8.8.8.8 > /home/backup/traceroute-8.8.8.8
#mtr -r 8.8.8.8 > /home/backup/mtr-8.8.8.8
#traceroute -n backup.evolix.net > /home/backup/traceroute-backup.evolix.net
#mtr -r backup.evolix.net > /home/backup/mtr-backup.evolix.net
#traceroute -n www.evolix.fr > /home/backup/traceroute-www.evolix.fr
#mtr -r www.evolix.fr > /home/backup/mtr-www.evolix.fr
#traceroute -n www.evolix.net > /home/backup/traceroute-www.evolix.net
#mtr -r www.evolix.net > /home/backup/mtr-www.evolix.net
HOSTNAME=$(hostname)
DATE=$(/bin/date +"%d-%m-%Y")
DEBUT=$(/bin/date +"%d-%m-%Y ; %H:%M")
########## LOCK #####################
if [ ! -s /etc/evobackup/lock ]; then
echo mail > /etc/evobackup/lock
else
echo -e "La sauvegarde est bloquee (cf fichier lock)" | mail -s "[Sauvegarde] Sauvegarde mail non effectuee" $MAIL
exit 1
fi
#####################################
if [ $SYSTEME = "linux" ]; then
rep="/bin /boot /lib /opt /sbin /usr"
else
rep="/bsd /bin /boot /sbin /usr"
fi
rsync -av --delete --force --ignore-errors \
--exclude "lost+found" \
--exclude ".nfs.*" \
--exclude "/var/log" \
--exclude "/var/log/evobackup*" \
--exclude "/var/lib/mysql" \
--exclude "/var/lib/postgres" \
--exclude "/var/lib/sympa" \
--exclude "/var/lib/metche" \
--exclude "/var/run" \
--exclude "/var/lock" \
--exclude "/var/state" \
--exclude "/var/apt" \
--exclude "/var/cache" \
--exclude "/usr/src" \
--exclude "/usr/doc" \
--exclude "/usr/share/doc" \
--exclude "/usr/obj" \
--exclude "dev" \
--exclude "/var/spool/postfix" \
--exclude "/var/lib/amavis/amavisd.sock" \
--exclude "/var/lib/munin/munin-update.stats.tmp" \
--exclude "/var/lib/php5" \
--exclude "/var/spool/squid" \
$rep \
/etc \
/root \
/var \
/home \
/srv \
/vmlinuz \
/backup/last/ \
| tail -20 >> /var/log/evobackup_local.log
FIN=$(/bin/date +"%d-%m-%Y ; %H:%M")
echo "EvoBackup - $HOSTNAME - START $DEBUT" \
>> /var/log/evobackup_local.log
echo "EvoBackup - $HOSTNAME - STOP $FIN" \
>> /var/log/evobackup_local.log
tail -10 /var/log/evobackup_local.log | \
mail -s "[info] EvoBackup - Client $HOSTNAME (local)" \
$MAIL
########## UNLOCK ###################
echo -n > /etc/evobackup/lock
#####################################