156 lines
5.6 KiB
Bash
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
|
|
#####################################
|
|
|