Exemplo de Script de Backup

#!/bin/bash

 

# Variaveis
servidor=`hostname`
data=`date +%d-%m-%Y-%Hh%M`
tgz=`ls /home/gustavo/`
dirbase=”/home/gustavo/backup”
dirbase2=”/home/gustavo/.restauraR”
diriptable=”/etc/iptables/”
dirinterfaces=”/etc/network/”
dirrotas=”/etc/rotas/”
dircacti=”/etc/snmp/”
dircacti2=”/etc/default/”
diretc=”/etc/”
dirpostfix=”/etc/postfix/”
diriptable2=”/etc/rsyslog.d/”
dirsshh=”/etc/ssh/”
regras=”/etc/iptables/regras.sh”
interfaces=”/etc/network/interfaces”
rotas=”/etc/rotas/rotas.sh”
cacti=”/etc/snmp/snmpd.conf”
cacti2=”/etc/default/snmpd”
syslog=”/etc/rsyslog.conf”
postfix=”/etc/postfix/main.cf”
iptable2=”/etc/rsyslog.d/iptables.conf”
sshh=”/etc/ssh/sshd_config”
lista=”/etc/network/interfaces /etc/rotas/ /etc/iptables/ /etc/snmp/ /etc/default/ /etc/rsyslog.conf /etc/rsyslog.d/ /etc/init.d/firewall /etc/ssh/ /root/msg /etc/postfix/”

 

# descompacta o arquivo para comparacao
cd $dirbase2
unzip -P C4%iop0Z# $dirbase2/.regras-*.zip
unzip -P C4%iop0Z# $dirbase2/.interfaces-*.zip
unzip -P C4%iop0Z# $dirbase2/.rotas-*.zip
unzip -P C4%iop0Z# $dirbase2/.cacti-*.zip
unzip -P C4%iop0Z# $dirbase2/.cacti2-*.zip
unzip -P C4%iop0Z# $dirbase2/.syslog-*.zip
unzip -P C4%iop0Z# $dirbase2/.iptables-*.zip
unzip -P C4%iop0Z# $dirbase2/.ssh-*.zip
rm .regras-*.zip .interfaces-*.zip .rotas-*.zip .cacti-*.zip .cacti2-*.zip .syslog-*.zip .iptables-*.zip .ssh-*.zip

 

# copia o arquivo atual para comparacao futura
cd $diriptable
zip -r9 -P senha $dirbase2/.regras-$data.zip regras.sh
cd $dirinterfaces
zip -r9 -P senha $dirbase2/.interfaces-$data.zip interfaces
cd $dirrotas
zip -r9 -P senha $dirbase2/.rotas-$data.zip rotas.sh
cd $dircacti
zip -r9 -P senha $dirbase2/.cacti-$data.zip snmpd.conf
cd $dircacti2
zip -r9 -P senha $dirbase2/.cacti2-$data.zip snmpd
cd $diretc
zip -r9 -P senha $dirbase2/.syslog-$data.zip rsyslog.conf
cd $diriptable2
zip -r9 -P senha $dirbase2/.iptables-$data.zip iptables.conf
cd $dirsshh
zip -r9 -P senha $dirbase2/.ssh-$data.zip sshd_config

 

# Apaga o arquivo anterior
rm -Rf $dirbase/*

 

# Compara os arquivos
echo “Diferencas no arquivo de regras:” > $dirbase/mudancas.log
diff $regras $dirbase2/regras.sh >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de interfaces:” >> $dirbase/mudancas.log
diff $interfaces $dirbase2/interfaces >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de rotas:” >> $dirbase/mudancas.log
diff $rotas $dirbase2/rotas.sh >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de configuracao do cacti (primeiro):” >> $dirbase/mudancas.log
diff $cacti $dirbase2/snmpd.conf >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de configuracao do cacti (segundo):” >> $dirbase/mudancas.log
diff $cacti2 $dirbase2/snmpd >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de syslog:” >> $dirbase/mudancas.log
diff $syslog $dirbase2/rsyslog.conf >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de iptables:” >> $dirbase/mudancas.log
diff $iptable2 $dirbase2/iptables.conf >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de ssh:” >> $dirbase/mudancas.log
diff $sshh $dirbase2/sshd_config >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log

 

# conta as linhas de arquivo
echo “Linhas do arquivo de regras anterior:” >> $dirbase/mudancas.log
cat $dirbase2/regras.sh | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de regras atual:” >> $dirbase/mudancas.log
cat $regras | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de interfaces anterior:” >> $dirbase/mudancas.log
cat $dirbase2/interfaces | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de interfaces atual:” >> $dirbase/mudancas.log
cat $interfaces | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de rotas anterior:” >> $dirbase/mudancas.log
cat $dirbase2/rotas.sh | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de rotas atual:” >> $dirbase/mudancas.log
cat $rotas | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de cacti (primeiro) anterior:” >> $dirbase/mudancas.log
cat $dirbase2/snmpd.conf | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de cacti (primeiro) atual:” >> $dirbase/mudancas.log
cat $cacti | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de cacti (segundo) anterior:” >> $dirbase/mudancas.log
cat $dirbase2/snmpd | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de cacti (segundo) atual:” >> $dirbase/mudancas.log
cat $cacti2 | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de syslog anterior:” >> $dirbase/mudancas.log
cat $dirbase2/rsyslog.conf | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de syslog atual:” >> $dirbase/mudancas.log
cat $syslog | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de iptables anterior:” >> $dirbase/mudancas.log
cat $dirbase2/iptables.conf | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de iptables atual:” >> $dirbase/mudancas.log
cat $iptable2 | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de ssh anterior:” >> $dirbase/mudancas.log
cat $dirbase2/sshd_config | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de ssh atual:” >> $dirbase/mudancas.log
cat $sshh | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log

 

# Apaga os arquivos comparados
cd $dirbase2
rm *.sh *.conf interfaces sshd_config snmpd

 

# Compacta os arquivos de configuracao no diretorio /home/gustavo
tar -czf $dirbase/$servidor-$data.tgz $lista -p -s

 

# Criptografa o arquivo
zip -r9 -P senha $dirbase/$servidor-$data.zip $dirbase/*.tgz

 

# Envia o arquivo para o administrador
cat $dirbase/mudancas.log | mutt -s “Backup FWSede” -a $dirbase/*.zip usuario@sua_organização -c chefe@sua_organização -b usuario2@sua_organização
rm $dirbase/mudancas.log

 

# Chama a funcao limpa
/sbin/limpa.sh

Leave a Reply

Your email address will not be published. Required fields are marked *