🐕

【Shell】ログファイルを自動リネームして保管:エビデンス収集に便利なシェルスクリプト

に公開

ログファイルを自動リネームして保管:エビデンス収集に便利なシェルスクリプト

テスト自動化や運用作業で生成される .log ファイルを、後から確認できるように環境情報付きで保存したいと思うことはありませんか?

たとえば、

  • テストのエビデンスとしてログを残す
  • 実行マシンごとにログファイルを分けたい
  • IPやホスト名をファイル名に付けて分かりやすくしたい

そんなときに便利なのが、ログファイルをリネームしてコピーするシンプルなスクリプトです。


🛠️ シェルスクリプト:test.log を環境情報付きで保存

#!/bin/bash

# 元ファイルのパス
SRC="/usr/local/logs/test.log"

# IPアドレス取得(127.0.0.1以外の最初のIPを使用)
IP=$(hostname -I | awk '{print $1}')
IP_SAFE=${IP// /_}

# ホスト名取得
HOST=$(hostname)
HOST_SAFE=${HOST// /_}

# 複製&リネームして保存
cp "$SRC" /usr/local/test1.log
cp "$SRC" /usr/local/test_${IP_SAFE}.log
cp "$SRC" /usr/local/test_${HOST_SAFE}.log

作成されるファイル名

/usr/local/test1.log                  # 固定名でコピー
/usr/local/test_192.168.0.123.log     # IPアドレス入り(スペース除去済)  
/usr/local/test_my-pc.log             # ホスト名入り(スペース除去済)

Discussion