Como implementar backup no Samba 4 no Debian Linux

implementar-backup-no-samba-4-debian-linux

Seguindo a linha de instalação do Samba por repositórios no Debian, postado aqui ficamos sem o suporte á backup no serviço (não confundir com backups de dados de servidor de arquivos), pois ainda não é contemplado na instalação via apt-get. Mas hoje, saiba como implementar backup no Samba 4 utilizando o Debian.

Porém, no pacote oficial do Samba 4, baixado do site https://www.samba.org/ podemos encontrar os scripts básicos para o backup no Samba 4. Basta descobrirmos como inserir o modelo ao nosso ambiente. Podemos usar como referência o site oficial na Wiki.

Implementação do backup utilizando Samba 4

Existem alguns diretórios e arquivos no Samba 4 apontados por default no smb.conf, que guardam informações e configurações importantes, como por exemplo as configurações de GPO, o banco de dados do AD, o arquivo que define os compartilhamentos, entre outras. 

Veremos como criar diretórios, setar permissões, alterar caminhos e rodar os scripts de backup no Samba 4 de forma automática. Poderemos encontrá-los facilmente com os comandos:

Terminal
find / -iname sysvol

Deve constar:

/var/lib/samba/sysvol

Agora procuramos pelo diretório private:

Terminal
find / -iname private

Deve constar:

/var/lib/samba/private

Então buscamos pelo arquivo smb.conf:

Terminal
find / -iname smb.conf

Deve constar:

/etc/samba/smb.conf

É necessário fazer a cópia prévia dos diretórios, antes de rodarmos os scripts de backup, mantendo as permissões dos mesmos, para um diretório de nossa escolha.

Sugiro algum diretório com backup agendado!
Terminal
mkdir /home/DADOS/samba
cp -rfvp /var/lib/samba/sysvol /home/DADOS/samba
cp -rfvp /var/lib/samba/private /home/DADOS/samba
cp -rfvp /etc/samba /home/DADOS/samba

Baixamos o código-fonte do Samba 4, para a captura dos scripts de backup:

Terminal
cd /usr/src
wget http://ftp.samba.org/pub/samba/samba-latest.tar.gz
tar -xvzf samba-latest.tar.gz

Buscamos os scripts disponibilizados pela equipe do Samba com o comando:

Terminal
find / -iname samba_backup

Devemos visualizar o caminho parecido com o abaixo ilustrado:

Terminal
/usr/src/samba-4-9.7/source4/scripting/bin/samba_backup

Buscamos o aplicativo que salva a base de dados do AD:

Terminal
find / -iname tdbbackup

Devemos visualizar o caminho:

/var/lib/dpkg/alternatives/tdbbackup

Copiamos os arquivos para o diretório de execução do root:

Terminal
cp /usr/src/samba-4-9.7/source4/scripting/bin/samba_backup /sbin
cp /var/lib/dpkg/alternatives/tdbbackup /sbin

Agora, é necessário editar o script de backup original, para se adequar ao nosso ambiente, apontando para as paths que criamos antes, manualmente:

Terminal
vim /sbin/samba_backup

Alteramos no início do script a path:

FROMWHERE=/usr/local/samba
WHERE=/usr/local/backups

Para:

FROMWHERE=/home/DADOS/samba
WHERE=/home/DADOS/samba/backups

ATENÇÃO: Criaremos o caminho citado acima:

Terminal
mkdir /home/DADOS/samba/backups

Setamos as permissões dos scripts para rodarem sem problemas:

Terminal
chown root:root /sbin/samba_backup
chown root:root /sbin/tdbbackup
chmod 750 /sbin/samba_backup
chmod 750 /sbin/tdbbackup
chmod +x /sbin/samba_backup
chmod +x /sbin/tdbbackup

É importante alterarmos no script o nome dos diretórios que serão salvos no nosso ambiente, por default o script buscará salvar ‘private’, ‘etc’ e ‘sysvol’, mas queremos ‘private’, ‘samba’ e ‘sysvol’, então editamos novamente o script samba_backup e modificamos:

Terminal
vim /sbin/samba_backup

De:

Terminal
DIRS="private etc sysvol"

Para:

Terminal
DIRS="private samba sysvol"

A política de melhores práticas aconselha a pararmos o serviço do samba, antes de rodar o script de backup, se preferirmos seguir:

Terminal
/etc/init.d/samba stop

Rodamos o script chamando-o com o comando:

Terminal
samba_backups

Subimos o serviço do samba novamente:

Terminal
/etc/init.d/samba start

Verificamos se foram criados os arquivos de backup, dentro de /home/DADOS/samba:

etc.{Timestamp}.tar.bz2
samba4_private.{Timestamp}.tar.bz2
sysvol.{Timestamp}.tar.bz

Etapa de Backup do Samba 4 concluída!

Poderíamos criar um agendamento automático deste backup do Samba 4 diretamente no Cron:

Terminal
vim /etc/crontab

Adicionamos a linha:

00 01 * * * /sbin/samba_backup

Informando ao Cron para rodar o script do samba_backup todos os dias á 01h da manhã.
No próximo post, veremos o processo de RESTORE do Samba 4.

Você pode querer ver este post aqui onde o processo é feito todo manualmente, o que uso, testado e totalmente funcional. Este é o meu modo de fazer a coisa neste momento, continuo estudando e aberto!

That’s all folks!