Mais um backup

Publicado por Carlos Eduardo Brock 01/10/2004

[ Hits: 5.726 ]

Download disparabackup.sh




Esse backup que eu faço onde trabalho, ele gera arquivos com o dia da semana no nome, com um arquivo por diretorios.

  



Esconder código-fonte

#!/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

Scripts recomendados

Pequeno sistema de backup (Rsync + SAMBA + Tar + FTP)

Apagando 2 linhas do fim de um arquivo

conssh.sh - Frontend para SSH via proxy HTTP

Editor de configurações para Tint2

mkzeowmp - zeo mount point para PZP (python, zope e plone)


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts