インフラエンジニアのシェルスクリプト実践入門|現場で使える自動化スクリプト集

現場実践|シェルスクリプト入門
インフラエンジニアのシェルスクリプト実践入門|現場で使える自動化スクリプト集
「シェルスクリプトって何から覚えればいい?」——定期バックアップ・ログ確認・ヘルスチェック等、インフラ現場で実際に使えるシェルスクリプトの書き方を実例付きで解説します。
💡 シェルスクリプトはインフラエンジニアにとって「包丁」に相当する基本ツール。条件分岐・ループ・関数・エラーハンドリングの基礎を身につけておくことが重要です。
1. シェルスクリプトの基本構文
#!/bin/bash
SERVER="web01"
# 条件分岐
if ping -c 1 $SERVER &>/dev/null; then
echo "$SERVER は疎通OK"
else
echo "ERROR: $SERVER に疎通できません"
exit 1
fi
# 配列とループ
SERVERS=("web01" "web02" "db01")
for server in "${SERVERS[@]}"; do
echo "確認中: $server"
done2. ディスク使用率監視スクリプト(実践例)
#!/bin/bash
THRESHOLD=80
SLACK_URL="https://hooks.slack.com/services/xxxx"
df -h | grep -v Filesystem | grep -v tmpfs | while read -r line; do
USAGE=$(echo "$line" | sed "s/%//g" | tr -s " " | cut -d " " -f5)
MOUNT=$(echo "$line" | tr -s " " | cut -d " " -f6)
if [ "$USAGE" -gt "$THRESHOLD" ]; then
MESSAGE="警告: $MOUNT のディスク使用率が ${USAGE}% です"
curl -s -X POST \
-H "Content-Type: application/json" \
-d "{"text": "$MESSAGE"}" "$SLACK_URL"
fi
done3. エラーハンドリングのベストプラクティス
- set -e:コマンド失敗時に即座にスクリプトを終了する。意図しない処理の継続を防ぐ
- set -u:未定義変数を参照したときにエラーを発生させる。変数名のtypoを防ぐ
- trap(終了時処理):trap “rm -f /tmp/lockfile” EXIT でスクリプト終了時のクリーンアップを定義する
- ログに日時を記録:echo “$(date +”%Y-%m-%d %H:%M:%S”) 処理完了” でタイムスタンプ付きログを残す
4. シェルスクリプトとPythonの使い分け
また、「シェルスクリプトではなくPythonを使う」判断基準は「複雑な文字列処理・APIコール・構造化データ(JSON・CSV)の操作が必要な場合」です。単純なコマンドの組み合わせ・ファイル操作・プロセス管理はシェルスクリプトの方が適しています。
📌 この記事のポイント
- 条件分岐・ループ・エラーハンドリング(set -e・set -u)の3つがシェルスクリプトの基本
- ディスク監視・Slack通知等の運用自動化スクリプトはインフラエンジニアの定番実装
- 複雑な文字列処理・APIコール・JSON操作が必要になったらPythonへの移行を検討する
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




