Instalando e configurando o BackupPC
Caso esteja procurando uma solução para fazer um backup rápido e de fácil restauração, utilize esta ferramenta, pois ela traz uma consigo uma grande facilidade e também bastante eficiência na hora de restaurar os arquivos perdidos.
Parte 7: Tentando facilitar as coisas
Tentando facilitar o processo de adicionar hosts acabei criando um script para fazer a troca de chaves do SSH e alimentar o arquivo "hosts". O pré-requisito para usar este script é já ter gerado as chaves publicas no servidor de backup.
O script deve ser rodado com o usuário "backuppc", os caminhos citados no script estão adequados para este tutorial. As linhas estão comentadas para facilitar a modificação por parte de quem quiser adotá-lo como ferramenta. Abaixo segue o código criado.
DICA: Este script faz perguntas sobre caminhos de arquivos de configuração. Essa solução foi feita para que o script se adeque a qualquer usuário que deseje entender o código, mas recomendo que vocês fixem os valores dos caminhos para o caso de cada um. Assim obterão maior velocidade na hora rodar o script.
Um exemplo é o caminho do arquivo hosts, ao invés de preencher toda vez, edite o script e coloque logo o caminho literal onde o arquivo de encontra.
Confesso também que não sou muito bom em shell script, portando caso tenham correções ou sugestões de melhorias postem aí!
O script deve ser rodado com o usuário "backuppc", os caminhos citados no script estão adequados para este tutorial. As linhas estão comentadas para facilitar a modificação por parte de quem quiser adotá-lo como ferramenta. Abaixo segue o código criado.
DICA: Este script faz perguntas sobre caminhos de arquivos de configuração. Essa solução foi feita para que o script se adeque a qualquer usuário que deseje entender o código, mas recomendo que vocês fixem os valores dos caminhos para o caso de cada um. Assim obterão maior velocidade na hora rodar o script.
Um exemplo é o caminho do arquivo hosts, ao invés de preencher toda vez, edite o script e coloque logo o caminho literal onde o arquivo de encontra.
Confesso também que não sou muito bom em shell script, portando caso tenham correções ou sugestões de melhorias postem aí!
Script
#!/bin/bash
######################################################
#########VERIFICANDO O USUÁRIO########################
######################################################
idbackuppc=`id -u backuppc`
whoami=`id -u `
if [ $whoami != $idbackuppc ] ; then
echo "Favor executar este script com o usuário backuppc!"
exit 1
fi
#####################################################
### SOLICITANDO O CAMINHO DO ARQUIVO "hosts"(da instalação do
### backuppc) CASO SE ENCONTRE EM OUTRO LOCAL
#####################################################
HOSTFILE="/etc/BackupPC/hosts"
echo -n "Digite o caminho do arquivo "hosts" do BackupPC, o padrão será: [/etc/BackupPC/hosts]=>"
read hostfile2
if [ "$hostfile2" != "" ] ; then
HOSTFILE=""
HOSTFILE=$hostfile2
fi
###RECOLHENDO INFORMAÇÃO SOBRE O CLIENTE A SER FEITO BACKUP
nhost=""
if [ -z $nhost ] ; then
echo -n "Nome do servidor cliente (Lembre que o nome sera inserido no arquivo hosts )=>"
read nhost
fi
###CONVERTENDO CARACTERES PARA MINUSCULO
newhost=`echo $nhost| tr A-Z a-z `
###VERIFICANDO SE O CLIENTE RESPONDE SOLICITACÃO DE PING
ping -c 1 $newhost >/dev/null
###CASO A RESPOSTA SEJA NEGATIVA O ERRO SERA EXIBIDO
if [ $? != 0 ] ; then
echo "Servidor cliente não encontrado! Verifique erros de digitação ou problemas de comunicação"
exit 0
fi
###VERIFICANDO SE O SERVIDOR CLIENTE JÁ ESTA CADASTRADO
repete=`grep -i "$newhost" $HOSTFILE`
if [ "$repete" != "" ] ; then
echo -n "Nome do servidor cliente já cadastrado no arquivo hosts!"
echo
exit 0
fi
###RECOLHENDO INFORMAÇÃO SOBRE O SERVIDO PRINCIPAL DE BACKUP
nserver=""
if [ -z $nserver ] ; then
echo -n "Nome do servidor principal de Backup=>"
read nserver
fi
###CONVERTENDO CARACTERES PARA MINUSCULO
newserver=`echo $nserver| tr A-Z a-z `
###VERIFICANDO SE O CLIENTE RESPONDE SOLICITACÃO DE PING
ping -c 1 $newserver >/dev/null
###CASO A RESPOSTA SEJA NEGATIVA O ERRO SERA EXIBIDO
if [ $? != 0 ] ; then
echo "Servidor principal de Backup não encontrado! Verifique erros de digitação ou problemas de comunicação"
exit 0
fi
###########################################################
###CRIANDO CHAVES DE CONFIANÇA PARA O SSH SER DIRETO#######
###########################################################
/usr/bin/scp -pC /home/backuppc/.ssh/id_rsa.pub root@$newhost:/tmp/
/usr/bin/ssh root@$newhost "sed -i -e '/$newserver/d' /root/.ssh/authorized_keys; cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys;rm -f /tmp/id_rsa.pub "
############################################################
###INSERINDO INFORMAÇÃO NO ARQUIVO HOSTS ESPECIFICADO ######
############################################################
echo -e "$newhost\t0\tbackuppc" >>$HOSTFILE
exit 0
######################################################
#########VERIFICANDO O USUÁRIO########################
######################################################
idbackuppc=`id -u backuppc`
whoami=`id -u `
if [ $whoami != $idbackuppc ] ; then
echo "Favor executar este script com o usuário backuppc!"
exit 1
fi
#####################################################
### SOLICITANDO O CAMINHO DO ARQUIVO "hosts"(da instalação do
### backuppc) CASO SE ENCONTRE EM OUTRO LOCAL
#####################################################
HOSTFILE="/etc/BackupPC/hosts"
echo -n "Digite o caminho do arquivo "hosts" do BackupPC, o padrão será: [/etc/BackupPC/hosts]=>"
read hostfile2
if [ "$hostfile2" != "" ] ; then
HOSTFILE=""
HOSTFILE=$hostfile2
fi
###RECOLHENDO INFORMAÇÃO SOBRE O CLIENTE A SER FEITO BACKUP
nhost=""
if [ -z $nhost ] ; then
echo -n "Nome do servidor cliente (Lembre que o nome sera inserido no arquivo hosts )=>"
read nhost
fi
###CONVERTENDO CARACTERES PARA MINUSCULO
newhost=`echo $nhost| tr A-Z a-z `
###VERIFICANDO SE O CLIENTE RESPONDE SOLICITACÃO DE PING
ping -c 1 $newhost >/dev/null
###CASO A RESPOSTA SEJA NEGATIVA O ERRO SERA EXIBIDO
if [ $? != 0 ] ; then
echo "Servidor cliente não encontrado! Verifique erros de digitação ou problemas de comunicação"
exit 0
fi
###VERIFICANDO SE O SERVIDOR CLIENTE JÁ ESTA CADASTRADO
repete=`grep -i "$newhost" $HOSTFILE`
if [ "$repete" != "" ] ; then
echo -n "Nome do servidor cliente já cadastrado no arquivo hosts!"
echo
exit 0
fi
###RECOLHENDO INFORMAÇÃO SOBRE O SERVIDO PRINCIPAL DE BACKUP
nserver=""
if [ -z $nserver ] ; then
echo -n "Nome do servidor principal de Backup=>"
read nserver
fi
###CONVERTENDO CARACTERES PARA MINUSCULO
newserver=`echo $nserver| tr A-Z a-z `
###VERIFICANDO SE O CLIENTE RESPONDE SOLICITACÃO DE PING
ping -c 1 $newserver >/dev/null
###CASO A RESPOSTA SEJA NEGATIVA O ERRO SERA EXIBIDO
if [ $? != 0 ] ; then
echo "Servidor principal de Backup não encontrado! Verifique erros de digitação ou problemas de comunicação"
exit 0
fi
###########################################################
###CRIANDO CHAVES DE CONFIANÇA PARA O SSH SER DIRETO#######
###########################################################
/usr/bin/scp -pC /home/backuppc/.ssh/id_rsa.pub root@$newhost:/tmp/
/usr/bin/ssh root@$newhost "sed -i -e '/$newserver/d' /root/.ssh/authorized_keys; cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys;rm -f /tmp/id_rsa.pub "
############################################################
###INSERINDO INFORMAÇÃO NO ARQUIVO HOSTS ESPECIFICADO ######
############################################################
echo -e "$newhost\t0\tbackuppc" >>$HOSTFILE
exit 0
$Conf{CgiUserConfigEditEnable} = '1'; Para deixa a interface de configuração acessivel.
$Conf{CgiUserConfigEdit} O que pode ser modificado pela interface, 1 para ligado e 0 para desligado.
$Conf{CgiAdminUsers} = 'backuppc'; Essa acho que já diz tudo.
com o htpasswd crie um arquivo com o usuário backuppc e senha, coloque o auth no apache e pronto.
Irei preparar um documento de como iniciar e programar backups por linha de comando, me quebra maior galho.
Abrço