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