このラボでは、「サーバー上の業務データを毎晩バックアップして、古いものは消してほしい」と頼まれた運用担当の想定で、実運用に耐えるシェル スクリプトを書きます。
ブラウザで開く IDE のターミナル(Linux)に、バックアップ対象 data/(CSV・JSON・日次レポート)と backup.sh の骨組みがあります。tar で固めるだけなら 1 行ですが、実運用では「引数を間違えたら止まる」「失敗したら終了コードで知らせる」「実行のたびにログが残る」「古い世代を自動で消す」が無いと、気づかないうちにバックアップが止まっていたりディスクが溢れたりします。その 4 点を順に足していきます。
学習目標:
set -eu、引数チェック、exit 1 による失敗の明示tar -czf と date で日時つきのアーカイブを作る>> でログを追記し、stat でサイズを記録するls -t | tail -n +4 | xargs rm で世代管理するawk、ファイルへの保存)bash backup.sh data で backups/data-YYYYmmdd-HHMMSS.tar.gz が作られ、backup.log に 1 行追記されることbackups/ に 3 世代だけ残ることcron.txt に毎日 2:00 の実行行があること詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。