Differences

This shows you the differences between two versions of the page.

Link to this comparison view

backup_e_restore_do_samba4_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Backup e Restore do Samba 4 ======
  
 +
 +E ai galera, aqui eu vou abordar como efetuamos o backup e o restore do Samba 4.
 +
 +
 +O script de backup do samba não é instalado quando rodamos o make install com isso precisamos copiar ele para o diretório onde ficam os binários.
 +
 +vou considerar que o os fontes do samba estão em /​usr/​src/​samba4
 +
 +Vamos copiar os arquivos.
 +<sxh bash>
 +cp /​usr/​src/​samba4/​source4/​scripting/​bin/​samba_backup /usr/sbin
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões do arquivo de backup
 +<sxh bash>
 +chown root:root /​usr/​sbin/​samba_backup
 +chmod 750 /​usr/​sbin/​samba_backup
 +</​sxh>​
 +
 +Agora precisamos ajustar as seguintes váriaveis no script
 +<sxh bash>
 +vim /​usr/​sbin/​samba_backup
 +[...]
 +FROMWHERE=/​usr/​local/​samba
 +WHERE=/​usr/​local/​backups
 +[...]
 +DAYS=90
 +</​sxh>​
 +
 +Temos:
 +  * **FROMWHERE** -> aonde está instalado o nosso samba
 +  * **WHERE** -> aonde desejamos armazenar o backup
 +  * **DAYS** -> Quantidade de dias que vamos querer manter o nosso backup
 +
 +
 +Agora vamos criar o diretório que vai armazenar os arquivos do samba
 +<sxh bash>
 +mkdir /​usr/​local/​backups
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões
 +<sxh bash>
 +chmod 750 /​usr/​local/​backups
 +</​sxh>​
 +
 +Agora podemos rodar o script
 +<sxh bash>
 +/​usr/​sbin/​samba_backup
 +</​sxh>​
 +
 +Vamos ter alguns arquivos como abaixo
 +<sxh bash>
 +ls -l /​usr/​local/​backups
 +total 12204
 +-rw-r--r-- 1 root root      428 Ago 19 16:03 etc.190813.tar.bz2
 +-rw-r--r-- 1 root root 12486790 Ago 19 16:03 samba4_private.190813.tar.bz2
 +-rw-r--r-- 1 root root      475 Ago 19 16:03 sysvol.190813.tar.bz2
 +</​sxh>​
 +
 +Se o script for executado sem erros, vamos ter 3 arquivos após o termino:
 +
 +  * <​nowiki>​etc.{Timestamp}.tar.bz2</​nowiki>​
 +  * <​nowiki>​samba4_private.{Timestamp}.tar.bz2</​nowiki>​
 +  * <​nowiki>​sysvol.{Timestamp}.tar.bz2</​nowiki>​
 +
 +Nós podemos deixar o script de backup no crontab. Exemplo vamos deixar um backup diário as 2 da manhã.
 +
 +<sxh bash>
 +crontab -e
 +0 2 * * *       /​usr/​sbin/​samba_backup
 +</​sxh>​
 +
 +Já temos a nossa rotina de Backup pronta.
 +
 +====== Restore ======
 +
 +OBS:
 +  * O backup e o restore tem que ser da mesma versão do Samba
 +  * O Restore deve ser feito em uma máquina com o mesmo nome e ip da máquina que foi efetuado o backup.
 +  * É recomendado sempre restaurar o backup no mesmo SO que foi feito o backup pois da merda (Já testei e algumas coisas não funcionam)
 +  * Sempre após um restore é importante testar todo o samba antes de colocar em produção novamente.
 +  * Se o sistema todo foi corrompido você precisa primeiro configurar um Samba novamente para depois restaurar o backup considerando o que já foi mencionado.
 +
 +
 +Agora o samba não pode estar rodando para podermos remover os arquivo para resturar o backup
 +
 +Vamos parar o samba
 +<sxh bash>
 +/​etc/​init.d/​samba stop
 +</​sxh>​
 +
 +Vamos remover os arquivos e diretório necessários
 +<sxh bash>
 +rm -rf /​usr/​local/​samba/​etc
 +rm -rf /​usr/​local/​samba/​private
 +rm -rf /​usr/​local/​samba/​var/​locks/​sysvol
 +</​sxh>​
 +
 +Agora vamos efetuar o restore dos arquivos
 +<sxh bash>
 +cd /​usr/​local/​backups
 +tar -jxf etc.{Timestamp}.tar.bz2 -C /​usr/​local/​samba/​
 +tar -jxf samba4_private.{Timestamp}.tar.bz2 -C /​usr/​local/​samba/​
 +tar -jxf sysvol.{Timestamp}.tar.bz2 -C /​usr/​local/​samba/​
 +</​sxh>​
 +
 +Agora precisamos renomear os aquivos *.ldb.bak no diretório private para *.ldb
 +<sxh bash>
 +find /​usr/​local/​samba/​private/​ -type f -name '​*.ldb.bak'​ -print0 | while read -d $'​\0'​ f ; do mv "​$f"​ "​${f%.bak}"​ ; done
 +</​sxh>​
 +
 +Agora vamos restaurar as acls do sysvol
 +<sxh bash>
 +samba-tool ntacl sysvolreset
 +</​sxh>​
 +
 +Agora caso esteja utilizando o o BIND_DLZ como backend precisamos corrigir os hardlinks para o banco de dados do DNS
 +<sxh bash>
 +samba_upgradedns --dns-backend=BIND9_DLZ
 +</​sxh>​
 +
 +Agora você já pode iniciar o samba e testar se o restore aconteceu com sucesso.
 +
 +====== Referências ======
 +  - http://​wiki.samba.org/​index.php/​Backup_and_Recovery