Apresento o "BackRE", um script de backup que busca os arquivos em outros servidores e realiza a compactação dos arquivos em um outro equipamento com uma pasta compartilhada. Além de enviar notificações para o administrador, realiza tentativas de montar as unidades remotas caso haja algum problema.
#!/bin/bash
# Script de backup virtual - BackRE
# Por: Cláudio Mercaldo
# Compacta e copia para equipamento (xxx.xxx.xxx.xxx) backup virtual
#
# Função básica:
# < c o m a n d o > < d i r. m o n t a d o > < data da cópia > <ext> <dir.local>
# rar a -r -y -ow -m3 /opt/nt/nomedoarquivo-'date +%d%m%y'.rar /arquivos/*
#
clear
#
# PROCEDURES
#
# Desmontar todas as unidades montadas anteriormente.
DMOUNT ()
{
echo "Desmontando Unidades Remotas"
smbumount /opt/pdc
smbumount /opt/sistema
smbumount /opt/dados
echo "Aguarde....."
}
# Montar as unidades para backup. Você pode trocar o nome do equipamento pelo ip correspondente.
MONTAR ()
{
echo "Montando Unidades Remotas"
mount -t smbfs -o username=root,password=senha //bkpremoto/zbackup$ /opt/pdc
TESTAR
mount -t smbfs -o username=root,password=senha //server3/dados /opt/dados
TESTAR
mount -t cifs -o username=usuário,passwd=senha //server2/sistema /opt/sistema
TESTAR
}
# Enviar email para o administrador – Não esqueça de configurar seu MTA.
EMAIL ()
{
more mensagem.txt | mail -s "[Agente BackRE] – Cópia Concluída em $(date +%d/%m/%Y)" adminstrador@dominio.com.br
}
# Verifica se as unidades foram montadas corretamente.
# Caso as unidades não sejam montadas corretamente, tentar novamente!!
TESTAR ()
{
if [ $? -ne 0 ]; then
{
echo "Erro ao Tentar Montar a Unidade!"
echo
echo "AGUARDE, Tentando Montar a Unidade Novamente"
MONTAR
}; fi
}
# EXECUÇÃO DO SCRIPT
#
DMOUNT
#
MONTAR
#
#Iniciar a compactação e cópia para o equipamento backup virtual na pasta compartilhada (bkpvirtual$).
#
# PDC
#
cd /arquivos/
rar a -r -y -ow -m3 /opt/pdc/bkpARQUIVOS-`date +%d%m%y`.rar /arquivos/*
#
# SISTEMA
#
cd /opt/sistema/
rar a -r -y -ow -m3 /opt/sistema/bkpSISTEMA-`date +%d%m%y`.rar /opt/sistema/*
#
# DADOS
#
rar a -r -y -ow -m3 /opt/dados/bkpDADOS-`date +%d%m%y`.rar /opt/dados/*
#
#
DMOUNT
#
# Envia Notificação do Backup por email.
EMAIL
#
[5] Comentário enviado por aprendiz_ce em 27/09/2006 - 21:45h
Olá Claudio, fiz exatamente isso!
Em "dc_relay_domains" coloquei "smtp.mail.yahoo.com.br" e depois mudei para "mail.yahoo.com.br", mas nenhuma das duas formas deu certo. O que é que pode estar dando errado? Além do acesso a internet tenho que ter mais outro serviço configurado para o envio de emais externo?
Muito obrigado pela sua atenção e aguardo retorno.
Ps. E como ficar a questão da autenticação em um servidor SMTP externo?
Vc deve testar as variações do yahoo, isso levando em consideração que vc queira enviar a mensagem para "mardoniocavalcante@yahoo.com.br". Não podemos esquecer no entanto que o YAHOO tem configurações especiais. Se não funcionar, sugiro mandar para outra conta para fazer um teste, sempre lembrando de alterar a segunda linha (mail.yahoo.com.br) para o endereço que vc tentará enviar o email. Onde esta IPLOCAL, favor trocar pelo IPLOCAL do seu equipamento.
# The following lines are desirable for IPv6 capable hosts
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Vc deve testar as variações do yahoo, isso levando em consideração que vc queira enviar a mensagem para "mardoniocavalcante@yahoo.com.br". Não podemos esquecer no entanto que o YAHOO tem configurações especiais. Se não funcionar, sugiro mandar para outra conta para fazer um teste, sempre lembrando de alterar a segunda linha (mail.yahoo.com.br) para o endereço que vc tentará enviar o email. Onde esta IPLOCAL, favor trocar pelo IPLOCAL do seu equipamento.
[12] Comentário enviado por aprendiz_ce em 02/10/2006 - 22:21h
Olá Cláudio,
Reinstalei o sistema prestando bastante atenção nas suas observações e deu tudo certinho, mas somente pra entrega de mensagens LOCAIS. Como faço agora pra enviar mensagens pra fora com no caso do "yahoo", "bol" ou "oul"? Ah, e como faço para ler as mensagens LOCAIS?
Desculpe-me pela perturbação, pois nunca tive a oportunidade de trabalhar com o EXIM, apesar de sempre ter tido essa vontade.
[14] Comentário enviado por crfjunior em 09/03/2007 - 11:09h
Bom dia estou confuso.... estou mantando um server web que tem o buguizilla tambem, só q aqui na empresa temos um servidor de email funcionando e os usuarios do bugzilla trocam informação via email... com devo fazr pra funcionar isso instalei o exim4(debian) mas não esta funcionando..
meu conf exim:
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='mail'
dc_local_interfaces='10.100.100.14'
dc_readhost=''
dc_relay_domains='dominio'
dc_minimaldns='false'
dc_relay_nets='10.100.0.0/16'
dc_smarthost='nomedominio'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
[16] Comentário enviado por reimago em 03/04/2007 - 00:28h
Claudio, meu exim4 funciona quando envio um email através de uma conta de usuario comum, porem quando envio seguindo seu exemplo, o remetente root@dominio.com.br não consegue rotear o email.
Como faço pra resolver isso, já que o script vai ser executado pelo root.
[17] Comentário enviado por cmercaldo em 03/04/2007 - 20:01h
Cesar.
Se vc configurou o arquivo update-exim4.conf, basta fazer o teste de envio abaixo:
#more mensagem.txt | mail -s "Teste de Envio" administrador@dominio.com.br
Lembrando que a conta administrador@dominio.com.br tem que ser substituida por sua conta particular de envio e recebimento.
[18] Comentário enviado por chrisley em 11/12/2007 - 09:48h
Caro Amigo o seu artigo foi de grande utilidade para mim. Mas esta acontecendo alguns problemas quanto a acentos em nomes de pasta e arquivos. O que posso fazer para corrigir estes acentos.
[20] Comentário enviado por removido em 14/01/2012 - 11:29h
Olá Pessoal,
Ainda sou iniciante em Linux e estou tendo que escrever um script para fazer um backup remoto dos servidores daqui. Porém, estou com uma dúvida: Em que parte do script que é feito o acesso ao servidor? No caso, o servidor que usamos é acessado por ssh. Eu poderia colar no script um comando ssh usuario@IP para acessar o servidor? Neste caso, como seria inserida a senha q é pedida para login?
Obrigada desde já.
Conto com a colaboração de todos.