RackShareRackShareラックを、シェアしよう

シェルスクリプト入門|手作業を自動化する第一歩

ハク@インフラエンジニア ・ 公開 2026-08-04 ・ 更新 2026-09-04 ・ 閲覧 216
技術解説

毎回手で打っているコマンド、スクリプトにすれば一発です。運用自動化の入り口、シェルスクリプトの基本をまとめます。

まずは「コマンドを並べるだけ」

シェルスクリプトは、普段打つコマンドをファイルに並べたものです。難しく考えなくて大丈夫。

#!/bin/bash
# バックアップスクリプト
tar czf /backup/app_$(date +%Y%m%d).tar.gz /var/www/app
echo "バックアップ完了"

先頭の #!/bin/bash は「これはbashで動かす」の宣言(シバン)です。

実行できるようにする

chmod +x backup.sh
./backup.sh

chmod +x で実行権限を付けてから実行します。

変数と日付

TARGET="/var/www/app"
DATE=$(date +%Y%m%d)
tar czf /backup/app_${DATE}.tar.gz ${TARGET}

$(コマンド) で、コマンドの結果を変数に入れられます。ログ名に日付を入れる定番パターンです。

条件分岐でミスを防ぐ

if [ -d "$TARGET" ]; then
    tar czf /backup/app_${DATE}.tar.gz "$TARGET"
else
    echo "対象がありません: $TARGET"
    exit 1
fi

対象があるか確認してから実行する、という一手間で事故を防げます。

繰り返し(ループ)

for host in web01 web02 web03; do
    echo "=== $host ==="
    ssh $host "df -h /"
done

複数サーバのディスク使用率を一括確認、のような定番作業がぐっと楽になります。

エラーで止める設定

スクリプトの先頭に付けておくと安全です。

set -euo pipefail

エラーが出たら止まる(-e)、未定義変数を弾く(-u)、パイプの途中エラーも拾う、という保険です。

自動化の第一歩は「今日の手作業」から

いきなり大作を作らなくていいです。「毎日打っている3コマンド」をスクリプトにするだけで、ミスが減り、時間が浮きます。それをcronで定期実行すれば、立派な自動化の完成です。小さく始めるのがコツです。

♥ 0(いいねはログイン後)

コメント 0 件

コメントするにはログインしてください。