ログ管理とレポート作成の基本|ターミナルでできる分析入門|UNIX Cafe

当サイトでは、コンテンツの一部に広告を掲載しています。
ログ管理とレポート作成の基本|ターミナルでできる分析入門|UNIX Cafe

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 のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次