J'ai lu leur truc, c'est moyen, s'il y a voici mon script :
(Si vous voyez des améliorations, je veux bien, je vais sans doute faire un autre qui fera une requête pour lister le nom des bases disponibles au lieu d'aller voir les fichiers car si on a des bases innodb par exemple, il faut bien penser que tout est dans un/plusieurs fichiers au lieu d'un répertoire unique)
#!/bin/sh
#
# Script pour faire le backup des bases
# de données MySQL
# Exécuté par /etc/crontab
#
#
backup_dir=/mnt/backup-mysql
backup_dir_mysql=${backup_dir}/mysql
backup_tmp=${backup_dir}/tmp
backup_tmp_mysql=${backup_tmp}/mysql
for var in `find /var/lib/mysql/ -type d | grep -v "lost+found" | \
sed -e "s/\/var\/lib\/mysql\///"`; do
mysqldump --opt $var > ${backup_tmp_mysql}/mysql-$var-$date-$host.sql
done
# Création de l'archive Tar/gzip data et
# déplacement vers le répertoire des backups
tar czf ${backup_tmp}/mysql-$date-$host.tar.gz -C ${backup_tmp}/ mysql/
mv ${backup_tmp}/mysql-$date-$host.tar.gz ${backup_dir_mysql}/mysql-$host.tar.gz
# Bof
Posté par rootix . En réponse au journal Restauration et sauvegarde MySQL. Évalué à 2.
(Si vous voyez des améliorations, je veux bien, je vais sans doute faire un autre qui fera une requête pour lister le nom des bases disponibles au lieu d'aller voir les fichiers car si on a des bases innodb par exemple, il faut bien penser que tout est dans un/plusieurs fichiers au lieu d'un répertoire unique)
#!/bin/sh
#
# Script pour faire le backup des bases
# de données MySQL
# Exécuté par /etc/crontab
#
#
backup_dir=/mnt/backup-mysql
backup_dir_mysql=${backup_dir}/mysql
backup_tmp=${backup_dir}/tmp
backup_tmp_mysql=${backup_tmp}/mysql
# répertoire de backup monté ?
monte=`mount | grep backup-mysql | grep -v grep`
if [ "${monte}" != "" ]; then
mkdir -p ${backup_dir} && chmod 0700 ${backup_dir}
mkdir -p ${backup_dir_mysql} && chmod 0700 ${backup_dir_mysql}
mkdir -p ${backup_tmp} && chmod 0700 ${backup_tmp}
mkdir -p ${backup_tmp_mysql} && chmod 0700 ${backup_tmp_mysql}
date=`date -I`
host=`hostname -s`
# Détermine la liste des bases et les copie
for var in `find /var/lib/mysql/ -type d | grep -v "lost+found" | \
sed -e "s/\/var\/lib\/mysql\///"`; do
mysqldump --opt $var > ${backup_tmp_mysql}/mysql-$var-$date-$host.sql
done
# Création de l'archive Tar/gzip data et
# déplacement vers le répertoire des backups
tar czf ${backup_tmp}/mysql-$date-$host.tar.gz -C ${backup_tmp}/ mysql/
mv ${backup_tmp}/mysql-$date-$host.tar.gz ${backup_dir_mysql}/mysql-$host.tar.gz
# Efface les fichiers temporaires
rm -f ${backup_tmp}/mysql/*.sql
fi