Servidor de Backup (Licença GPL).
Os clientes rodam em ambientes
Linux e Windows.
O
UrBackup é um sistema de backup Client/Server, Open Source, que através de uma combinação de backups de imagens e arquivos realiza segurança de dados e um rápido tempo de restauração.
- Pré Requisitos de Software e Hardware
- Download do site oficial
- Compilação do código
- Configuração do URBACKUP Server
- Portas TCP utilizadas
- Linhas de comando para o servidor
- Clients disponiveis
- Jobs administrativos pela crontab
- Instalação URBACKUP Client
1. Pré Requisitos de Software e Hardware
Software:
- Sistema Operacional: RedHat ou CentOS (nesse exemplo instamos um Centos 7 Minimal e pacotes foram adicionados conforme o procedimento a seguir na compilação)
- Pacotes YUM : cryptopp-devel , libzstd-devel , redhat-lsb-core , automake-1.14 , Development Tools
Hardware:
- 1 Gb RAM
- Placa de rede dedicada
- 108 Mb para os binários do Server
- 44 Mb para os binários do Client Linux
- 110 Mb para os binários do Client Windows
- 3 Gb banco de dados
- Espaço em disco para os backups
2. Download do Site Oficial
SHA1 (urbackup-server-2.2.11.tar.gz)= 96f3dc2f069ad46fa9ca2c7b0ab534842000ff82
# wget https://hndl.urbackup.org/Server/2.2.11/urbackup-server-2.2.11.tar.gz
3. Compilação do Código
Instalar repositório EPEL no RedHat / CentOS:
# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -ivh epel-release-latest-7.noarch.rpm
Pacotes necessários:
# yum -y groupinstall "Development Tools"
# yum -y install cryptopp-devel libzstd-devel redhat-lsb-core automake libcurl-devel zlib-devel telnet
Verificando a versão do automake 1.13:
# automake --version
automake (GNU automake) 1.13.4
Compilando o código:
# tar xvfz urbackup-server-2.2.11.tar.gz
# cd urbackup-server-2.2.11
# cat<<EOT>./compila.sh
#!/bin/bash
make clean ; autoreconf -f -i ; make distclean
./configure --prefix=/usr/local/urbackup-server-2.2.11
ERRO="\$?" ; if [ \$ERRO -gt 0 ] ; then echo -e "\nErro de compilacao no ./configure\n" ; exit 23 ; fi
make -j4
ERRO="\$?" ; if [ \$ERRO -gt 0 ] ; then echo -e "\nErro de compilacao no make -j4\n" ; exit 23 ; fi
make install
ERRO="\$?" ; if [ \$ERRO -gt 0 ] ; then echo -e "\nErro de compilacao no make install\n" ; exit 23 ; fi
echo -e "\nCompilacao feita com sucesso !\n"
echo -e "\nDiretorio: /usr/local/urbackup-server-2.2.11\n"
ls -l /usr/local/urbackup-server-2.2.11
echo ""
EOT
# chmod 754 compila.sh
# ./compila.sh
# echo $?
Após compilar execute:
# ln -s /usr/local/urbackup-server-2.2.11 /usr/local/urbackup
# cp urbackup-server.service /usr/local/urbackup-server-2.2.11/bin
# cp defaults_server /usr/local/urbackup-server-2.2.11/bin
# cp logrotate_urbackupsrv /usr/local/urbackup-server-2.2.11/bin
# ln -s /usr/local/urbackup-server-2.2.11/bin/urbackupsrv /usr/bin/urbackupsrv
# cp /usr/local/urbackup-server-2.2.11/bin/urbackup-server.service /etc/systemd/system/
# sed 's:/var/log:/var/log/urbackup:' /usr/local/urbackup/bin/defaults_server > /tmp/arq.tmp
# cat /tmp/arq.tmp > /usr/local/urbackup/bin/defaults_server ; yes | rm /tmp/arq.tmp
# chmod +x /etc/systemd/system/urbackup-server.service
# systemctl enable urbackup-server.service
# ln -s /usr/local/urbackup-server-2.2.11/bin/defaults_server /etc/default/urbackupsrv
# cp logrotate_urbackupsrv /etc/logrotate.d/urbackupsrv
# sed 's:/var/log:/var/log/urbackup:' /etc/logrotate.d/urbackupsrv > /tmp/arq.tmp
# cat /tmp/arq.tmp > /etc/logrotate.d/urbackupsrv ; yes | rm /tmp/arq.tmp
# systemctl start urbackup-server
# systemctl status urbackup-server
# ps -ef | grep urbackupsrv | grep -v grep
urbackup 6981 1 1 08:51 ? 00:00:00 /usr/bin/urbackupsrv run --config /etc/default/urbackupsrv --no-consoletime
Testando a porta do 55414 URBACKUP Server:
Obs.: o resultado deve ser 1.
# echo quit | telnet localhost 55414 2>/dev/null | grep -i character | wc -l
1
Diretórios importantes do URBACKUP Server:
- Binários do Server: /usr/local/urbackup-server-2.2.11
- Link Simbólico: /usr/local/urbackup-server
- Diretório do Banco de Dados (sqlite3): /var/urbackup
- Log do servidor: /var/log/urbackup/urbackup.log
Crie o diretório e na sequência dê permissões. Exemplo:
# mkdir -p /bkp/URBACKUP
# chmod -R 777 /bkp/URBACKUP
Adicionando Proxy no URBACKUP:
Edite o arquivo
/etc/default/urbackupsrv e adicione ao final do arquivo as variáveis. Exemplo:
# vi /etc/default/urbackupsrv
...
export http_proxy="http://x.x.x.x:3128"
export https_proxy="http://x.x.x.x:3128"
export ftp_proxy="http://x.x.x.x:3128"
export no_proxy="127.0.0.0,192.168.0.0/16,172.16.0.0/16,10.0.0.0/8"
Limpando a senha para logar na URL pela primeira vez:
# sqlite3 /usr/local/urbackup/var/urbackup/backup_server_settings.db
sqlite>
delete from si_permissions;
sqlite>
delete from si_users;
sqlite>
.quit
Desfragmentar base de dados do URBACKUP:
# cd /var/urbackup
# ls -lh backup_server.db
-rw-r--r--. 1 urbackup urbackup 50M Jun 7 00:00 backup_server.db
# sqlite3 backup_server.db
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
vacuum;
sqlite>
.quit
# ls -lh backup_server.db
-rw-r--r--. 1 urbackup urbackup 520K Jun 13 07:54 backup_server.db
4. Configuração do URBACKUP Server
Entre na URL (exemplo):
http://192.168.56.101:55414/
Entre no menu acima a direita "Conf".
Edite os campos em amarelo abaixo e ao final clique em "Salvar".
Clique no menu "Usuários".
Clique no botão "Criar usuário".
Adicione a senha e clique no botão "Criar".
Entre novamente na URL e coloque a senha do usuário "admin".
5. Portas TCP utilizadas
Portas para o servidor.
Portas do Client (All incoming).
6. Linhas de comando para o servidor
Remove cliente que foi marcado para remover pela página (now):
# /usr/local/urbackup/bin/urbackupsrv cleanup --amount 0%
Remove arquivos com status (unknow) no urbackup database:
# /usr/local/urbackup/bin/urbackupsrv remove-unknown
Limpeza de Backups:
Onde x é a porcentagem de espaço para liberar no armazenamento de backup ou o número de bytes / megabytes / gigabytes, por exemplo, “20G” ou “10%”. Se apenas apagar backups antigos, use “0%”.
# urbackupsrv cleanup --amount x
Montar imagem em formato VHD(Z):
# urbackupsrv mount-vhd --file /media/backup/urbackup/testclient/Image_C_140420-1956.vhdz --mountpoint /media/testclient_C
Montar varias imagens VHD em um único arquivo VHD:
# urbackupsrv -a /full/path/Image_C_XXXXX.vhdz -a /full/path/Image_SYSVOL_XXXXX.vhdz -o full_disk.vhd
7. Clients disponíveis:
- Windows
- Linux Binary (command line only; with auto-update)
- MacOS
- Arch Linux
- Gentoo Linux
- Client Source for Linux
8. Jobs administrativos pela crontab
Dois procedimentos necessitam serem executados:
- Backup da base de dados (sqlite)
- Limpeza dos backups na base e no diretório dos backups executados
Logar-se com o usuário root o procedimento abaixo:
Obs.: em anexo nesse arquivo estão os scripts para download (copiar esses scripts para o diretório: /usr/local/urbackup/bin).
Dentro do script de backup do sqlite contem o procedimento de restore do banco caso necessário.
urbackup_clean.sh
backup_sqlite_dbase_urbackup.sh
# cat<<EOT>./cron_job
#
# URBACKUP Server Jobs
#
0 0,12 * * * /usr/local/urbackup/bin/urbackup_clean.sh
30 0,12 * * * /usr/local/urbackup/bin/backup_sqlite_dbase_urbackup.sh
#
EOT
crontab ./cron_job
crontab -l
yes | rm ./cron_job
Artigos relacionados