LoginSignup
126
118

More than 5 years have passed since last update.

[Mac][ターミナル]ターミナルのログを自動で取得する

Last updated at Posted at 2014-02-11

目的

  • ターミナルを起動したときに自動でログを取得したい
    • 出力をコピーするのが面倒くさい
      • 障害対応で毎度コピーするくらいなら最初から設定したい
    • 振り返りたい
      • 操作したコマンドなんだっけ?
      • あの時の実行結果どうだったけ?
    • 監査目的
      • 操作ログは残せ!と言われた
    • 超慎重派

設定方法

ログ出力用のディレクトリを作成する

mkdir -p /Users/[username]/scriptlogs/

[ターミナル.app]を起動する

[ターミナル] - [環境設定]を開く

スクリーンショット 2014-02-11 17.51.54.png

[設定]- [シェル]を開いて、[コマンドを実行]にチェックを入れる

スクリーンショット 2014-02-11 18.11.14.png

以下をテキストボックスに入力

now=`date +%Y%m%d%H%M%S`;logpath=~/scriptlogs/script_${now}.txt ;script ${logpath}

ログファイルが沢山増えたときに探したりlsが遅くなったりして大変になるので、ディレクトリを分けたければ、ディレクトリ用の変数と、ファイル名用の変数を設定する。
mkdir -p を使えばディレクトリがなければ作成してくれるし、なければ何もしない(エラーも吐かない)。
e.g. ~/scriptlogs/yyyy/mm/dd/script_hhmmss.txt

directory=~/scriptlogs/$(date +%Y)/$(date +%m)/$(date +%d);filename=script_$(date +%H%M%S).txt;mkdir -p ${directory}; script ${directory}/${filename}

ターミナルを一度閉じる

ターミナルを起動する

以下のように表示される

Last login: Tue Feb 11 18:01:38 on ttys002
now=`date +%Y%m%d%H%M%S`;logpath=/Users/[username]/scriptlogs/script_${now}.txt ;script ${logpath}
[username]-no-MacBook-Air:~ [username]$ now=`date +%Y%m%d%H%M%S`;logpath=/Users/[username]/scriptlogs/script_${now}.txt ;script ${logpath}
Script started, output file is /Users/[username]/scriptlogs/script_20140211180947.txt
bash-3.2$ 

「bash-3.2$」ってプロンプトが気に食わない人は…

bash --login
126
118
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
126
118