Introdução
Você é o "Sentinela do Backup", o recém-nomeado administrador de sistemas de uma promissora startup de tecnologia. Recentemente, um pequeno surto de energia causou uma falha no servidor, corrompendo momentaneamente um arquivo de log não crítico. Embora nenhum dado importante tenha sido perdido desta vez, foi um sério sinal de alerta.
O CTO encarregou você pessoalmente de uma missão crítica: implementar uma estratégia robusta de backup e recuperação para o servidor principal da aplicação da empresa, e fazer isso hoje. A integridade dos dados dos usuários, as configurações da aplicação e os logs vitais estão agora em suas mãos.
Este é o seu momento de brilhar. Ao criar, verificar e automatizar com sucesso o processo de backup, você não apenas protegerá o ativo mais valioso da empresa — seus dados — mas também se provará como um guardião indispensável de sua infraestrutura digital. O sistema está ativo, o tempo está correndo. Vamos ao trabalho.
- Pule temporariamente o desafio e continue com os Laboratórios Guiados subsequentes na trilha de aprendizado Linux.
- Discuta com o Labby ou visualize a solução.
Identificando Dados Críticos para Backup
Antes de criar um backup, sua primeira tarefa é identificar quais dados são críticos. Um backup completo do sistema costuma ser inviável. Para o nosso servidor de aplicação, os ativos mais importantes estão nos diretórios data, config e logs.
Para tornar nosso processo de backup limpo e gerenciável, criaremos um arquivo que lista todos os diretórios que desejamos salvar. Esta lista servirá como um manifesto para o nosso script de backup.
Tarefas
- Crie um arquivo chamado
backup-list.txtno diretório~/project. - Este arquivo deve conter os caminhos relativos para os três diretórios críticos, com cada caminho em uma nova linha.
Requisitos
- O arquivo deve se chamar exatamente
backup-list.txt. - O arquivo deve estar localizado no diretório
~/project. - O arquivo deve conter as três entradas a seguir, cada uma em sua própria linha:
dataconfiglogs
Exemplos
Após criar o arquivo backup-list.txt, seu diretório de projeto deve conter o novo arquivo de manifesto ao lado dos diretórios existentes:
~/project/
├── backup-list.txt
├── backups/
├── config/
├── data/
└── logs/
Ao executar cat backup-list.txt, você deverá ver os três diretórios críticos listados:
data
config
logs
Dicas
- Você pode usar um editor de texto como o
nanopara criar e editar o arquivo. - Alternativamente, você pode usar o comando
echocom redirecionamento de saída (>) para criar o arquivo e>>para anexar conteúdo a ele.
Criando um Arquivo de Backup do Sistema
Com a lista de diretórios críticos pronta, é hora de criar o arquivo de backup. A ferramenta padrão do Linux para este trabalho é o tar (Tape Archive). Ele pode agrupar vários arquivos e diretórios em um único arquivo. Também compactaremos o arquivo para economizar espaço usando gzip.
Tarefas
- Use o comando
tarpara criar um arquivo de backup compactado. - O arquivo deve se chamar
system-backup.tar.gz. - O arquivo deve ser colocado no diretório
~/project/backups/. - O conteúdo do arquivo deve ser determinado pelo arquivo
backup-list.txtque você criou na etapa anterior.
Requisitos
- O arquivo final deve estar localizado em
~/project/backups/system-backup.tar.gz. - Você deve usar o comando
tar. - Você deve usar a opção
-Tcom otarpara ler a lista de arquivos/diretórios dobackup-list.txt. - O arquivo deve ser compactado com
gzip(use a opçãoznotar).
Exemplos
Após criar o arquivo de backup, seu diretório backups deve conter o novo arquivo compactado:
~/project/backups/
└── system-backup.tar.gz
Ao executar ls -lh ~/project/backups/, você deverá ver o arquivo de backup com seu tamanho:
-rw-rw-r-- 1 labex labex 1.2K Sep 11 15:08 system-backup.tar.gz
Dicas
- As opções comuns para criar um arquivo compactado com
tarsãoc(create/criar),z(compactar com gzip),v(verbose/detalhado, para ver o progresso) ef(file/especificar nome do arquivo). - A opção
-Tdiz aotarpara obter os nomes dos arquivos a serem arquivados a partir do arquivo que vem a seguir, em vez da linha de comando. - A estrutura do comando será algo como
tar -czvf [nome_do_arquivo] -T [arquivo_lista].
Verificando a Integridade do Backup
Um backup é inútil se estiver corrompido ou incompleto. Um passo crucial em qualquer estratégia de backup é a verificação. Você deve garantir que o arquivo criado contenha todos os arquivos pretendidos e seja legível.
Tarefas
- Use o comando
tarpara listar o conteúdo do arquivosystem-backup.tar.gzsem extraí-lo. - Redirecione a saída deste comando para um novo arquivo chamado
backup-contents.txtno diretório~/project.
Requisitos
- Você deve criar um arquivo chamado
backup-contents.txtem~/project. - Este arquivo deve conter a lista de todos os arquivos e diretórios armazenados dentro de
system-backup.tar.gz. - Não extraia os arquivos; apenas liste-os.
Exemplos
Após criar o arquivo de verificação, seu diretório de projeto deve conter o novo arquivo backup-contents.txt:
~/project/
├── backup-contents.txt
├── backup-list.txt
├── backups/
├── config/
├── data/
└── logs/
Ao executar cat backup-contents.txt, você deverá ver uma listagem detalhada de todos os arquivos no backup:
drwxrwxr-x labex/labex 0 2025-09-11 15:08 data/
-rw-rw-r-- labex/labex 46 2025-09-11 15:08 data/transactions.csv
drwxrwxr-x labex/labex 0 2025-09-11 15:08 config/
-rw-rw-r-- labex/labex 72 2025-09-11 15:08 config/app.conf
drwxrwxr-x labex/labex 0 2025-09-11 15:08 logs/
-rw-rw-r-- labex/labex 49 2025-09-11 15:08 logs/app.log
Dicas
- O comando
tarpossui uma opção para listar (t) o conteúdo de um arquivo. - Combine a opção
tcomz(para gzip),v(para uma lista detalhada) ef(para especificar o arquivo). - Use o operador de redirecionamento de saída
>para salvar a saída do comando em um arquivo.
Restaurando Arquivos de um Backup
O desastre aconteceu! Um desenvolvedor júnior, ao tentar liberar espaço, excluiu acidentalmente o arquivo de configuração principal da aplicação, app.conf. A aplicação está fora do ar. Cabe a você, o Sentinela do Backup, restaurar este arquivo crítico do seu backup e salvar o dia.
Tarefas
- Primeiro, simule o acidente excluindo o arquivo
config/app.conf. - Em seguida, use o comando
tarpara restaurar apenas o arquivoconfig/app.confdo seu arquivosystem-backup.tar.gz. O arquivo deve ser restaurado em sua localização original.
Requisitos
- O arquivo
~/project/config/app.confdeve estar presente após você completar a tarefa. - Você deve extrair apenas o arquivo individual
config/app.conf, não o backup inteiro.
Exemplos
Após restaurar o arquivo app.conf, seu diretório config deve conter o arquivo recuperado:
~/project/config/
├── app.conf
└── ...
Ao executar ls -l ~/project/config/app.conf, você deverá ver o arquivo restaurado:
-rw-rw-r-- 1 labex labex 72 Sep 11 15:08 /home/labex/project/config/app.conf
Você pode verificar se o conteúdo do arquivo está correto checando se ele contém as configurações esperadas:
## Isso deve mostrar as configurações de banco de dados e chave de API
cat ~/project/config/app.conf
Dicas
- O comando
rmé usado para excluir arquivos. - O comando
tarusa a opçãoxpara extrair arquivos. - Para extrair um arquivo específico, você pode adicionar o caminho dele (como aparece no backup) ao final do comando
tar -x. - O caminho completo para o arquivo dentro do backup é
config/app.conf.
Agendando Tarefas de Backup Automatizadas
Você salvou o dia, mas o trabalho de um herói nunca termina. Confiar em backups manuais é arriscado. O passo final é automatizar o processo para que os backups sejam criados regularmente sem qualquer intervenção humana. Para isso, usaremos o cron, o agendador de tarefas padrão do Linux.
Tarefas
- Crie uma tarefa cron que execute automaticamente um comando de backup.
- A tarefa deve ser executada a cada minuto (para fins deste desafio).
- O comando deve criar um novo arquivo
tarcompactado dentro do diretório~/project/backups/. - Para evitar sobreposição, cada novo arquivo de backup deve ter um nome exclusivo que inclua um carimbo de data/hora (ex:
backup-2023-10-27_15-30-00.tar.gz).
Requisitos
- Você deve usar
crontab -epara editar suas tarefas cron. - O agendamento do cron deve ser
* * * * *para rodar a cada minuto. - O comando de backup dentro da tarefa cron deve usar caminhos absolutos para o diretório de saída e os diretórios de origem (ex:
/home/labex/project/backups). - O nome do arquivo de backup deve incluir um carimbo de data/hora.
Exemplos
Após configurar a tarefa cron, você pode verificar se está funcionando checando seu crontab e esperando que os backups automáticos apareçam. Ao executar crontab -l, você deverá ver sua nova tarefa de backup:
## Exemplo de saída (seu comando exato pode variar)
* * * * * tar -czf /home/labex/project/backups/backup-$(date +\%Y-\%m-\%d_\%H-\%M-\%S).tar.gz -C /home/labex/project data config logs
Após um minuto ou dois, seu diretório backups deve começar a mostrar arquivos de backup com carimbo de data/hora:
~/project/backups/
├── backup-2025-09-11_15-30-00.tar.gz
├── backup-2025-09-11_15-31-00.tar.gz
├── backup-2025-09-11_15-32-00.tar.gz
└── system-backup.tar.gz
Dicas
- Execute
crontab -epara abrir o editor de tarefas cron. Pode ser solicitado que você selecione um editor; onanoé uma boa escolha. - O formato para uma tarefa cron é:
[minuto] [hora] [dia_do_mês] [mês] [dia_da_semana] [comando].* * * * *significa cada minuto de cada hora de cada dia. - Você pode usar o comando
datepara gerar um carimbo de data/hora. Por exemplo,date +%Y-%m-%d_%H-%M-%Sproduzirá um formato como2023-10-27_15-30-00. - Para usar a saída de um comando dentro de outro comando, use
$(comando). - Importante: Em um crontab, o sinal de porcentagem (
%) tem um significado especial (é tratado como uma nova linha). Você deve escapá-lo com uma barra invertida (\%) ao usá-lo com o comandodate. - Seu comando final no crontab pode parecer com:
* * * * * tar -czf /caminho/para/backup-$(date +\%F_\%T).tar.gz -C /caminho/para/origem dir1 dir2
Resumo
Parabéns, Sentinela! Você projetou e implementou com sucesso uma estratégia completa e automatizada de backup e recuperação. Os dados da empresa agora estão seguros, graças à sua diligência e habilidade. Você não apenas evitou uma crise potencial, mas também estabeleceu um sistema que protegerá a empresa no futuro.
Neste desafio, você dominou várias habilidades fundamentais de administração de sistemas:
- Identificação de Dados Críticos: Identificar exatamente o que precisa de backup.
- Criação de Arquivos: Usar o comando
tarpara criar backups compactados. - Verificação de Integridade: Garantir que os backups sejam válidos e completos.
- Realização de Restaurações: Extrair arquivos específicos para se recuperar de perda de dados.
- Automatização de Tarefas: Agendar tarefas cron para backups regulares e automáticos.
Estas são habilidades essenciais do mundo real para qualquer administrador de sistemas Linux, desenvolvedor ou engenheiro de DevOps. Você provou que tem o que é preciso para ser um guardião confiável de sistemas críticos.



