#/bin/bash
_help(){
cat << fim
Autor:
Ricardo Brito do Nascimento
Email:
britodfbr[at]gmail.com
Descrição:
Este script realiza o backup via repozo
do plone versão3 ou superior;
pode ser utilizado para realizar
backups de versões anteriores
mas será necessário customização para
funcionar adequadamente.
Além do backup realiza controle de
retenção do backup, excluindo automaticamente
os arquivos antigos.
Variáveis de configuração:
DAYS - dias de retenção;
FILESTORAGEDIR - diretório que contém .fs;
BACKUPDIR - diretório que os backups
serão mantidos;
EXCEPTION[n] - diretórios ou arquivos
que terão validade ignorada;
Execução:
$0; ou
$0 -h | --help | ?
fim
}
########### Variavéis de configuração ########
DAYS=2
FILESTORAGEDIR=/opt/p335/ambienteProd/*/var/filestorage/
BACKUPDIR=/storage-bkp
EXCEPTION[0]=".snapshot"
EXCEPTION[1]="arquivosAnexos"
EXCEPTION[2]="none"
EXCEPTION[3]="none"
########### Versão de testes ################
#/bin/find /opt/p335/*/var/filestorage/ \
-type f -name "*.fs" -printf '%h %f\n'\
|while read a b; do A=/storage-bkp/; \
B=$(awk -F/ '{print $4}' <<< ${a}); \
C=${b%.fs}; mkdir -pv ${A}/${B}/${C}; \
/opt/p335/${B}/bin/repozo -BFvzf ${a}/${b} \
-r ${A}/${B}/${C}; done
#
#/bin/find /storage-bkp/ -type f \
-atime +2 |grep -v .snapshot|xargs rm -vf
########### Funções ################
_erro(){
cat << fim
opção inválida, consulte o help, com as opções --help ou, -h ou, ?.
fim
}
_repozoBackup(){
/bin/find $FILESTORAGEDIR -type f -name "*.fs" -printf '%h %f\n'|while read a b; do A=$BACKUPDIR; B=$(awk -F/ '{print $4"/"$5}' <<< ${a}); C=${b%.fs}; mkdir -pv ${A}/${B}/${C}; /opt/p335/${B}/bin/repozo -BFvzf ${a}/${b} -r ${A}/${B}/${C}; done
}
_removeOld(){
/bin/find $BACKUPDIR \( -ctime +${DAYS} -o -atime +${DAYS} -o -mtime +${DAYS} \)|grep -v ${EXCEPTION[0]}|grep -v ${EXCEPTION[1]}|grep -v ${EXCEPTION[2]}|grep -v ${EXCEPTION[3]} |xargs rm -vrf
}
_start(){
_repozoBackup
_removeOld
}
_stop(){
_erro;
}
_restart(){
_erro
}
_status(){
_erro
}
case $1 in
start) _erro;;
stop) _stop;;
status) _status;;
restart) _restart;;
-h|--help|?) _help;;
'') _start;;
*) _erro ;;
esac
Add a code snippet to your website: www.paste.org