Mais um backup
Publicado por Carlos Eduardo Brock 01/10/2004
[ Hits: 6.043 ]
Esse backup que eu faço onde trabalho, ele gera arquivos com o dia da semana no nome, com um arquivo por diretorios.
#!/bin/bash
# se alguem notar alguma semelhanca com clipper, eh por que eh com isso que eu trabalho mesmo,
# entao nao liguem e deixem as pedras rolar.
# gosto de colocar a data para completar o nome do arquivo em uma variavel, por que se o backup se estender alem 23:59
# o arquivos vao ficar com o nome respectivo a data de movimentacao/atualizacao
# sei que os arquivos tgz|bz2 podem ficar com datas de criacao, mas isso eh o de menos.
xdata=`date +%a`
# Local a partir do raiz, para fazer os backups no servidor
backup="dados/backup"
# Local a partir do raiz onde estao os arquivos
fontes="fontes"
# Local para onde os arquivos devem ser copiados, pode ser uma nfs, ou pasta
hd="home/backup"
# Opcao de compactacao para o tar, poderia se -cjvf (compactacao maior) se nimguem estiver usando os arquivos para serem backupeados
TarCmd="-czvf"
# Sufixo para o tar, procure acompanhar ocomando, czvf = tgz ou tar.gz, cjvf = bz2 ou tar.bz2
TarSuf="tgz"
# vetor com Titulo da empresa, para exibicao somente.
empresa=("Empresa 1..."
"Empresa 2..."
"Empresa 3..."
)
# vetor com prefixo para o arquivo tar
nomes=("prefixo1"
"prefixo2"
"prefixo3"
)
# vetor com local e arquivos para backupear,
dir=("/$fontes/empresa1/*.prg"
"/$fontes/empresa2/{*.c,*.sh,Makefile}"
"/$fontes/empresa3/{*.prg,*.ch,*.mak,Makefile}"
)
# vetor com diretorios em que se deve tormar cuidado de renomear os arquivos para caixa baixa
# isso as vezes e necessario para diretorios alterados por programas do DOS, alguns editores/compiladores
# e o proprio interpretador de comandos tem o pessimo habito de gerar nomes de arquivos em caixa alta
dirren=("/$fontes/empresa1"
""
"/$fontes/empresa2"
)
# Isso nao ficou muito bonito eu sei, mas inda nao sei fazer de outra forma.
# Nao, nao. Nao ficou nada bonito.
# Ficou ORRIVEL mesmo, se vcs me vissem agora eu acho que ia enfiar a cabaca na terra como uma avestruz pra me esconder.
num="0 1 2"
for x in $num; do
echo ":: ${empresa[$x]}"
echo ":: ${empresa[$x]}" >> /$backup/log_$TarSuf_$xdata.log
# isso vai fazer a renomeacao dos arquivo quando for pedido no vetor dirren
cdir=${dirren[$x]}
if [ ! -z $cdir ]; then
old=`pwd`
cd ${dirren[$x]}
for file in *
do
mv $file `echo $file | tr '[:upper:]' '[:lower:]'` 2>/dev/null
done
cd $old
fi
ccomando="tar $TarCmd /$backup/${nomes[$x]}_$xdata.$TarSufi ${dir[$x]} >> /$backup/log_$TarSuf_$xdata.log 1>>/$backup/log_copia_$xdata.log 2>>/$backup/log_copia_$xdata.log"
echo "#!/bin/bash" > comando.sh
echo $ccomando >> comando.sh
chmod +x comando.sh
./comando.sh
rm comando.sh -rf
rm -rf -v /$hd/${nomes[$x]}_$xdata.$TarSuf >> /$backup/log_copia_$xdata.log
cp -v /$backup/${nomes[$x]}_$xdata.$TarSuf /$hd/ >> /$backup/log_copia_$xdata.log
done
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo ":: FIM DOS BACKUPS ::"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::" >> /$backup/log_copia_$xdata.log
echo ":: FIM DOS BACKUPS ::" >> /$backup/log_copia_$xdata.log
echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::" >> /$backup/log_copia_$xdata.log
Compilando o apache2.2 com php5 e mysql5.1 no slackware
Monitore vários servidores ao mesmo tempo com Apache + shellscript
Abilitando impressora no cups automatico
slackpigs - veja os pacotes que mais ocupam espaço no Slackware
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









