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.
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.
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários