ESte script lo puedes modificar a tu gusto y necesidades.
Código PHP:
Ver original!/bin/sh
#
# -*- ENCODING: UTF-8 -*-
#
NAME="VPS_Backup-Script" # Nombre script.
#Descripción: Script de backup de files y DBs del VPS
: ${VERSION:=0.1} # Versión script.
: $
{DATE:=$
(date +'%Y-%m-%d')} # Variable para Fecha. : $
{TIME:=$
(date +'%R')} # Variable para Hora. : ${WORK_DIR:=/home/backups/$DATE} # Directorio de trabajo actual.
: $
{LOG_FILE
:=/home
/backups
/$DATE/record
.log} # Archivo de log. : ${ADMIN1a:=admin@midominio.net} # Email de Administrador No.1
: ${ADMIN1b:=mi.correo@gmail.com} # Email de Administrador No.1
: ${ADMIN2a:=webmaster@midominio.net} # Email de Administrador No.2
: ${ADMIN2b:=email.webmaster@midominio.net} # Email de Administrador No.2
: ${LINE:="-----------------------------------------------------------------"}
: ${DB_PASS:=dbpasswordyeah} # Password de MySQL.
# Creando directorio donde se trabajará, si es que no existe.
if [ ! -d
"`dirname $LOG_FILE`" ] ; then
mkdir -p
"`dirname $LOG_FILE`"; fi
# Cambiando a directorio donde trabajaremos.
cd $WORK_DIR
# Copiando /ETC/ hacia directorio de trabajo actual.
cp -Rv /etc/ $WORK_DIR > $LOG_FILE
echo $LINE >> $LOG_FILE
# Creando carpeta para logs.
# Copiando LOGs.
cp
/var/log/apache2
/ $WORK_DIR/logs
/ -Rv
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/aptitud
* $WORK_DIR/logs
/ -v
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/auth
* $WORK_DIR/logs
/ -v
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/daemon
* $WORK_DIR/logs
/ -v
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/dmes
* $WORK_DIR/logs
/ -v
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/kern
* $WORK_DIR/logs
/ -v
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/mail* $WORK_DIR/logs
/ -v
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/message
* $WORK_DIR/logs
/ -v
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/mysql/ $WORK_DIR/logs
/ -Rv
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/mysql.* $WORK_DIR/logs
/ -v
>> $LOG_FILE && echo $LINE >> $LOG_FILEcp
/var/log/sys
* $WORK_DIR/logs
/ -v
>> $LOG_FILE && echo $LINE >> $LOG_FILE
# Creando carpeta para DBs.
# Exportando DBs.
mysqldump --opt -hlocalhost -uroot -p"$DB_PASS" misitio > "$WORK_DIR/dbs/misitio.sql"
mysqldump
--opt
-hlocalhost
-uroot
-p
"$DB_PASS" mysql > "$WORK_DIR/dbs/mysql.sql"mysqldump --opt -hlocalhost -uroot -p"$DB_PASS" blogdb > "$WORK_DIR/dbs/blogdb.sql"
mysqldump --opt -hlocalhost -uroot -p"$DB_PASS" pastebin > "$WORK_DIR/dbs/pastebin.sql"
# Saliendo un nivel más arriba (/home/backups/).
cd ..
# Comprimiendo directorio de trabajo actual.
#tar czvf "$DATE.tar.gz" "$DATE"
rar a $DATE.rar -hpPASSWORD $WORK_DIR >> $LOG_FILE && echo $LINE >> $LOG_FILE
# Preparando información para enviar por email.
echo "El archivo $DATE.rar tiene un tamaño de:" > data.info
du -bsh $DATE.rar >> data.info
echo $LINE >> data.info
cat $LOG_FILE >> data.info
tar czvf data.info.tar.gz data.info
# Eliminando directorio una vez comprimido.
rm -R "$WORK_DIR"
# Enviando emails a administradores.
mail -s
"[VPS] | Status de Backup." $ADMIN1a < data
.info
.tar
.gz
mail -s
"[VPS] | Status de Backup." $ADMIN1b < data
.info
.tar
.gz
mail -s
"[VPS] | Status de Backup." $ADMIN2a < data
.info
.tar
.gz
mail -s
"[VPS] | Status de Backup." $ADMIN2b < data
.info
.tar
.gz
# Haciendo copia por SSH hacia cuenta en otro servidor o hosting.
echo " #######################"
echo " ## BACKUP REALIZADO! ##"
echo " #######################"
# Fin del script.
Dale permisos.