
UNIX Cafe | 第15回
はじめに|朝のカフェでログをチェック
ミナちゃんユニ先生、最近カフェの自動オープンがうまくいってます。
でも…何時に開いたか、ちゃんと動いたか、たまに不安なんです。



ふむ、それはいい感覚だね。スクリプトを動かしたら「どう動いたか」も記録しておくのがプロの流儀。それが ログ(記録) なんだ。



ログ…って、コーヒー豆の在庫ノートみたいなものですか?



まさにその通り。
「いつ・何を・どう動かしたか」を記録すれば、あとで振り返りも簡単だよ。今日はそのための“リダイレクトとcronの応用”を学ぼう。
ログに出力を残すリダイレクト



まずはスクリプトの結果をファイルに書き出してみよう。
前にも出てきた > や >> の出番だ。
出力をログに追記するスクリプト
home/username/この部分を自分のユーザー名に書き換えてください。
#!/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



これで、毎回の記録が cafe_report.log にどんどん増えていくんですね。



そうそう。> は上書き、>> は追記。
記録を残すなら“ダブル矢印”がカフェ流さ。



Linux:/home/username/macOS:/Users/username/ の部分は自分の環境に合わせて変更してくださいね。
ファイルに実行権限をつける
bash
$ chmod +x log_report.sh


open_cafe.sh」に実行権限をつけておきましょう。
cronで毎日レポートを自動作成



じゃあこのログスクリプトを、毎日自動で動かすこともできるんですか?



もちろんさ。
cron にお願いすれば、“毎日閉店後にレポート作成”もできるよ。
cron設定ファイルを開く
bash
$ crontab -ecrontabに次の一行を追加する
home/username/この部分を自分のユーザー名に書き換えてください。
0 21 * * * /home/username/unix_cafe/log_report.sh >> /home/username/unix_cafe/cron_debug.log 2>&1


>> のあとに 2>&1 ってありますけど…これはなんですか?



いい質問だね。
これは「エラーメッセージも一緒にログに書く」という指定なんだ。
1は 標準出力(ふつうの出力)2は 標準エラー出力(エラー)2>&1は「2を1と同じ場所に送る」つまりまとめて記録するという意味



Linux:/home/username/macOS:/Users/username/ の部分は自分の環境に合わせて変更してくださいね。
Try it!|レポート自動作成スクリプトを動かしてみよう
log_report.sh
home/username/この部分を自分のユーザー名に書き換えてください。
#!/bin/bash
/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



Linux:/home/username/macOS:/Users/username/ の部分は自分の環境に合わせて変更してくださいね。
cron設定(毎晩22時30分に実行)
home/username/この部分を自分のユーザー名に書き換えてください。
30 22 * * * /home/username/unix_cafe/log_report.sh >> /home/username/unix_cafe/cron_debug.log 2>&1



これなら“今日のカフェ記録”が自動で増えていきますね。
エラーも一緒に記録されるなんて安心です!



そう、ログは“昨日の自分と話すノート”みたいなものさ。
あとで読み返すと、スクリプトの癖や改善点も見えてくるんだよ。



Linux:/home/username/macOS:/Users/username/ の部分は自分の環境に合わせて変更してくださいね。
コーヒーブレイク:ユニ先生のひとこと


ページのまとめ
- :出力を上書き
- :出力を追記
- 2>&1:エラーも一緒に記録
- cron:時間でスクリプトを自動実行
- username :ご自身の環境に合わせて変更して下さい。



cronでスクリプトを動かして、リダイレクトで結果を残す…
これで完璧な“自動レポートカフェ”になりましたね!



ふふっ、これでカフェの記録係もバッチリだね。
「動かして終わり」じゃなく「記録して次につなぐ」
それがUNIXの“働き方改革”さ。







