#!/bin/bash ############################################################################# # Script bkp.sh # # Forma de execução: # # $PATH/bkp.sh [USER] [HOST] [INCLUDE-FILE] [ABSOLUTE PATH SSH] & 2>&-# # # # Breve descrição: # # Este script efetua o backup dos diretórios existentes no arquivo # # [INCLUDE-FILE] para a o usuário e máquina especificado em [USER] # # e [HOST] respectivamente. # # Aceita-se ainda o parâmetro [ABSOLUTE PATH SSH]. Caso ele não seja especi-# # ficado assume-se que o arquivo seja "usr/bin/ssh" # # # # OBS: Este script usa autenticação por chaves públicas SSH # # # # by Edson Flavio de Souza edson@pop-pr.rnp.br # # versão 1.0 # ############################################################################# #set -x ###Usuário remoto que será usado para receber o backup USER=${1-popuser} ###Host remoto que será usado para receber o backup HOST=${2-maverick} ###Nome do arquivo remoto que será gerado o backup FILENAME=backup.$HOST.$(date +%d%m%Y).bkp ###Nome do arquivo onde fica a relação de diretórios a serem "backupeados" INCLUDE=${3:-include.txt} ###Local onde fica o binário do ssh SSH=${4:-/usr/bin/ssh} ###Local onde fica o binário do tar TAR=/bin/tar ###Parâmetros a serem usados para compactação com o tar (o "c" e o "f" são essenciais) ###Aqui estou usando o bzip opção "j" TARPARM=cjf ###Endereço para onde deve ser enviado e-mail's com erro EMAIL=root@localhot ### Efetuando o Backup $TAR $TARPARM $USER@$HOST:$FILENAME --rsh-command=$SSH -T $INCLUDE 2>&- if [ $? -ne 0 ]; then { mail -s "Erro no Backup da máquina $HOST em $(date +%d/%m/%Y)" $EMAIL exit 1 }; fi ### Removendo arquivos de backups antigos $SSH $USER@$HOST '(cd ~/backups/; DATA=`date --date="15 days ago" +%d%m%Y`; rm *.$DATA.bkp)'; if [ $? -ne 0 ]; then { mail -s "Erro remoção arq. ant. host $HOST em $(date +%d/%m/%Y)" $EMAIL exit 1 }; fi