【Linux】df -Pとは?-hとの違いと運用で役立つ使い方を解説

Linux・サーバー

「df -P」の「-P」とは?

-PPOSIX形式で出力するオプションです。

通常のdfコマンドは、ファイルシステム名が長い場合などに改行されることがあります。

一方、df -PはPOSIXで定められた形式で出力するため、ファイルシステムを1行で表示することができます。


なぜ運用ではdf -Pが使われるのか?

df -Pを使うことで、POSIXで定められた形式に従った出力を得られるため、スクリプトで解析しやすくなるためです。

サーバー運用では、「ディスク使用率が○%を超えたら自動で処理を実行する」という運用がよくあります。

例えば、

  • ディスク使用率が80%以上になったら古いログを削除
  • ディスク使用率が90%以上になったらメール通知
  • ディスク使用率が95%以上になったらサービスを停止

このような処理でディスク使用率を正確に取得するためにdf -Pが使われます。

よく使われるのが次のコマンドです。

df -P / | awk 'NR==2 {gsub("%","",$5); print $5}'

このコマンドではルート直下のディスク使用率を取得し%を取り除いて表示することができます。

出力例

11

df -P /ではルートだけを対象にするため、出力はヘッダー+ルートファイルシステムの2行になります。そのためawkNR==2で2行目、$5で5列目(Capacity)を指定することで使用率を取得しています。

gsub("%","",$5)では、取得した使用率11%から%を取り除いて11という数値にしています。

取得した数値を条件分岐に利用できます。

USED=$(df -P / | awk 'NR==2 {gsub("%","",$5); print $5}')

if [ "$USED" -ge 80 ]; then
    echo "ディスク使用率80%以上"
fi

実際の運用例

私が携わった運用では、ルートファイルシステムの使用率が80%を超えた場合に、日付付きログやdeadletterファイルを削除する仕組みを検討しました。

イメージは次のような流れです。

1. cronで定期実行
        │
        ▼
df -P / でルートファイルシステムの使用率を取得
        │
        ▼
80%以上?
   │        │
  No       Yes
   │        │
 終了   古いログ・deadletterを削除
        │
        ▼
容量を確保

df -hとの違い

-hは容量を人間が読みやすい単位で表示するためのオプションです。

コマンド向いている用途
df -h人が画面で容量を確認する
df -Pシェルスクリプトで解析する

まとめ

df -Pは「POSIX形式で表示する」というシンプルなオプションですが、運用現場では重要な役割を果たします。

特に、ディスク使用率を条件にログ削除やアラート通知を行うスクリプトでは、出力形式が固定されるdf -Pを利用することで、環境差異による誤動作を防ぎやすくなります。

コメント

タイトルとURLをコピーしました