デジタルアーキテクト

LinuxBeginner
オンラインで実践に進む

はじめに

LabEx Corporation での 2 日目へようこそ。昨日、システム調査を無事に完了したあなたは、Project Phoenix のデジタルアーキテクトに昇進しました。開発チームは、綿密なドキュメント作成と細部への注意力を高く評価しています。

しかし、すぐに対応しなければならない緊急の問題があります。前任のシステム管理者が突然退職し、Project Phoenix のファイルは完全に整理されていません。ソースコード、ドキュメント、設定ファイルが 1 つのディレクトリに散在しています。重要な設定はバックアップがなく危険な状態で、昨日調査した開発サーバーには古いログファイルがたまっています。

あなたの任務は、増加する開発チームを支えられる、整理された論理的で効率的なファイル構成を設計することです。適切なディレクトリを作成し、ファイルを整理し、バックアップを確保し、古いデータを削除することで、Project Phoenix の成功に必要な基盤を整えます。

リード開発者の Sarah Chen は、この混乱を整理されたプロフェッショナルな開発環境に変える役割をあなたに期待しています。今日の作業は、チームの生産性とプロジェクトのスケジュールに直接影響します。それでは始めましょう。

プロジェクトのディレクトリ構成を作成する

最初の作業は、phoenix_project ディレクトリ内に適切なディレクトリ構成を作成することです。明確に定義された構成により、ファイルの種類ごとに分けて管理できるため、プロジェクトを閲覧・保守しやすくなります。

タスク

  1. ~/project/phoenix_project ディレクトリに移動します。
  2. 次の 3 つのサブディレクトリを作成します。ソースコード用の src、設定ファイル用の config、ドキュメント用の docs です。

要件

  • 新しいディレクトリはすべて ~/project/phoenix_project ディレクトリ内に作成してください。
  • ディレクトリ名は srcconfigdocs と完全に一致させてください。
  • 3 つのディレクトリを同時に作成するため、1 つのコマンドを使用してください。

このステップを完了すると、ディレクトリ構成は次のようになります。

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

~/project/phoenix_project ディレクトリで ls -F を実行すると、次のように表示されます。

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

ディレクトリ名の後ろにある / は、それらがファイルではなくディレクトリであることを示します。

ヒント

  • cd コマンドを使って現在のディレクトリを変更します。
  • mkdir コマンドは新しいディレクトリの作成に使います。
  • mkdir には複数の引数を指定できるため、複数のディレクトリを一度に作成できます。

プロジェクトファイルを移動して整理する

新しいディレクトリ構成ができたので、既存のプロジェクトファイルをそれぞれの保存先に移動します。これにより、プロジェクトのルートディレクトリが整理され、ファイルを見つけやすくなります。

タスク

  1. main_app.py ファイルを src ディレクトリに移動します。
  2. config.json ファイルを config ディレクトリに移動します。
  3. README.md ファイルを docs ディレクトリに移動します。

要件

  • ファイルを移動する前に、~/project/phoenix_project ディレクトリにいることを確認してください。
  • 各ファイルの移動には mv コマンドを使用してください。

ファイルを移動すると、プロジェクト構成は次のように整理されます。

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

ルートの ~/project/phoenix_project ディレクトリで ls -F を実行すると、ディレクトリだけが表示されます。

config/  docs/  src/

各ファイルは対応するサブディレクトリに入っています。

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

ヒント

  • mv コマンドは、ファイルやディレクトリの移動または名前変更に使います。
  • 基本構文は mv [SOURCE] [DESTINATION] です。
  • たとえば、file.txtdocuments という名前のディレクトリに移動するには、mv file.txt documents/ を実行します。

重要な設定ファイルをバックアップする

config.json ファイルには、Project Phoenix の重要な設定が含まれています。変更を加える前に、このファイルのバックアップを作成することは重要な安全対策です。次の作業では、このファイルのコピーを作成します。

タスク

  1. config.json ファイルのバックアップコピーを作成します。

要件

  • バックアップファイルは ~/project/phoenix_project/config/ ディレクトリ内に作成してください。
  • バックアップファイル名は config.json.bak と完全に一致させてください。

バックアップを作成すると、config ディレクトリには次の 2 つのファイルが入ります。

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

~/project/phoenix_project/config/ ディレクトリで ls を実行すると、次のように表示されます。

config.json  config.json.bak

.bak ファイルは元のファイルを完全にコピーしたものなので、両方の内容は同じです。

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

ヒント

  • cp コマンドは、ファイルやディレクトリのコピーに使います。
  • 構文は cp [SOURCE] [DESTINATION] です。
  • コピー元ファイルのフルパスと、新しいバックアップファイルのフルパスを指定する必要があります。

チーム共有リソースを再編成する

さらに、~/project/shared_docsshared_docs というディレクトリがあることが分かりました。このディレクトリには、プロジェクトの他のドキュメントと一緒に管理すべき、チームの重要なガイドラインと API 仕様が入っています。このディレクトリをメインプロジェクトの構成に統合してください。

タスク

  1. shared_docs ディレクトリ全体とその中身を、~/project/phoenix_project/docs/ ディレクトリ内に移動します。

要件

  • コピー元ディレクトリは ~/project/shared_docs です。
  • 移動先は ~/project/phoenix_project/docs/ です。
  • 中身だけでなく、ディレクトリ全体を移動してください。

shared_docs ディレクトリを移動すると、ドキュメント構成は次のようになります。

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

~/project/phoenix_project/docs/ ディレクトリで ls を実行すると、次のように表示されます。

README.md  shared_docs/

shared_docs ディレクトリには、元のファイルがすべて入っています。

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

元の場所にある ~/project/shared_docs は存在しなくなります。

ヒント

  • mv コマンドは、ファイルと同じようにディレクトリにも使えます。
  • ディレクトリを移動すると、その中身も自動的にすべて移動します。
  • コマンドは mv [SOURCE_DIRECTORY] [DESTINATION_DIRECTORY] のような形式になります。

古いログファイルをアーカイブして削除する

最後の作業は、少し整理整頓です。~/project/logs ディレクトリにはログファイルがたまっています。そのうち 2023 年のログは、日常の運用にはもう必要ありません。ディスク容量を節約し、ディレクトリを整理するため、これらの古いログを 1 つのアーカイブファイルに圧縮してから、元のファイルを削除します。

tar コマンドを理解する

tar コマンドは、アーカイブファイルの作成や操作に使う強力な Linux ツールです。「Tar」はもともと「Tape Archive」を意味します。磁気テープにデータを書き込むために設計されたことが由来ですが、現在ではディスク上に圧縮アーカイブファイルを作成するためによく使われます。

tar を使うと、複数のファイルを 1 つのファイル(アーカイブ)にまとめることができます。また、必要に応じてアーカイブを圧縮し、容量を節約できます。最も一般的な圧縮形式は gzip で、ファイル名に .gz 拡張子が付きます。

tar コマンドでは、動作を制御するためにさまざまなオプション(フラグ)を使います。

  • c:新しいアーカイブを作成する
  • z:gzip を使ってアーカイブを圧縮する
  • f:アーカイブのファイル名を指定する

したがって、tar -czf archive.tar.gz file1 file2 を実行すると、file1file2 を含む archive.tar.gz という名前の新しい圧縮アーカイブが作成されます。

タスク

  1. ~/project/logs ディレクトリに移動します。
  2. 2023 年のすべてのログファイルを含む、old_logs.tar.gz という名前の圧縮 tar アーカイブを作成します。
  3. アーカイブが正常に作成されたことを確認してから、アーカイブした 2023 年の元のログファイルを削除します。

要件

  • 最終的なアーカイブ名は old_logs.tar.gz と完全に一致させてください。
  • アーカイブは ~/project/logs ディレクトリ内に作成してください。
  • ファイル名に 2023 が含まれるログファイルだけをアーカイブし、その後削除してください。
  • 2024 年のログファイル(app_2024-05-01.log)はアーカイブにも含めず、削除もしないでください。

アーカイブ前のログディレクトリには、次のファイルが入っています。

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

アーカイブ作成後、ログディレクトリは次のようになります。

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

~/project/logs/ ディレクトリで ls を実行すると、次のように表示されます。

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

ヒント

  • アーカイブの作成には tar コマンドを使います。-czf オプションは、c(作成)、z(gzip で圧縮)、f(ファイル名を指定)を組み合わせたものです。
  • ワイルドカード(*)を使うと、パターンに一致する複数のファイルを選択できます。たとえば、*_2023-*.log は、名前に _2023- を含み、.log で終わるすべてのファイルに一致します。
  • rm コマンドは、ファイルの削除に使います。ワイルドカードと組み合わせる場合は注意してください。

まとめ

素晴らしい作業でした、デジタルアーキテクト。Project Phoenix を混乱した状態から、整理された開発環境へ変えることに成功しました。Sarah Chen と開発チーム全員が、あなたの成果を高く評価しています。論理的なディレクトリ構成を作り、重要なファイルを整理し、バックアップによって設定を保護し、古いログをアーカイブしてシステムリソースも整理しました。

今回学んだ基本的な Linux コマンドラインスキル、mkdirmvcptarrm は、プロフェッショナルなシステム管理の基盤となります。今日の整理作業によって、Project Phoenix の開発ライフサイクル全体を支える確かな基盤ができました。

開発チームは、適切に構成された環境で効率的に作業できるようになりました。明日は、チームが初めて技術的な問題に直面したとき、Log Investigator として新たなチャレンジに取り組みます。今回身につけた体系的な整理方法は、トラブルシューティングでも役立つでしょう。

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習