O Arquiteto Digital

LinuxBeginner
Pratique Agora

Introdução

Boas-vindas ao segundo dia na LabEx Corporation! Depois do reconhecimento bem-sucedido do sistema ontem, você foi promovido ao cargo de Arquiteto Digital do Project Phoenix. A equipe de desenvolvimento ficou impressionada com sua documentação detalhada e sua atenção aos detalhes.

No entanto, há um problema urgente que precisa da sua atenção imediata. O administrador de sistemas anterior saiu repentinamente, e os arquivos do Project Phoenix estão completamente desorganizados. O código-fonte, a documentação e os arquivos de configuração estão espalhados em um único diretório. Configurações críticas estão vulneráveis por não terem backups, e arquivos de log antigos estão ocupando espaço no servidor de desenvolvimento que você examinou ontem.

Sua missão é criar uma estrutura de arquivos limpa, lógica e eficiente para dar suporte ao crescimento da equipe de desenvolvimento. Ao criar diretórios adequados, organizar os arquivos, proteger as configurações com backups e limpar dados antigos, você estabelecerá a base necessária para o sucesso do Project Phoenix.

A líder de desenvolvimento, Sarah Chen, conta com você para transformar esse caos em um ambiente de desenvolvimento organizado e profissional. O trabalho de hoje afetará diretamente a produtividade da equipe e o cronograma do projeto. Vamos começar!

Configurando a estrutura de diretórios do projeto

Sua primeira tarefa é criar uma estrutura de diretórios adequada dentro do diretório phoenix_project. Uma estrutura bem definida separa os diferentes tipos de arquivo, tornando o projeto mais fácil de navegar e manter.

Tarefas

  1. Navegue até o diretório ~/project/phoenix_project.
  2. Crie três novos subdiretórios: src para o código-fonte, config para os arquivos de configuração e docs para a documentação.

Requisitos

  • Todos os novos diretórios devem ser criados dentro do diretório ~/project/phoenix_project.
  • Os nomes dos diretórios devem ser exatamente src, config e docs.
  • Você deve usar um único comando para criar os três diretórios simultaneamente.

Exemplos

Após concluir esta etapa, a estrutura de diretórios deverá ser semelhante a esta:

~/project/phoenix_project/
├── config/
├── docs/
├── src/
├── README.md
├── config.json
└── main_app.py

Ao executar ls -F no diretório ~/project/phoenix_project, você deverá ver:

README.md  config/  config.json  docs/  main_app.py  src/

Os símbolos / após os nomes indicam que eles são diretórios, não arquivos.

Dicas

  • Use o comando cd para alterar o diretório atual.
  • O comando mkdir serve para criar novos diretórios.
  • mkdir aceita vários argumentos para criar vários diretórios de uma só vez.

Com a nova estrutura de diretórios pronta, é hora de mover os arquivos existentes do projeto para seus diretórios correspondentes. Isso deixará a raiz do projeto organizada e facilitará a localização dos arquivos.

Tarefas

  1. Mova o arquivo main_app.py para o diretório src.
  2. Mova o arquivo config.json para o diretório config.
  3. Mova o arquivo README.md para o diretório docs.

Requisitos

  • Verifique se você está no diretório ~/project/phoenix_project antes de executar as operações de movimentação.
  • Use o comando mv para mover cada arquivo.

Exemplos

Após mover os arquivos, a estrutura do projeto deverá estar organizada assim:

~/project/phoenix_project/
├── config/
│ └── config.json
├── docs/
│ └── README.md
└── src/
└── main_app.py

Ao executar ls -F no diretório raiz ~/project/phoenix_project, a saída deverá mostrar apenas os diretórios:

config/  docs/  src/

Cada arquivo deverá estar em seu subdiretório correspondente:

  • ls src/main_app.py
  • ls config/config.json
  • ls docs/README.md

Dicas

  • O comando mv serve para mover ou renomear arquivos e diretórios.
  • A sintaxe básica é mv [SOURCE] [DESTINATION].
  • Por exemplo, para mover file.txt para um diretório chamado documents, use mv file.txt documents/.

Fazendo backup de arquivos de configuração críticos

O arquivo config.json contém configurações críticas do Project Phoenix. Antes de fazer qualquer modificação, é essencial criar uma cópia de backup como medida de segurança. Sua próxima tarefa é criar uma cópia desse arquivo.

Tarefas

  1. Crie uma cópia de backup do arquivo config.json.

Requisitos

  • O arquivo de backup deve ser criado dentro do diretório ~/project/phoenix_project/config/.
  • O nome do arquivo de backup deve ser exatamente config.json.bak.

Exemplos

Depois de criar o backup, o diretório config deverá conter os dois arquivos:

~/project/phoenix_project/config/
├── config.json
└── config.json.bak

Ao executar ls no diretório ~/project/phoenix_project/config/, você deverá ver:

config.json  config.json.bak

Os dois arquivos deverão ter conteúdo idêntico, pois o arquivo .bak é uma cópia exata do original:

## These commands should show identical output
cat config.json
cat config.json.bak

Dicas

  • O comando cp serve para copiar arquivos e diretórios.
  • A sintaxe é cp [SOURCE] [DESTINATION].
  • Você precisará informar o caminho completo do arquivo de origem e o caminho completo do novo arquivo de backup.

Reorganizando os recursos compartilhados da equipe

Você descobriu outra parte do problema: um diretório chamado shared_docs, localizado em ~/project/shared_docs. Esse diretório contém diretrizes importantes da equipe e especificações de API que devem ficar junto com o restante da documentação do projeto. Sua tarefa é integrá-lo à estrutura principal do projeto.

Tarefas

  1. Mova o diretório shared_docs inteiro, incluindo todo o seu conteúdo, para o diretório ~/project/phoenix_project/docs/.

Requisitos

  • O diretório de origem é ~/project/shared_docs.
  • O caminho de destino é ~/project/phoenix_project/docs/.
  • O diretório inteiro, e não apenas seu conteúdo, deve ser movido.

Exemplos

Depois de mover o diretório shared_docs, a estrutura da documentação deverá ser semelhante a esta:

~/project/phoenix_project/docs/
├── README.md
└── shared_docs/
├── api_spec.doc
└── team_guidelines.txt

Ao executar ls no diretório ~/project/phoenix_project/docs/, você deverá ver:

README.md  shared_docs/

O diretório shared_docs deverá conter todos os arquivos originais:

ls ~/project/phoenix_project/docs/shared_docs/
api_spec.doc  team_guidelines.txt

O local original ~/project/shared_docs não deverá mais existir.

Dicas

  • O comando mv funciona com diretórios da mesma forma que com arquivos.
  • Ao mover um diretório, todo o seu conteúdo é movido automaticamente com ele.
  • O comando terá o formato mv [SOURCE_DIRECTORY] [DESTINATION_DIRECTORY].

Arquivando e removendo arquivos de log antigos

Sua tarefa final envolve uma pequena limpeza. O diretório ~/project/logs está acumulando arquivos de log, e os arquivos de 2023 não são mais necessários para as operações diárias. Para economizar espaço e manter tudo organizado, você precisa compactar esses logs antigos em um único arquivo de arquivamento e depois remover os arquivos originais.

Entendendo o comando tar

O comando tar é uma ferramenta poderosa do Linux para criar e manipular arquivos de arquivamento. Originalmente, “Tar” significava “Tape Archive”, pois a ferramenta foi criada para gravar dados em fitas magnéticas. Atualmente, ela é usada principalmente para criar arquivos de arquivamento compactados em disco.

Ao usar tar, você reúne vários arquivos em um único arquivo, chamado arquivo de arquivamento, e pode compactá-lo opcionalmente para economizar espaço. O formato de compactação mais comum é o gzip, que acrescenta a extensão .gz ao nome do arquivo.

O comando tar usa diferentes opções (flags) para controlar seu comportamento:

  • c: cria um novo arquivo de arquivamento
  • z: compacta o arquivo de arquivamento usando gzip
  • f: especifica o nome do arquivo de arquivamento

Assim, tar -czf archive.tar.gz file1 file2 cria um novo arquivo compactado chamado archive.tar.gz, contendo file1 e file2.

Tarefas

  1. Navegue até o diretório ~/project/logs.
  2. Crie um arquivo tar compactado chamado old_logs.tar.gz contendo todos os arquivos de log de 2023.
  3. Depois que o arquivo de arquivamento for criado com sucesso, exclua os arquivos de log originais de 2023 que você acabou de arquivar.

Requisitos

  • O arquivo de arquivamento final deve se chamar exatamente old_logs.tar.gz.
  • O arquivo de arquivamento deve estar localizado no diretório ~/project/logs.
  • Apenas os arquivos de log que tenham 2023 no nome devem ser arquivados e depois removidos.
  • O arquivo de log de 2024 (app_2024-05-01.log) não deve ser incluído no arquivo de arquivamento nem excluído.

Exemplos

Antes do arquivamento, o diretório de logs contém:

~/project/logs/
├── app_2023-01-15.log
├── app_2024-05-01.log
└── db_2023-02-20.log

Depois de concluir a tarefa de arquivamento, o diretório de logs deverá estar assim:

~/project/logs/
├── app_2024-05-01.log
└── old_logs.tar.gz

Ao executar ls no diretório ~/project/logs/, você deverá ver:

app_2024-05-01.log  old_logs.tar.gz

Dicas

  • Use o comando tar para criar arquivos de arquivamento. As opções -czf formam uma combinação importante: c (criar), z (compactar com gzip) e f (especificar o nome do arquivo).
  • Você pode usar um caractere curinga (*) para selecionar vários arquivos que correspondam a um padrão. Por exemplo, *_2023-*.log corresponde a todos os arquivos que terminam com .log e contêm _2023- no nome.
  • O comando rm serve para remover arquivos. Tenha cuidado ao usá-lo com caracteres curinga!

Resumo

Excelente trabalho, Arquiteto Digital! Você transformou com sucesso o Project Phoenix, que estava caótico, em um ambiente de desenvolvimento bem organizado. Sarah Chen e toda a equipe de desenvolvimento estão muito satisfeitas com seu trabalho. Você criou uma estrutura lógica de diretórios, organizou arquivos críticos, protegeu as configurações com backups e liberou recursos do sistema ao arquivar logs antigos.

Essas habilidades fundamentais de linha de comando do Linux — mkdir, mv, cp, tar e rm — formam a base da administração profissional de sistemas. O trabalho de organização realizado hoje criou uma base sólida para apoiar o Project Phoenix durante todo o seu ciclo de desenvolvimento.

Agora a equipe de desenvolvimento pode trabalhar com eficiência em um ambiente devidamente estruturado. Amanhã, você enfrentará um novo desafio como Investigador de Logs, quando a equipe encontrar seus primeiros problemas técnicos. Sua abordagem sistemática de organização será muito útil na solução de problemas!

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar