Criar e Restaurar um Backup com tar no Linux

CompTIABeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá o processo fundamental de criação e restauração de um backup do sistema de arquivos em um ambiente Linux utilizando o utilitário de linha de comando tar (tape archive). O objetivo principal é adquirir experiência prática em tarefas essenciais de administração de sistemas, incluindo o gerenciamento de permissões de usuário e a manipulação de arquivos compactados. Você utilizará o comando sudo para executar operações com privilégios elevados quando necessário, permitindo o acesso e o backup de diretórios críticos do sistema, especificamente o diretório /home, que contém os dados dos usuários.

O laboratório guiará você por um fluxo de trabalho prático usando a conta de usuário padrão labex com sudo para tarefas administrativas. Você criará um arquivo compactado de todo o diretório /home e verificará se a criação foi bem-sucedida. Para simular um cenário de restauração, você navegará até um diretório temporário, /tmp, e extrairá o conteúdo do seu arquivo de backup. Por fim, você verificará se os arquivos e a estrutura de diretórios foram restaurados corretamente no novo local, confirmando a integridade do seu processo de backup e restauração.

Este é um Laboratório Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para concluir cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 99%. Ele recebeu uma taxa de avaliação positiva de 100% dos alunos.

Compreender o Ambiente Atual

Nesta etapa, você conhecerá seu ambiente atual e aprenderá como usar o sudo para tarefas administrativas. O usuário labex tem a capacidade de executar comandos com privilégios elevados usando o sudo (superuser do), o que permite realizar tarefas administrativas sem precisar alternar para a conta do usuário root.

O uso do sudo é uma prática recomendada de segurança, pois fornece privilégios elevados temporários para comandos específicos, mantendo o seu contexto de usuário. Essa abordagem é mais segura do que alternar inteiramente para o usuário root, pois reduz o risco de executar comandos perigosos acidentalmente.

Primeiro, vamos verificar sua identidade de usuário atual e sua localização executando os comandos whoami e pwd (print working directory).

Verifique quem você é:

whoami

A saída deve ser labex:

labex

Em seguida, verifique seu diretório atual:

pwd

A saída deve mostrar que você está no diretório de projeto do usuário labex:

/home/labex/project

Você pode testar seus privilégios de sudo executando um comando simples que exige acesso administrativo. Vamos listar o conteúdo do diretório /root, que normalmente requer permissões elevadas:

sudo ls /root

Este comando será executado com sucesso, demonstrando que você possui os privilégios de sudo necessários para realizar tarefas administrativas. O comando sudo concederá temporariamente as permissões necessárias para acessar áreas restritas do sistema de arquivos.

Agora que você entende seu ambiente e as capacidades do sudo, está pronto para criar um backup na próxima etapa.

Criar um Arquivo de Backup do Diretório /home

Nesta etapa, você criará um backup do diretório /home usando o comando tar com sudo. O utilitário tar (tape archiver) é uma ferramenta padrão no Linux para criar, visualizar e extrair arquivos de arquivamento. Um arquivo de arquivamento é um único arquivo que contém vários outros arquivos e diretórios, facilitando seu armazenamento e transporte.

Você está logado atualmente como o usuário labex, e seu diretório de trabalho atual é /home/labex/project. Você criará o arquivo de backup em seu diretório pessoal (home), que é acessível à sua conta de usuário.

O comando que você usará é sudo tar -cvf ~/backup.tar /home. Vamos detalhar as opções:

  • sudo: Concede os privilégios necessários para ler todos os arquivos no diretório /home, incluindo aqueles que pertencem a outros usuários.
  • -c (create): Esta opção instrui o tar a criar um novo arquivo de arquivamento.
  • -v (verbose): Faz com que o tar liste cada arquivo à medida que ele é adicionado ao arquivo. Isso é útil para acompanhar o progresso da operação.
  • -f (file): Esta opção permite especificar o nome do arquivo de arquivamento. Ela deve ser seguida imediatamente pelo nome do arquivo. No nosso caso, é ~/backup.tar. O símbolo ~ é um atalho para o seu diretório home (/home/labex).
  • /home: Este é o diretório de origem do qual você deseja fazer o backup.

