Ubuntuディスクスペース管理の包括的なガイド

効率的で使いやすいオペレーティングシステム(OS)として、Ubuntuにはディスクスペースを管理しシステムをスムーズに動作させるための多くのツールやテクニックが提供されています。しかし、適切な注意とメンテナンスがなければ、Ubuntuのディスクスペースはすぐに混雑し、容量が不足する可能性があります。

この包括的なガイドでは、Ubuntuのディスクスペースを管理するためのさまざまなツールやテクニックのインストールと使用方法について説明します。

Ubuntuとともにディスクスペースの不安からさようならを言いましょう!

前提条件

このチュートリアルは実演形式です。続けるには、Ubuntuシステムが必要です。このチュートリアルではUbuntu 20.04を使用していますが、他のバージョンでも動作します。

ディスクアプリの使用

ディスクスペースの管理を迅速に行いたい場合、UbuntuなどのGNOMEベースのデスクトップ環境にはデフォルトのグラフィカルパーティショニングツールがあります。 gnome-disk-utilityがインストールされている限り、ディスクアプリにアクセスできます。

ディスクアプリはディスク使用状況の視覚的な表現を提供し、ファイルやディレクトリを操作する際にGUIを好むユーザーにとって直感的です。

ディスクアプリを使用してディスクスペースの管理を行う方法を見てみましょう:

1. 以下に示すように、Disksアプリを検索して開きます。

Opening the Disks App

2. ディスクアプリが開いたら、詳細な情報を表示するために任意のディスクをクリックしてください。これには、合計サイズ、モデルなどが含まれます。

Volumesセクションの下には、システム内のすべてのパーティションとそれに関連する詳細の一覧が表示されます。詳細には、デバイス名、パーティションタイプ、マウントポイント、合計サイズ、およびUUID(一意の識別子)が含まれます。UUIDはボリュームまたはパーティションを識別します。

Using the Disk App

3. 最後に、歯車アイコンをクリックしてコンテキストメニューから実行したいオプションを選択してください。実行できるアクションには、以下に示すものに限定されません:

Option Function
Format Partition Formatting a partition erases all its data and creates a new empty filesystem. This option is useful when you plan to reinstall your OS.
Edit Partition Editing the partition allows you to change the partition’s size, format, and filesystem type without deleting any data.
Edit Filesystem This option lets you change the label or name of a partition on your system. The label or name of a partition is a short, descriptive string that identifies the partition on your system.
Check or Repair Filesystem This option performs a filesystem check on the volume, which can help identify and fix any problems, such as corruption or inconsistencies with the filesystem.

? ファイルシステムのチェックには時間がかかる場合があります、特にボリュームが大きい場合やファイルシステムに多くの問題がある場合です。さらに、ファイルシステムの修復はデータ損失を引き起こす可能性があるため、進む前にデータをバックアップしてください。

Accessing additional partition options

dfコマンドの使用

主にターミナルで作業し、システムのディスクとパーティションの使用可能なスペースを確認する必要がある場合、ディスクファイルシステム(df)コマンドが役立ちます。 dfコマンドは、コンピューター上のファイルシステムに関する情報を表示します。デバイス名、合計サイズ、使用されているスペース、利用可能なスペース、およびマウントポイントが含まれます。

dfコマンドの動作を確認するには、次の手順に従ってください:

1. ターミナルを開き、以下の dfコマンドを実行して、人間が読める形式(-h)ですべてのファイルシステムとそれに関連する情報の一覧を表示します。サイズを「人間が読める」形式で表示するには、-hオプションを使用できます。

df -h

以下は、システムにマウントされているいくつかのファイルシステムを示しています。

  • A main partition (/dev/sda5) with a total size of 20GB and 9.4GB of available space.

  • A /boot/efi partition (/dev/sda1) with a total size of 511MB and 511MB of available space

  • いくつかのスナップパッケージ(ソフトウェアパッケージのファイルシステム)は、/snap/にマウントされています。

  • 一時的なストレージに使用されるメモリベースのファイルシステムであるtmpfsファイルシステムが多数存在します。

By default, the df command displays sizes in bytes, which is difficult to read. The -h option changes the display of sizes to use units such as kilobytes (K), megabytes (M), gigabytes (G), and terabytes (T). For example, the 1024000000 bytes size is displayed as 976M.

全体的に、メインパーティション(/dev/sda5)では使用済みスペースが49%で、9.4GBが利用可能です。この情報を元に、不要なファイルを削除してディスク容量を解放するかどうかを判断できます。

Listing all file systems

2. 次に、以下のwatchコマンドを実行して、dfコマンドを定期的に(5秒ごとに)実行し、ディスク使用状況の更新をリアルタイムで表示します。

watchコマンドは、-nオプションと共に使用することで、システムの状態の変化を監視したり、長時間実行されるコマンドの進行状況を追跡するのに便利です。

watch -n 5 df -h
Monitoring disk usage updates in real-time at a certain interval

3. 最後に、以下のdfコマンドを実行して、すべてのファイルシステムをリストしますが、出力を特定のファイルシステムタイプ(-t)に制限します。この場合はext4ファイルシステムです。

特定のタイプに出力を制限することで、重要なファイルシステムに焦点を当て、その他のファイルシステムをフィルタリングすることができます。このアプローチは、問題のトラブルシューティングや特定のファイルシステムに興味がある場合に役立ちます。

df -t ext4

以下では、dfコマンドが1つのext4ファイルシステム(ルートパーティション:/dev/sda5)のみを返していることがわかります。

Listing filesystems of a specific type

duコマンドの使用

代わりに、ファイルシステム全体の消費スペースを取得する代わりに、ファイルまたはディレクトリがどれだけのスペースを消費しているかを判断することができます。方法は?ディスク使用量(du)コマンドを使用することによって。

duコマンドは、ファイルおよびディレクトリの使用されているスペースを、そのサブディレクトリまで含めて推定します。

? duコマンドは、ディスクスペースがより詳細なレベルでどのように使用されているかを理解するのに役立ちます。

duコマンドがディスクスペース管理にどのように機能するかを見るには、次の手順に従ってください:

1. 次の/tmpディレクトリの使用状況の要約(-s)を人が読める形式(-h)で取得するために、以下のduコマンドを実行します。

du -sh /tmp

以下の出力は、/tmpディレクトリおよびそのサブディレクトリが合計で6.1GBのスペースを使用していることを示しています。

UnixライクなOSでは、/tmpは一時ファイルを保存するための特別なディレクトリです。 /tmpディレクトリを監視することは急速に満杯になるため重要です。

Viewing a summary of a directory’s disk usage

2. 次に、以下のlsコマンドを実行して/tmpが含むファイルを長い形式(-l)でリストします。

長いリスト形式には、各ファイルのディレクトリの権限、所有者、サイズ、および変更時間が含まれています。この情報を使用して、削除するかサイズを縮小する必要がある大きなファイルを簡単に特定できます。

ls -l /tmp

以下の出力では、/tmpディレクトリの最大のファイルはtest2.imgファイルであり、それがもはや必要でない場合は削除できます。

Listing files in the /tmp directory

3. 以下の rm コマンドを実行し、出力はされませんが、指定された大きなファイル(test2.img)を削除してシステムのスペースを解放してください。

sudo rm -f test2.img

ディスクスペースのチェックとファイルの削除の自動化

膨張させたくないディレクトリの監視は、システムを最高の状態に保ちます。なぜなら、ディスクスペースが不足すると、一時ファイルを書き込む必要があるプログラムに問題が発生します。

しかし、ディスクスペースを手動でチェックするのは、長期間にわたって退屈な作業になります。では、なぜタスクをスクリプトで自動化しないのでしょうか?

この例では、ディスクスペースをチェックし、不要なファイルを自動的に削除するスクリプトを作成します。

1. 好きなエディタで Bash スクリプトファイルを作成し、名前を自分の好みで付けますが、このチュートリアルでは temp_file_terminator.sh という名前を選択しています。

2. 次に、以下のコードを temp_file_terminator.sh ファイルに追加し、変更を保存してファイルを閉じます。

以下のコードは、現在の/tmpディレクトリのサイズをチェックします。サイズが宣言された最大サイズよりも大きい場合、コードは/tmpディレクトリ内のすべてのファイルを削除するコマンドを実行します。そうでない場合、1つもファイルを削除せずにコンソールにメッセージが表示されます。

#!/bin/bash

# /tmpディレクトリの最大サイズを設定する
MAX_SIZE=2097152

# /tmpディレクトリの現在のサイズをチェックする
CURRENT_SIZE=$(du -sk /tmp | awk '{print $1}')

# /tmpディレクトリが最大サイズよりも大きい場合、一部のファイルを削除する
if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]
then
  echo "The /tmp directory is larger than the maximum size of 2GB. Deleting files..."

  # 3日より古い/tmp内のすべてのファイルを見つけて削除する
  find /tmp -type f -mtime +3 -delete

  # 再度/tmpディレクトリのサイズをチェックする
  CURRENT_SIZE=$(du -sk /tmp | awk '{print $1}')

  # /tmpディレクトリがまだ最大サイズよりも大きい場合、すべてのファイルを削除する
  if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]
  then
    rm -rf /tmp/*
    echo "All files in /tmp have been deleted."
  else
    echo "Files in /tmp have been deleted. The /tmp directory is now below the maximum size of 2GB."
  fi
else
  echo "The /tmp directory is not large enough to trigger file deletion. No files have been deleted."
fi

3. 最後に、以下のbashコマンドを実行して、作業ディレクトリ(./)からスクリプト(temp_file_terminator.sh)を実行します。

sudo bash ./temp_file_terminator.sh

/tmpディレクトリのサイズに応じて、スクリプトはファイルを削除するか、ファイルが削除されなかったことを示すメッセージを表示します。

Running the Bash script to automate checking disk space and deleting files

結論

Ubuntuでディスクスペースを管理することは、どのLinux管理者にとっても重要なスキルです。適切なツールとテクニックを使えば、システムをスムーズに動作させて、十分なUbuntuディスクスペースを確保できます。

そして、このチュートリアルでは、コマンドラインとGUI(Disksアプリ)からディスクスペースを表示および管理するための多くの方法を学びました。

今、なぜこれらのツールを実践して、Amazon EFSファイルシステムオブジェクトをマスターする次のステップを踏まないのですか?

Source:
https://adamtheautomator.com/ubuntu-disk-space/