<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://rjgs.com.br/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Backup_espelhado.sh</id>
	<title>Backup espelhado.sh - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://rjgs.com.br/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Backup_espelhado.sh"/>
	<link rel="alternate" type="text/html" href="https://rjgs.com.br/mediawiki/index.php?title=Backup_espelhado.sh&amp;action=history"/>
	<updated>2026-05-12T22:00:18Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://rjgs.com.br/mediawiki/index.php?title=Backup_espelhado.sh&amp;diff=599&amp;oldid=prev</id>
		<title>Rjgs: Criou página com &#039;Backup feito com o rsync para espelhar a pasta destino com a origem.    &#039;&#039;&#039;CUIDADO:&#039;&#039;&#039; Esse script pode apagar arquivos e diretórios essenciais no destino  Crie o arquivo   vim backup_espelhado.sh  Cole o conteúdo abaixo:  &lt;pre&gt; #!/bin/bash  ######################################################################### # NOME...: Robison Joel # DATA...: 28/04/2022 | Revisão: 16/02/2025 # ASSUNTO: Backup espelhado com rsync ##################################################...&#039;</title>
		<link rel="alternate" type="text/html" href="https://rjgs.com.br/mediawiki/index.php?title=Backup_espelhado.sh&amp;diff=599&amp;oldid=prev"/>
		<updated>2026-02-14T14:42:40Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;Backup feito com o rsync para espelhar a pasta destino com a origem.    &amp;#039;&amp;#039;&amp;#039;CUIDADO:&amp;#039;&amp;#039;&amp;#039; Esse script pode apagar arquivos e diretórios essenciais no destino  Crie o arquivo   vim backup_espelhado.sh  Cole o conteúdo abaixo:  &amp;lt;pre&amp;gt; #!/bin/bash  ######################################################################### # NOME...: Robison Joel # DATA...: 28/04/2022 | Revisão: 16/02/2025 # ASSUNTO: Backup espelhado com rsync ##################################################...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Backup feito com o rsync para espelhar a pasta destino com a origem. &lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;CUIDADO:&amp;#039;&amp;#039;&amp;#039; Esse script pode apagar arquivos e diretórios essenciais no destino&lt;br /&gt;
&lt;br /&gt;
Crie o arquivo &lt;br /&gt;
 vim backup_espelhado.sh&lt;br /&gt;
&lt;br /&gt;
Cole o conteúdo abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
#########################################################################&lt;br /&gt;
# NOME...: Robison Joel&lt;br /&gt;
# DATA...: 28/04/2022 | Revisão: 16/02/2025&lt;br /&gt;
# ASSUNTO: Backup espelhado com rsync&lt;br /&gt;
#########################################################################&lt;br /&gt;
&lt;br /&gt;
set -euo pipefail&lt;br /&gt;
&lt;br /&gt;
### VARIÁVEIS ###&lt;br /&gt;
LOG=&amp;quot;bckp_log_$(date +%Y-%m-%d_%H-%M-%S).log&amp;quot;&lt;br /&gt;
RSYNC_OPTS=&amp;quot;-avh --delete --progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
### ENTRADA DE DADOS ###&lt;br /&gt;
read -rp &amp;quot;### Insira a pasta de origem: &amp;quot; DE_ONDE&lt;br /&gt;
read -rp &amp;quot;### Insira a pasta de destino: &amp;quot; PRA_ONDE&lt;br /&gt;
&lt;br /&gt;
### VALIDAÇÕES ###&lt;br /&gt;
if [[ ! -d &amp;quot;$DE_ONDE&amp;quot; ]]; then&lt;br /&gt;
  echo &amp;quot;ERRO: Diretório de origem não existe.&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [[ ! -d &amp;quot;$PRA_ONDE&amp;quot; ]]; then&lt;br /&gt;
  echo &amp;quot;ERRO: Diretório de destino não existe.&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;#################################################&amp;quot; | tee &amp;quot;$LOG&amp;quot;&lt;br /&gt;
echo &amp;quot;### Iniciando o backup (DRY-RUN)...&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
echo &amp;quot;#################################################&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
&lt;br /&gt;
### DRY-RUN ###&lt;br /&gt;
rsync $RSYNC_OPTS --dry-run &amp;quot;$DE_ONDE&amp;quot;/ &amp;quot;$PRA_ONDE&amp;quot;/ | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
read -rp &amp;quot;Deseja executar o backup real? (s/N): &amp;quot; CONFIRMA&lt;br /&gt;
[[ &amp;quot;$CONFIRMA&amp;quot; =~ ^[Ss]$ ]] || { echo &amp;quot;Backup cancelado.&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;; exit 0; }&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;#################################################&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
echo &amp;quot;### Executando backup real...&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
echo &amp;quot;#################################################&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
&lt;br /&gt;
### BACKUP REAL ###&lt;br /&gt;
rsync $RSYNC_OPTS &amp;quot;$DE_ONDE&amp;quot;/ &amp;quot;$PRA_ONDE&amp;quot;/ | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;#################################################&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
echo &amp;quot;### Verificação de tamanhos&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
&lt;br /&gt;
### TAMANHOS (em bytes, para comparação correta)&lt;br /&gt;
TAMANHO_ORIGEM=$(du -sb &amp;quot;$DE_ONDE&amp;quot; | awk &amp;#039;{print $1}&amp;#039;)&lt;br /&gt;
TAMANHO_DESTINO=$(du -sb &amp;quot;$PRA_ONDE&amp;quot; | awk &amp;#039;{print $1}&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Origem : $(du -sh &amp;quot;$DE_ONDE&amp;quot; | awk &amp;#039;{print $1}&amp;#039;)&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
echo &amp;quot;Destino: $(du -sh &amp;quot;$PRA_ONDE&amp;quot; | awk &amp;#039;{print $1}&amp;#039;)&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DIFERENCA=$(( TAMANHO_ORIGEM - TAMANHO_DESTINO ))&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Diferença em bytes: $DIFERENCA&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [[ &amp;quot;$DIFERENCA&amp;quot; -eq 0 ]]; then&lt;br /&gt;
  echo &amp;quot;STATUS: Backup consistente ✔&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;STATUS: Atenção — tamanhos divergentes ⚠&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Backup finalizado em $(date)&amp;quot; | tee -a &amp;quot;$LOG&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após salvar e sair, conceda permissões para o arquivo:&lt;br /&gt;
 sudo chmod +x backup_espelhado.sh&lt;br /&gt;
&lt;br /&gt;
Para executar:&lt;br /&gt;
 ./backup_espelhado.sh&lt;/div&gt;</summary>
		<author><name>Rjgs</name></author>
	</entry>
</feed>