
UNIX Cafe | 第15回
はじめに|スクリプトは「動いたかどうか」が大切
シェルスクリプトを使って自動化が進んでくると、
次に気になってくるのが 「ちゃんと動いたか?」 という点です。
- 何時に実行されたのか
- エラーは出ていないか
- 毎日きちんと動いているか
これらを確認するために欠かせないのが ログ(log) です。
ログとは、スクリプトが「いつ・何を・どう実行したか」を残す記録 のこと。
このページでは、ターミナルでできるログ管理と、cronを使った自動レポート作成を学びます。
ログを残す理由|自動化は「記録」があって完成する
自動化は便利ですが、動かしっぱなし では不安が残ります。
ログを残すことで、
- 後から動作を確認できる
- トラブル時に原因を追いやすい
- 改善ポイントが見えてくる
というメリットがあります。
👉「動かして終わり」ではなく、「記録して次につなぐ」
これがUNIXらしい自動化の考え方です。
リダイレクトの基本|出力をファイルに残す
ログを作るために使うのが リダイレクト です。
よく使う2つの記号
| 記号 | 意味 |
|---|---|
> | 上書きする |
>> | 追記する |
ログを残す場合は、
過去の記録を消さない >>(追記) を使うのが基本です。
ログを書き出すスクリプト例
ここでは、
カフェの営業レポートを想定したログ出力スクリプトを使います。
#!/bin/bash
# ☕ log_report.sh
# カフェのレポートログを作るスクリプト
/bin/echo "📅 $(/bin/date '+%Y-%m-%d %H:%M:%S') レポート開始" >> /home/username/cafe_report.log
/bin/echo "☕ 本日の営業状況を確認中..." >> /home/username/cafe_report.log
/bin/echo "✅ ログ記録完了!" >> /home/username/cafe_report.log
/bin/echo "-----------------------------" >> /home/username/cafe_report.log
📌 ポイント
dateで日時を記録echoの出力を>>でログファイルへ追記- フルパス指定で安全に実行
これだけで、実行するたびにログが積み重なっていく ようになります。
実行権限を付ける|cronで動かす準備
cronからスクリプトを実行するには、実行権限 が必要です。
chmod +x log_report.shこの一手間を忘れると、cronがスクリプトを実行できません。
cronで自動実行する|毎日レポートを作る
cronを使うと、決まった時間にスクリプトを自動実行 できます。
crontabを開く
crontab -e毎晩決まった時間に実行する設定
例:毎晩22時30分にレポート作成
30 22 * * * /home/username/unix_cafe/log_report.sh >> /home/username/unix_cafe/cron_debug.log 2>&1この1行でやっていること
- 指定時刻にスクリプトを実行
- 標準出力とエラー出力をログにまとめて記録
- 実行結果を後から確認できる
2>&1 とは?|エラーも一緒に残す
cron設定でよく出てくるのが 2>&1 です。
| 番号 | 意味 |
|---|---|
1 | 標準出力 |
2 | 標準エラー出力 |
2>&1 は、「エラーも通常の出力と同じログにまとめる」 という指定です。
👉トラブル時にとても役立つので、cronでは一緒に書くのがおすすめです。
Try it!|自動レポートを実際に動かしてみよう
ここでは、
- レポート用スクリプト
- cron の設定
を組み合わせて、「毎日決まった時間に、自動でログが残る」完成形 を作ります。
レポート用スクリプトを作成する
log_report.sh を作成します。
#!/bin/bash
# ☕ UNIX Cafe | 自動レポートスクリプト
/bin/echo "📅 $(/bin/date '+%Y-%m-%d %H:%M:%S') 自動レポート開始" >> /home/username/unix_cafe/daily_report.log
/bin/echo "☕ 今日も平和なカフェ営業でした!" >> /home/username/unix_cafe/daily_report.log
/bin/echo "🌙 閉店処理完了。おつかれさまでした。" >> /home/username/unix_cafe/daily_report.log
/bin/echo "-----------------------------" >> /home/username/unix_cafe/daily_report.log📌/home/username/(macOS は /Users/username/)は
自分のユーザー名に必ず書き換えてください。
実行権限を付ける
chmod +x log_report.shこれで、cron から実行できる状態になります。
cron に登録する(毎晩22時30分)
crontab -e開いたら、次の 1行 を追加します。
30 22 * * * /home/username/unix_cafe/log_report.sh >> /home/username/unix_cafe/cron_debug.log 2>&1何が起きるか?
この設定で、毎日次のことが自動で行われます。
- 22:30 にスクリプトが実行される
- レポート内容が
daily_report.logに追記される - 実行結果やエラーは
cron_debug.logに残る
👉「動いたか不安」にならず、あとから必ず確認できる状態 です。
ログを確認してみよう
cat /home/username/unix_cafe/daily_report.log実行された日付ごとに、レポートが積み重なっていれば成功です。
ページのまとめ|ログは「未来の自分のため」
>:上書き>>:追記2>&1:エラーもまとめて記録- cron:時間で自動実行
ログは、昨日の自分が残したメモ のようなものです。
きちんと残しておけば、あとから見返して、改善や安心につなげられます。
ミナちゃん動かすだけじゃなくて、記録を残すと安心感が全然違いますね。
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本












