ターミナルの操作ログをEvernoteに自動保存する

普段Evernoteを利用しているのですが、毎月余ってもったいないなぁと思っていて有効活用の方法はないかなぁと常に思っておりました。
ある日、サーバーをいじる時のターミナルの操作ログを保存すればいいじゃん!と思いつきました。

Windows(Teraterm)の場合

実際に設定してみた内容です。
※Windows7の64ビット版なので設定内容は適宜読み替えてください。

Teratermのログを保存するフォルダを作成

Cドライブ直下にteratermフォルダを作成しました。
C:\teratemlog

Teratermの設定で操作ログを自動で保存するように設定する。

Teratermの設定ファイル
C:\Program Files (x86)\teraterm\TERATERM.INI
をテキストエディタで編集します。


TeraTerm マクロを使用しないで自動ログ取得ができます!
こちらを参考にさせて頂きました。が、設定を一部変更して使用しています。

; Binary flag for Send File and Log (on/off)
; ターミナル上の表示内容もログに含めるかどうか
TransBin=off

; Log append (on/off)
; ログを追記モードにするかどうか
LogAppend=on

; plain text flag for Log (on/off)
; ログファイルの形式をプレーンテキストにするかどうか
LogTypePlainText=on

; without transfer dialog flag for Log (on/off)
; ログ記録のダイアログを表示するかどうか
LogHideDialog=on

; Default Log file name. You can specify strftime format to here.
; ログファイル名の形式
; ↓の場合、『20120510-hostname.log』になる。
LogDefaultName=teraterm-%Y%m%d-&h.log

; Default path to save the log file.
; ログファイルの保存ディレクトリ
LogDefaultPath="C:\teratemlog"

; Auto start logging with default log file name.
; サーバー接続時に自動的にログを書き出すかどうか
LogAutoStart=on

こんな感じにしています。


参考URL先で

; timestamp flag for Log (on/off)
; コマンドの実行時間をログに加えるかどうか
LogTimestamp=on

ここをonにされていましたが、私はoffにしています。


LogTimestampをoffにした場合の上記設定では操作ログはこんな感じで残ります。

[tsunokawa@test ~]$ ls -la
total 28
drwx------  3 tsunokawa jedi 4096 May 10 22:00 .
drwxr-xr-x. 3 root    root 4096 May 10 22:00 ..
-rw-------  1 tsunokawa jedi  130 May 10 22:54 .bash_history
-rw-r--r--  1 tsunokawa jedi   18 May 10 23:27 .bash_logout
-rw-r--r--  1 tsunokawa jedi  176 May 10 23:27 .bash_profile
-rw-r--r--  1 tsunokawa jedi  124 May 10 23:27 .bashrc
drwx------  2 tsunokawa jedi 4096 May 10 23:00 .ssh
[tsunokawa@test ~]$ logout

コマンドと実行結果がターミナルの画面そのまま記録されています。


一方LogTimestampをonにした場合はこんな表示になります。

[Thu May 10 22:55:50.297 2012] 
[Thu May 10 22:55:50.327 2012] [tsunokawa@test ~]$ 
[Thu May 10 22:55:51.073 2012] [tsunokawa@test ~]$ 
[Thu May 10 22:55:51.218 2012] [tsunokawa@test ~]$ ls -la
[Thu May 10 22:55:52.181 2012] total 28
[Thu May 10 22:55:52.181 2012] drwx------  3 tsunokawa jedi 4096 May 10 22:00 .
[Thu May 10 22:55:52.182 2012] drwxr-xr-x. 3 root    root 4096 May 10 22:00 ..
[Thu May 10 22:55:52.182 2012] -rw-------  1 tsunokawa jedi  140 May 10 22:55 .bash_history
[Thu May 10 22:55:52.182 2012] -rw-r--r--  1 tsunokawa jedi   18 May 10 23:27 .bash_logout
[Thu May 10 22:55:52.183 2012] -rw-r--r--  1 tsunokawa jedi  176 May 10 23:27 .bash_profile
[Thu May 10 22:55:52.183 2012] -rw-r--r--  1 tsunokawa jedi  124 May 10 23:27 .bashrc
[Thu May 10 22:55:52.184 2012] drwx------  2 tsunokawa jedi 4096 May 10 23:00 .ssh
[Thu May 10 22:55:52.184 2012] [tsunokawa@test ~]$ logout

1個1個のコマンドの実行時間が記録されます。
何時に実行して結果が何分後に返ってきたかどうかなどの記録にいいかもです。
でも、ブログにそのまま実行結果とか貼りたかったのでLogTimestampはoffにしてあります。今のところ。

Evernoteに操作ログを保存

Evernoteのインポートフォルダ機能というものを利用します。
この機能は特定のフォルダ以下のファイルを自動で指定のノートブックへ自動アップロードしてくれる機能です。

超便利!意外と知られていないEvernote for Windowsのインポートフォルダ機能
こちらを参考にさせて頂きました。

WindowsのEvernoteクライアントをインストール後、
操作ログ保存先ノートブックを作成します。

ノートブック作成後、
メニューから[ツール(T)] - [インポートフォルダ(I)]を選択後、
[追加(A)]ボタンをクリックしてログ保存フォルダを選択して、ログ保存先ノートブックを選択することで自動でノートブックへ操作ログがアップロードされるようになりました。


実際の設定画面のキャプチャとMacのターミナルの操作ログ保存方法(検証次第)も後日掲載予定です。