backup
Publicado por Perfil removido 29/09/2005
[ Hits: 62.654 ]
Script simples que faz backups de acordo com a frequência que o usuario quiser, pega a lista das pastas de um arquivo e deleta os ".tar.gz" mais velhos que "n" dias, com "n" definido pelo usuario.
P.S.: tem muita coisa que dá pra melhorar, mas sou novato em shell script e estou aprendendo.
#!/bin/bash # Script para Backup. # Funcionamento: # O script procura por uma pasta "$PASTA_DESTINO", onde serão guardados os #"tarballs" das pastas compactadas. Nessa pasta ele procura por um arquivo # chamado "pastas.conf", onde estão armazenados os caminhos completos para # as pastas a serem "backupeadas". # Este arquivo tem o seguinte formato: # /etc # /var/cache/bind # Com um caminho completo por linha. # Para inserir no crontab: # crontab -e <-- abre o crontab para edição; # Lá no arquivo, insira a linha: # 00 23 * * 4 /backup.sh # que irá executar o programa "/backup.sh", toda(* *) quinta-feira(4) às # 23 horas. # pasta onde serão guardados os "tarballs" PASTA_DESTINO=/backup # tempo(em numero de dias) que os arquivos ficarão guardados na pasta de backup TEMPO_LIMITE=28 if [ ! -d $PASTA_DESTINO ]; # testa se existe o diretorio "$PASTA_DESTINO" then mkdir $PASTA_DESTINO #se não existir, cria ele... echo -n ** "ATENÇÂO: Pasta de backup não existe. Data: " >> /var/log/messages echo -n `date +%d-%m-%Y` >> /var/log/messages echo " Pasta "$PASTA_DESTINO " criada." >> /var/log/messages fi if [ ! -e $PASTA_DESTINO/pastas.conf ]; then echo "** ERRO: arquivo de configuração " $PASTA_DESTINO/"pastas.conf, não existe." >> /var/log/messages echo "** Deve ser criado, com um nome completo de pasta por linha." >> /var/log/messages exit 1 fi # pega as linhas do arquivo, uma em cada volta do loop. while read LINHA do # pega o nome da pasta. PASTA_BACKUP=`basename $LINHA` # pega o caminho da pasta. CAMINHO_PASTA=`dirname $LINHA` # testa se existe o diretorio a ser copiado if [ ! -d $CAMINHO_PASTA/$PASTA_BACKUP ]; then echo -n "ERRO: diretório" $CAMINHO_PASTA/$PASTA_BACKUP "não existente!" >> $PASTA_DESTINO/erro.log echo " Abortando..." >> $PASTA_DESTINO/erro.log exit 1 fi # define nomen do arquivo. ARQUIVO=$PASTA_BACKUP-`date +%Y-%m-%d_%H-%M-%S`-$HOSTNAME.tar.gz # testa se jah existe o arquivo da data atual, se existir ele cria um novo backup # com o horario incluido no nome do arquivo if [ -e $PASTA_DESTINO/$PASTA_BACKUP-`date +%Y-%m-%d`-$HOSTNAME.tar.gz ]; then echo -n "ATENÇÂO: Já foi realizado um backup no dia:" >> $PASTA_DESTINO/erro.log echo -n `date +%d-%m-%Y` ",na pasta:" $PASTA_BACKUP >> $PASTA_DESTINO/erro.log tar cpzf $PASTA_DESTINO/$ARQUIVO $CAMINHO_PASTA/$PASTA_BACKUP > /dev/null 2> /dev/null echo -n ". Backup realizado novamente no horário: " >> $PASTA_DESTINO/erro.log echo `date +%H:%M:%S` >> $PASTA_DESTINO/erro.log else tar cpzf $PASTA_DESTINO/$PASTA_BACKUP-`date +%Y-%m-%d`-$HOSTNAME.tar.gz $CAMINHO_PASTA/$PASTA_BACKUP > /dev/null 2> /dev/null fi # escreve no arquivo de log($PASTA_DESTINO/backups.log) echo -n "*** Backup realizado da pasta " $PASTA_BACKUP >> $PASTA_DESTINO/backups.log echo -n " no dia: "`date +%d-%m-%Y`", no horário: " >> $PASTA_DESTINO/backups.log echo -n `date +%H:%M:%S`", no host: " $HOSTNAME "***" >> $PASTA_DESTINO/backups.log echo "" >> $PASTA_DESTINO/backups.log done < $PASTA_DESTINO/pastas.conf # guarda em $DELETADOS os nomes dos arquivos que não foram alterados há mais de $TEMPO_LIMITE dias e q contenham a extensao .tar.gz DELETADOS=`find $PASTA_DESTINO/ -ctime +$TEMPO_LIMITE | grep .tar.gz` rm -f $DELETADOS echo "Foram deletados os seguintes arquivos: " >> $PASTA_DESTINO/removed.log echo $DELETADOS >> $PASTA_DESTINO/removed.log
script tosco pra baixar imagens
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Não consigo cadastrar nenhuma conta online (4)
O que esta havendo com o mercado de ti? (7)
Hotspot Mikrotik nao carrega pagina de login. (0)