você está aqui: Home  → Arquivo de Mensagens

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


Veja a relação completa dos artigos de Anderson Angelote