Agora, execute o comando em seu terminal para criar o arquivo de backup:

sudo tar -cvf ~/backup.tar /home

Como você usou a opção -v, verá uma longa lista de arquivos rolando na tela conforme eles são adicionados ao arquivo backup.tar. A saída será semelhante a esta, listando todos os arquivos dentro do diretório /home:

tar: Removing leading `/' from member names
/home/
/home/labex/
/home/labex/.bashrc
/home/labex/.profile
/home/labex/.zshrc
/home/labex/project/
/home/labex/.zsh_history
...

A mensagem tar: Removing leading '/' from member names é normal. Ela significa que o tar está armazenando os caminhos dentro do arquivo de forma relativa ao diretório especificado, o que é uma prática padrão para garantir a portabilidade.

Na próxima etapa, você verificará se o arquivo backup.tar foi criado com sucesso.

Verificar a Criação do Arquivo backup.tar

Nesta etapa, você verificará se o arquivo backup.tar foi criado com sucesso na etapa anterior. Após realizar uma operação crítica como um backup, é sempre uma boa prática confirmar se o arquivo de saída esperado realmente existe.

Como você criou o arquivo de backup em seu diretório home (~/backup.tar), você precisa verificar esse diretório. A maneira mais simples de verificar o arquivo é usando o comando ls (list) com o caminho completo ou navegando até o seu diretório home.

Execute o comando ls para verificar seu diretório home:

ls ~

O comando listará todos os arquivos e diretórios em seu diretório home. Você deverá ver o arquivo backup.tar na saída:

backup.tar

Alternativamente, você pode verificar o arquivo diretamente usando seu caminho completo:

ls -l ~/backup.tar

A saída será algo parecido com isto:

-rw-r--r-- 1 root root 10240 <Data> <Hora> /home/labex/backup.tar

Esta listagem detalhada oferece mais segurança, mostrando que o arquivo existe e possui um tamanho superior a zero, que é o esperado para um arquivo de backup. Observe que o arquivo pertence ao root porque você o criou usando sudo, mas ele está armazenado em seu diretório home acessível.

Agora que você criou e verificou o backup com sucesso, a próxima etapa é simular um cenário de restauração.

Mudar para o Diretório /tmp para Restauração

Nesta etapa, você mudará seu diretório atual para /tmp. Para praticar a restauração de um backup, o ideal é extrair os arquivos em um local neutro primeiro. Isso evita a substituição acidental de arquivos existentes e permite que você inspecione os dados restaurados antes de movê-los para o destino final. O diretório /tmp é um local padrão em sistemas Linux para arquivos temporários e é perfeito para este propósito.

Para navegar entre diretórios no sistema de arquivos Linux, utiliza-se o comando cd (change directory). Atualmente, você está no diretório /root.

Para mudar para o diretório /tmp, execute o seguinte comando:

cd /tmp

Após executar o comando, o prompt do seu terminal pode não parecer diferente, mas sua localização no sistema de arquivos mudou. Você pode confirmar sua nova localização usando o comando pwd (print working directory), que exibe o caminho completo do seu diretório atual.

pwd

A saída deve confirmar que você está agora em /tmp:

/tmp

Agora que você está no diretório /tmp, está pronto para extrair o conteúdo do arquivo backup.tar que criou anteriormente.

Extrair o Arquivo de Backup para o Diretório Atual

Nesta etapa, você extrairá o conteúdo do arquivo backup.tar para o seu diretório atual, /tmp. Esse processo é frequentemente chamado de "restauração" de um backup. Você usará o comando tar novamente, mas com opções diferentes para realizar a extração.

Você está atualmente no diretório /tmp. O arquivo de backup, backup.tar, está localizado em seu diretório home (/home/labex). Portanto, você deve fornecer o caminho completo para o arquivo de arquivamento ao executar o comando.

O comando para extrair o arquivo é tar -xvf ~/backup.tar. Vamos analisar as opções:

  • -x (extract): Esta opção instrui o tar a extrair arquivos de um arquivamento. Esta é a principal diferença em relação ao comando de criação.
  • -v (verbose): Assim como antes, esta opção lista cada arquivo à medida que é extraído, mostrando o progresso.
  • -f (file): Especifica o nome do arquivo de arquivamento a ser processado. Você usa ~/backup.tar para referenciar o arquivo de backup em seu diretório home.

Observe que você não precisa de sudo para a extração porque está extraindo para /tmp, que tem permissão de escrita para usuários comuns, e você está apenas lendo o arquivo de backup (não modificando arquivos do sistema).

Agora, execute o comando em seu terminal para extrair os arquivos:

tar -xvf ~/backup.tar

Você verá uma lista de arquivos e diretórios sendo criados em seu diretório atual (/tmp). A saída será a lista de arquivos contidos no arquivamento, que deve parecer familiar desde o momento em que você o criou:

home/
home/labex/
home/labex/.bashrc
home/labex/.profile
home/labex/.zshrc
home/labex/project/
home/labex/.zsh_history
...

Esta saída indica que o tar criou um diretório home dentro de /tmp e restaurou todos os arquivos e diretórios de backup dentro dele. Na etapa final, você verificará isso.

Verificar se os Arquivos foram Restaurados em /tmp

Nesta etapa final, você confirmará que os arquivos do arquivo de backup foram extraídos corretamente no diretório /tmp. Esta é uma parte crucial de qualquer processo de restauração para garantir a integridade dos dados.

Você está atualmente no diretório /tmp. Para ver o diretório home recém-criado, use o comando ls:

ls

Você deve ver um diretório home listado entre quaisquer outros arquivos temporários que possam estar presentes:

home
...

Isso confirma que o diretório de nível superior do arquivamento foi criado. Para ser mais minucioso, vamos olhar dentro deste novo diretório home para ver se ele contém os dados de usuário esperados.

ls home

A saída deve mostrar o diretório home do usuário labex, que era o conteúdo do diretório /home original do qual você fez o backup:

labex

Isso confirma que o processo de backup e restauração foi bem-sucedido. Você criou um backup do /home usando privilégios de sudo, armazenou-o em seu diretório home (/home/labex) e, em seguida, restaurou-o com sucesso em um local temporário em /tmp/home.

Você pode verificar se os arquivos restaurados correspondem aos originais comparando alguns arquivos. Por exemplo, você pode verificar se o seu arquivo .bashrc foi restaurado corretamente:

ls home/labex/.bashrc

A saída deve confirmar que o arquivo existe:

home/labex/.bashrc

O processo de backup e restauração está agora concluído. Você demonstrou com sucesso como usar o tar com privilégios de sudo para criar um backup do sistema mantendo seu contexto de usuário, que é a abordagem recomendada para tarefas de administração de sistemas.

Resumo

Neste laboratório, você aprendeu como realizar uma tarefa fundamental de administração de sistemas: criar e restaurar um backup de diretório usando o comando tar no Linux com privilégios de sudo. O processo começou com a compreensão do seu ambiente como o usuário labex e o uso do sudo para executar comandos com privilégios elevados quando necessário. Essa abordagem é mais segura do que alternar totalmente para o usuário root, pois fornece permissões elevadas temporárias para tarefas específicas enquanto mantém o seu contexto de usuário.

Você utilizou o utilitário tar com sudo para criar um único arquivo de arquivamento, backup.tar, contendo todo o conteúdo do diretório /home, armazenando-o em seu diretório home acessível. Isso demonstrou como lidar com backups de todo o sistema trabalhando dentro dos limites do usuário e evitando possíveis conflitos com funções do sistema.

Para a parte de restauração do laboratório, você aprendeu a prática recomendada de primeiro mudar para um local seguro e temporário, como o diretório /tmp, para evitar a substituição de dados ativos. A partir daí, você usou o comando tar para extrair o conteúdo do arquivo backup.tar em seu diretório atual sem exigir privilégios elevados, já que estava apenas lendo o arquivo de backup e gravando em um local acessível ao usuário. A etapa final envolveu a verificação de que os arquivos e diretórios do backup foram restaurados corretamente em /tmp, confirmando a integridade de todo o ciclo de backup e restauração.