xibo
(usa Ubuntu)
Enviado em 25/04/2012 - 10:43h
fiz o script e ta dando erro
./scriptbackup.sh: 77: Syntax error: end of file unexpected (expecting "fi")
o nome do arquivo onde esta o script é scriptbackup.sh
a pasta que quero fazer o Backup é a pasta /home/inspetoria
o Backup vai ser guardado na /home/Backup
o arquivo deve se chamar inspetoria.tar.gz
no crontab adicionei essa linha: 00 12 * * 3 /home/scriptbackup.sh
Script:
#!bin/bash
# Script para Backup.
# Funcionamento:
# O script procura por uma pasta "$PASTA_DESTINO", onde serão guardados os
#"tarballs" das pastas compactadas. Nessa pasta ele procura por um arquivo
# chamado "pastas.conf", onde estão armazenados os caminhos completos para
# as pastas a serem "backupeadas".
# Este arquivo tem o seguinte formato:
# /etc
# /var/cache/bind
# Com um caminho completo por linha.
# Para inserir no crontab:
# crontab -e <-- abre o crontab para edição;
# Lá no arquivo, insira a linha:
# 00 23 * * 4 /backup.sh
# que irá executar o programa "/backup.sh", toda(* *) quinta-feira(4) às
# 23 horas
.
# pasta onde serão guardados os "tarballs"
Backup=/home/Backup
# tempo(em numero de dias) que os arquivos ficarão guardados na pasta de backup
TEMPO_LIMITE=20
if [ ! -d $Backup ]; # testa se existe o diretorio "$PASTA_DESTINO"
then
mkdir $Backup #se não existir, cria ele...
echo -n ** "ATENÇÂO: Pasta de backup não existe. Data: " >> /var/log/messages
echo -n `date +%d-%m-%Y` >> /var/log/messages
echo " Pasta "$/home/Backup " criada." >> /var/log/messages
fi
if [ ! -e $Backup/pastas.conf ];
then
echo "** ERRO: arquivo de configuração " $Backup/"pastas.conf, não existe." >> /var/log/messages
echo "** Deve ser criado, com um nome completo de pasta por linha." >> /var/log/messages
exit 1
# pega as linhas do arquivo, uma em cada volta do loop.
while read LINHA
do
# pega o nome da pasta.
inspetoria=`basename $LINHA`
# pega o caminho da pasta.
/home=`dirname $LINHA`
# testa se existe o diretorio a ser copiado
if [ ! -d $/home/$inspetoria ];
then
echo -n "ERRO: diretório" $home/$inspetoria "não existente!" >> $inspetoria/erro.log
echo " Abortando..." >> $inspetoria/erro.log
exit 1
fi
# define nomen do arquivo.
ARQUIVO=$Backup-`date +%Y-%m-%d_%H-%M-%S`-$inspetoria.tar.gz
# testa se jah existe o arquivo da data atual, se existir ele cria um novo backup
# com o horario incluido no nome do arquivo
if [ -e $home/$Backup-`date +%Y-%m-%d`-$inspetoria.tar.gz ];
then
echo -n "ATENÇÂO: Já foi realizado um backup no dia:" >> $Backup/erro.log
echo -n `date +%d-%m-%Y` ",na pasta:" $Backup >> $Backup/erro.log
tar cpzf $/home/backup/$inspetoria $/home/$Backup > /dev/null 2> /dev/null
echo -n ". Backup realizado novamente no horário: " >> $Backup/erro.log
echo `date +%H:%M:%S` >> $Backup/erro.log
else
tar cpzf $/home/$Backup-`date +%Y-%m-%d`-$inspetoria.tar.gz $/home/$Backup > /dev/null 2> /dev/null
fi
# escreve no arquivo de log($PASTA_DESTINO/backups.log)
echo -n "*** Backup realizado da pasta " $Backup >> $Backup/backups.log
echo -n " no dia: "`date +%d-%m-%Y`", no horário: " >> $Backup/backups.log
echo -n `date +%H:%M:%S`", no host: " $inspetoria "***" >> $Backup/backups.log
echo "" >> $backup/backups.log
done < $Backup/pastas.conf
# guarda em $DELETADOS os nomes dos arquivos que não foram alterados há mais de $TEMPO_LIMITE dias e q contenham a extensao .tar.gz
DELETADOS=`find $Backup/ -atime +$20 | grep .tar.gz`
rm -f $DELETADOS
echo "Foram deletados os seguintes arquivos: " >> $Backup/removed.log
echo $DELETADOS >> $Backup/removed.log
Alguém pode me ajudar a descobrir o erro??