Mais um backup
Publicado por Carlos Eduardo Brock 01/10/2004
[ Hits: 5.734 ]
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
Script para atualizar o sistema
Reconexão automática para internet ADSL
Altera /etc/fstab colocando o parâmetro acl nas partições ext3.
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (2)
Enzo quer programar mas não faz código pra não bugar (12)
Erro de Montagem SSD Nvme (12)
WebScrapping através de screenshot devido a bloqueios de Shadow DOM (1)