De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Como automatizar rotinas de backup com SSH, Rsync e Hard Links no Linux

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 28 de fevereiro de 2023

Neste tutorial, vamos aprender a criar backups automatizados usando o protocolo SSH para acessar um servidor remoto e copiar os arquivos para um diretório local. O backup será organizado em diretórios com o formato AAAAMMDD e será feita uma verificação para copiar apenas o conteúdo que mudou de um dia para o outro, usando hard links para economizar espaço em disco. Além disso, vamos utilizar o cron para agendar a execução do backup em intervalos regulares.

Para que esse script funcione de forma automatizada, é importante que você configure o ssh para fazer o login sem o fornecer a senha de acesso. Para isso, consulte o artigo "Como configurar acesso sem senha a um servidor remoto utilizando ssh".

Para fazer backup do servidor remoto no servidor local usando ssh e rsync, você pode seguir os seguintes passos:

1. Criar diretório para backup:

$ mkdir -p ~/backups/$(date +%Y%m%d)

Isso irá criar um diretório no formato AAAAMMDD dentro do diretório backups, em sua pasta home.

2. Copiar conteúdo do último backup para o novo diretório usando hard links:

$ cp -al ~/backups/$(date -d yesterday +%Y%m%d)/* ~/backups/$(date +%Y%m%d)

Isso irá copiar todos os arquivos do último backup para o novo diretório usando hard links, economizando espaço em disco.

3. Usar rsync para sincronizar o conteúdo do servidor remoto com o diretório de backup local:

$ rsync -avz --link-dest=~/backups/$(date -d yesterday +%Y%m%d) user@server:/diretorio/remoto/ ~/backups/$(date +%Y%m%d)

Isso irá sincronizar o conteúdo do diretório remoto para o diretório de backup local, usando hard links para arquivos iguais aos do último backup. A opção --link-dest especifica o diretório do último backup para que o rsync possa criar hard links para economizar espaço em disco.

4. Automatizar a execução do backup

Para agendar a execução do script de backup diariamente, podemos usar o utilitário cron. Para editar o arquivo de configuração do cron, basta digitar o seguinte comando no terminal:

$ crontab -e

Em seguida, adicione a seguinte linha ao final do arquivo para executar o script diariamente às 23:59:

59 23 * * * /caminho/para/o/script/backup.sh

Salve o arquivo e saia do editor. Agora o script será executado automaticamente todos os dias às 23:59. Certifique-se de alterar /caminho/para/o/script para o diretório onde o script de backup foi salvo.

Conclusão

Este script se aplica principalmente a backups pessoais e pode ser adequado para refletir suas necessidades.

Para backups corporativos, nada melhor do que o Bacula, que é um software livre e aberto que substitui com qualidade, desempenho e estabilidade praticamente qualquer alternativa comercial.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida