0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

macOS のストレージ空き容量をチェックするシェルスクリプト

Last updated at Posted at 2024-06-14

Jenkins の各 macOS ノードでストレージ不足の警告をしたい。

macOS で df コマンドを使用して、ルートディレクトリ / の空き容量を取得し、それをGB単位で表示するシェルスクリプトの例を以下に示します。

スクリプト

#!/bin/bash -xe

# ルートディレクトリの空き容量を取得し、ギガバイト単位で計算
available_kb=$(df -k / | tail -n 1 | awk '{print $4}')
available_gb=$(echo "scale=2; $available_kb / 1024 / 1024" | bc)

# 判定と出力
if (( $(echo "$available_gb >= 50" | bc -l) )); then
  echo "空き容量は ${available_gb} GB です。50GB 以上あります。"
else
  echo "空き容量は ${available_gb} GB です。50GB 未満です。"
fi

解説

  1. df -k / コマンドを使用してルートディレクトリの空き容量をキロバイト単位で取得します。
  2. tail -n 1 でヘッダー行を除外し、空き容量の値だけを取得します。
  3. awk '{print $4}' で空き容量の値を抽出します。4列目が空き容量のため $4 を指定しています。GNU の df コマンドなら --output=avail で空き容量だけが出力されます。
  4. echobc を使用して空き容量をキロバイトからギガバイトに変換します。scale=2 なので小数点以下2桁まででます。
  5. 空き容量が50GB以上か未満かを判定し、適切なメッセージを出力します。

利用

出力の部分をチャット通知にしました。警告は無視されがちなので、警告メッセージには具体的にどう対処すればいいのかを記載するようにしました。未来のメンバーだったり自分だったりに期待です。

シェルスクリプトのみなので各ノードに実行環境を用意しなくていいのが好きポイントです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?