#!/bin/bash -x
 
# mejoras a realizar:
#	- comprobar la existencia del directorio destino con 	[ -d ];
#	- utilizar /etc/mysql/debian.cnf para el usuario/password de mysql
 
# ubicaciones
path_backup_principal=/home/backups
path_backup=$path_backup_principal/d4
fecha=`date +%Y%m%d%H%M%S`
path_correo=/home/vmail/
path_mysql_trans=/var/log/mysql/
path_virtual_apache=/var/www/virtuals
niveles_virtuales=1
 
 
# backup /etc
tar zcpf $path_backup/etc.tar.gz /etc/*
 
# backup /home (no el vmail, no el backups)
for homes in `find /home/* -maxdepth 0 | grep -v ^$path_correo* | grep -v ^$path_backup_principal*`
do
	tar zcpf $path_backup/home/`echo "$homes"|sed "s:.*/::"`.tar.gz $homes
done
 
# virtuales apache
for virtuales in `find $path_virtual_apache -maxdepth $niveles_virtuales | sed "s:^\.::"`
do
	tar zcpf $path_backup/apache/`echo "$virtuales"|sed "s:.*/::"`.tar.gz $path_virtual_apache$virtuales
done
 
# backup buzones correo
cd $path_correo
#	el find con * está limitado a 1024 dominios!!
#	for buzon in `find * -maxdepth 1 -iname *@*`
for buzon in `find . -maxdepth 2 -iname *@* | sed "s:^\.::" `
do
	tar zcpf $path_backup/mail/`echo "$buzon"| sed "s:.*/::"`.tar.gz $path_correo$buzon
done
 
# backup BBDD mysql
for db in `mysql -u root -ptoor -e "show databases;" | grep -v ^Database$`
do
#	mysqldump -u root -ptoor $db > $path_backup/$db.sql
	mysqldump -u root -ptoor $db | gzip -fc > $path_backup/sql/$db.sql.gz
done
tar zcf $path_backup/mysql.logs.tar.gz $path_mysql_trans
 
# Listado soft instalado
dpkg -l > $path_backup/software.installed.txt
  • info/cursos/lpic2/scripts/backup.txt
  • Darrera modificació: 15/08/2018 04:06
  • per mate