Backup de N diretórios e arquivos
Publicado por Thiago Diniz da Silveira 07/07/2009
[ Hits: 7.540 ]
Apenas mais um script de backup, cada comando está bem explicado, será bom para o aprendizado.
#!/bin/bash #==================================# # Script para realizar backup # #==================================# # IMPORTANTE: # Para o funcionamento deste script é necessário gerar uma chave do ssh # e enviar a chave pub para o servidor destino. # Isso é necessário para os comandos scp e ssh poderem ser emitidos # sem uma requisição de senha. # para realizar isso pode ser utilizado esses dois comandos (tem que executar # os comandos com o usuário que for executar o script): # O primeiro serve para gerar a chave rsa: # 1 - $ ssh-keygen -t rsa # O segundo envia a chave rsa para o servidor destino # 2 - $ ssh-copy-id -i ~/.ssh/id_rsa.pub login@servidor # Comandos tirado do site http://www.guiadohardware.net/tutoriais/dominando-ssh/pagina5.html # se quiser conhecer um pouco mais sobre ssh recomendo. # Configuração do servidor 1 (origem) # Diretório onde ficara o backup temporariamente DIR_ORIG="/tmp/" # Diretório dos arquivos a receberem backups separados por espaço # podem ter quantos quiser BKP=("/home/$USER/" "/home/FTP/") # Configuração do servidor 2 (destino) # IP ou Name do servidor que receberá o backup HOST="192.168.1.2" # Usuário a ser utilizado no envio dos backups USUARIO="root" # Diretório onde irá ser enviado os backups DIR_DEST="/tmp/" # Configurações gerais # Nome do arquivo compactado ARQ="bkp.tgz" # Criar Log? (default = 1) # 1 = sim, 0 = não LOG="1" if [ $LOG -eq 1 ]; then # Nome do arquivo de log e diretório a ser gravado ARQ_LOG="${DIR_ORIG}logBKP" fi # Descompactar arquivo no servidor a ser enviado? (default = 1) # 1 = sim, 0 = não DESC_BKP="0" if [ $DESC_BKP -eq "1" ]; then # Diretório onde irá ser descompactado os backups # OBS: quando descompactar o backup, o diretório de cada arquivo # é recriado, ou seja, se DIR_UNZIP for /backup e você fez backup do # /home/$USER/ criará um diretório chamado /backup/home/$USER # dentro do servidor destino. (se tiver permissão claro) DIR_UNZIP="/" fi # Inicio do script if [ $LOG -eq 1 ]; then echo "Backup Execução - $(date +%d/%m/%Y)" >> $ARQ_LOG echo "Horaario da Inicialização do Backup - $(date +%k:%M:%S)" >> $ARQ_LOG echo >> $ARQ_LOG echo "Compactando arquivos" >> $ARQ_LOG # Nesta parte a variável bkp recebera todos os valores dentro do array BKP # e serão adicionados a váriavel tmp for bkp in ${BKP[@]}; do tmp="$tmp $bkp"; done # Compacta os arquivos e diretórios mantendo as permissões tar -czpvf ${DIR_ORIG}${ARQ} ${tmp} >> $ARQ_LOG echo >> $ARQ_LOG echo "Transferindo arquivo para o servidor: ${HOST}" >> $ARQ_LOG; echo "Utilizando o user: ${USER}" >> $ARQ_LOG; echo "Para o diretório: ${DIR_DEST}" >> $ARQ_LOG; # Transfere o backup para o servidor destino scp ${DIR_ORIG}${ARQ} $thiagods.ti@${HOST}:${DIR_DEST} >> $ARQ_LOG; echo >> $ARQ_LOG; if [ $DESC_BKP -eq 1 ]; then echo "Descompactando arquivo no servidor" >> $ARQ_LOG; # Descompacta o backup no servidor destino ssh $thiagods.ti@${HOST} tar -xzpvf ${DIR_DEST}${ARQ} -C ${DIR_UNZIP} >> $ARQ_LOG; echo >> $ARQ_LOG; fi echo "Horário da Finalização do Backup - $(date +%k:%M:%S)" >> $ARQ_LOG echo "=======================================================================" >> $ARQ_LOG echo >> $ARQ_LOG # Caso não queira log, porém não é recomendável else for bkp in ${BKP[@]}; do tmp="$tmp $bkp"; done tar -czpvf ${DIR_ORIG}${ARQ} ${tmp} scp ${DIR_ORIG}${ARQ} $thiagods.ti@${HOST}:${DIR_DEST} ssh $thiagods.ti@${HOST} tar -xzpvf ${DIR_DEST}${ARQ} -C ${DIR_UNZIP} fi
Instalar emuladores no Fedora 22
Instalar splashtop em um pendrive
TxzSync 1.0 - Fazer Backup dos Pacotes Baixados pelo Slackpkg
Script instalador do obmenu-generator e configuração do openbox
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Criar entrada no GRUB para uma ISO Linux (0)
Problema em instalar o PySide6 no Ubuntu 24.04 [RESOLVIDO] (3)
Compartilhando uma ideia sobre computação quantica (16)