Backup de arquivos por FTP

Colaboração: Anderson Angelote

Este script realiza o backup de um servidor acessando-o por FTP. Para este script funcionar é necessário a instalação do pacote curlftpfs.

#!/bin/bash
#
# NOTA DE LICENCA                                                             #
#                                                                             #
# Este trabalho esta licenciado sob uma Licenca Creative Commons Atribuicao-  #
# Compartilhamento pela mesma Licenca 3.0 Brasil. Para ver uma copia desta    #
# licenca, visite http://creativecommons.org/licenses/by/3.0/br/              #
# ou envie uma carta para Creative Commons, 171 Second Street, Suite 300,     #
# San Francisco, California 94105, USA.                                       #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Criado por:                                                                      #
#       Anderson Angelote | anderson@angelote.com.br em 28/12/2011            #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Funcao: Script para realizar o backup de um servidor acessando por FTP      #
#                                                                             #
# NOTA:   Para este script funcionar é necessário a instalação do pacote      #                                        #
#         curlftpfs                                                           #
#
#
# Script para backup dos arquivos do servidor KACE
#
#

USER="kbftp"  # Usuário de conexão
PASS="getbxf"  #Senha de conexão
IP="10.0.0.194"  # IP do servidor
DESTINO="/srv/backup/pc/kace"  # Local onde será mantido o backup
ORIGEM="/mnt"     # Local de armazenamento do backup no servidor
DIAS=29       #Dias que o backup será mantido



BLUE="echo -n -e \033[01;34m"
CLOSE="\033[m"

SUPER=$(whoami)

MKDIR=$(which mkdir)
GREP=$(which grep)
FIND=$(which find)
RM=$(which rm)
ZIP=$(which gzip)
FTP=$(which curlftpfs)
RSYNC="rsync -CpavRzuptP "
RSYNC="rsync -Cpazpt "

DATE=`date +%Y-%m-%d`
DATE_HOJE=`date +%d`
RODA=$(date +%s -d ${DATE})


# Verificando  o superusuario executara script
if [ "${SUPER}" != root ]; then
       echo
       echo "============================================================"
       echo " Este programa precisa ser executado com superusuario (root)"
       echo " Abortando..."
       echo "============================================================"
       echo
       exit 1
fi


${BLUE} "Montando conexao com o servidor KACE ..........." ${CLOSE}
${FTP} ftp://${IP}  /mnt   -o user="${USER}:${PASS}"
if [ $? -eq 0 ]; then
       echo -e " \\033[1;32m[ OK ]\\033[0;39m"
else
       echo -e " \\033[1;31m[ FALHOU ]\\033[0;39m"
       umount /mnt
       exit 1
fi

${BLUE} "Iniciando a cópia dos arquivos do KACE ........." ${CLOSE}
${RSYNC} ${ORIGEM}/* ${DESTINO}
if [ $? -eq 0 ]; then
  echo "${DATE_HOJE}   full  ${RODA} ${RODA} 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" >> ${DESTINO}/backups
       echo -e " \\033[1;32m[ OK ]\\033[0;39m"
else
       echo -e " \\033[1;31m[ FALHOU ]\\033[0;39m"
       umount /mnt
       exit 1
fi

sleep 5
umount /mnt


${BLUE} "Deleção dos backups com mais de 30 dias........." ${CLOSE}
find ${DESTINO} -ctime +${DIAS}  -exec rm -fr {} \;

if [ $? -eq 0 ]; then
       echo -e " \\033[1;32m[ OK ]\\033[0;39m"
else
       echo -e " \\033[1;31m[ FALHOU ]\\033[0;39m"

       exit 1
fi

[ Retornar ao Índice ]