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:
find / -iname sysvol
Deve constar:
/var/lib/samba/sysvol
Agora procuramos pelo diretório private:
find / -iname private
Deve constar:
/var/lib/samba/private
Então buscamos pelo arquivo smb.conf:
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.
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:
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:
find / -iname samba_backup
Devemos visualizar o caminho parecido com o abaixo ilustrado:
/usr/src/samba-4-9.7/source4/scripting/bin/samba_backup
Buscamos o aplicativo que salva a base de dados do AD:
find / -iname tdbbackup
Devemos visualizar o caminho:
/var/lib/dpkg/alternatives/tdbbackup
Copiamos os arquivos para o diretório de execução do root:
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:
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:
mkdir /home/DADOS/samba/backups
Setamos as permissões dos scripts para rodarem sem problemas:
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:
vim /sbin/samba_backup
De:
DIRS="private etc sysvol"
Para:
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:
/etc/init.d/samba stop
Rodamos o script chamando-o com o comando:
samba_backups
Subimos o serviço do samba novamente:
/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:
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!