Olá,
Bom eu faço backup de alguns servidores Debian e Ubuntu, em todos eles uso um script que automatiza tudo. Para usá-lo, eu agendo no Cron como root.
Antes, basta você habilitar a conta de root, digitando:
$ sudo su
# passwd
E então cole este script num arquivo, backup.sh, por exemplo, agende ele para ser executado no cron digitando "crontab -e" como root, lá edite conforme indicado pelo n3t0, e no comando, coloque o caminho para o script.
O script abaixo grava em DVD o backup e ejeta a gaveta após o término, checa o md5sum para verificar se o backup foi realizado com sucesso, é um script bem completo. Eu também uso uma versão que envia email dizendo se o backup foi bem sucedido ou não, mas por hora acho que este já pode ajudar, não se esqueça de revisar todas as variáveis para ver se correspondem com o que você precisa.
TMP_DIR= Diretório para armazenar arquivos temporários como os md5sum
BACKUP_DIR= Diretório a ser feito backup
BACKUP_DIR_GZ= Diretório onde ficará o arquivo .tar.gz do backup
BACKUP_FILE_GZ= Nome do arquivo de backup .tar.gz
ISO= Nome da imagem a ser gerada
DVD_DRIVE= Drive de DVD
MOUNT_POINT= Ponto de montagem do DVD
<------------- Início da cópia do script ---------------------->
# !/bin/bash -v
# Setando as variáveis necessárias:
TMP_DIR=/tmp/backup
BACKUP_DIR=/home/usuario
BACKUP_DIR_GZ=/home/backup
BACKUP_FILE_GZ=bkp-meus_arquivos.tar.gz
ISO=backup.iso
MD5_FILE=md5sum_backup
MD5_FILE_CD=md5sum_CD
DVD_DRIVE=/dev/hdb
MOUNT_POINT=/media/cdrom
# Variáveis de comando
MKISOFS=`which mkisofs`
GROWISOFS=`which growisofs`
RM=`which rm`
MKDIR=`which mkdir`
EJECT=`which eject`
MD5SUM=`which md5sum`
DVD_RW_FORMAT=`which dvd+rw-format`
MOUNT=`which mount`
UMOUNT=`which umount`
DIFF=`which diff`
ECHO=`which echo`
DATE=`which date`
CP=`which cp`
CUT=`which cut`
TAR=`which tar`
# Verificando se já existe uma imagem de backup e arquivos de MD5, se existir, apagar:
$ECHO "Removendo arquivos temporarios "
if [ -f $TMP_DIR/$ISO ]; then
$RM -f $TMP_DIR/$ISO
fi
if [ -f $TMP_DIR/$MD5_FILE ]; then
$RM -f $TMP_DIR/$MD5_FILE
fi
if [ -f $TMP_DIR/$MD5_FILE_CD ]; then
$RM -f $TMP_DIR/$MD5_FILE_CD
fi
# Removendo pastas e arquivos, e criando ambiente de backup:
if [ -f $BACKUP_DIR_GZ ]; then
$RM -fr $BACKUP_DIR_GZ
if [ -f $BACKUP_DIR_GZ ]; then
$MKDIR $BACKUP_DIR_GZ
fi
$ECHO "Criando arquivos de backup (*.tar.gz)... "
# Criando o tar.gz dos arquivos:
$TAR -zcvf $BACKUP_DIR_GZ/$BACKUP_FILE_GZ $BACKUP_DIR
# Obtendo o MD5SUM do arquivo:
$ECHO "Criando MD5Sum para verificacao de integridade... "
$MD5SUM $BACKUP_DIR_GZ/$BACKUP_FILE_GZ | $CUT -f1 -d ' ' > $TMP_DIR/$MD5_FILE
# Gerando a imagem para realizar o backup:
$ECHO "Criando a imagem de CD (.iso)... "
$MKISOFS -o $TMP_DIR/$ISO -joliet-long -JrT $BACKUP_DIR_GZ/$BACKUP_FILE_GZ
# Formatando o DVD:
#$ECHO "Formatando o DVD-RW... "
#$DVD_RW_FORMAT -force $DVD_DRIVE
# Gravando a imagem no DVD:
#$ECHO "Gravando o CD... "
#$GROWISOFS -speed=2 -dvd-compat -Z $DVD_DRIVE=$TMP_DIR/$ISO
# Montando o DVD gravado para verificação:
#$MOUNT -o ro $DVD_DRIVE $MOUNT_POINT
# Verificando os MD5SUMs:
#$ECHO "Verificando a Integridade dos arquivos... "
#$MD5SUM $MOUNT_POINT/$BACKUP_FILE_GZ | $CUT -f1 -d ' ' > $TMP_DIR/$MD5_FILE_CD
#if $DIFF $TMP_DIR/$MD5_FILE $TMP_DIR/$MD5_FILE_CD; then
$ECHO "O backup foi realizado com sucesso em " `$DATE`
#else
$ECHO "O backup dos emails dos usuarios não foi realizado com sucesso !!! "
$ECHO "Favor verificar imediatamente !!! "
#fi
# Desmontando:
#$UMOUNT $MOUNT_POINT
# Ejetando:
#$EJECT $DVD_DRIVE
# Finalizando:
exit 0
<-------------- Término da cópia do script -------------------->
Tenho uma meia dúzia de modelos diferentes de scripts de backup, se esta não for o suficiente, tenho outros modelos.
Abraços