Mais um backup
Publicado por Carlos Eduardo Brock 01/10/2004
[ Hits: 5.972 ]
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
Facilitando algumas tarefas no CentOS 7
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









