Quantcast
Channel: 自動ログ取得 | Tera Term(テラターム)の便利な使い方
Viewing all 11 articles
Browse latest View live

Tera Termログ取得-自動ログ取得にタイムスタンプを追加

$
0
0

前回、Tera Term(テラターム)を起動すると自動でログ取得を開始する設定をご紹介しました。⇒ Tera Termログ取得-自動でログ取得を開始する設定

自動ログ設定箇所:「設定」ー「その他の設定」ー「ログタブ」
これは自動取得ログ設定画面

今回は、この自動で取得するログにタイムスタンプを追加する設定方法をご紹介します。

手動でログを取得する際は設定箇所があるのですが・・・
これは手動での取得ログ設定画面

どのようにタイムスタンプが追加されるかというのは、実際のログを見てもらった方が早いと思いますので、当方で取得した操作ログをサンプルとして説明していきます。

スポンサーリンク

通常設定で取得したログ

以下は、TeraTermで接続したサーバ上で、単純に「data」「hostname」コマンドを実行して取得したログになります。

=========================================
[user1@TEST-SERVER ~]$ date
Mon Mar 7 19:26:43 JST 2011
[user1@TEST-SERVER ~]$
[user1@TEST-SERVER ~]$ hostname
TEST-SERVER
[user1@TEST-SERVER ~]$
=========================================

タイムスタンプを追加して取得したログ

それでは、タイムスタンプの設定を加えたログをご覧ください。

============================================
[Mon Mar 07 19:27:28.546 2011] [user@TEST-SERVER ~]$ date
[Mon Mar 07 19:27:30.796 2011] Mon Mar 7 19:27:25 JST 2011
[Mon Mar 07 19:27:30.828 2011] [user@TEST-SERVER ~]$
[Mon Mar 07 19:28:36.156 2011] [user@TEST-SERVER ~]$ hostname
[Mon Mar 07 19:28:39.468 2011] TEST-SERVER
[Mon Mar 07 19:28:43.484 2011] [user@TEST-SERVER ~]$
============================================

見ておわかりの通り、ログの左側に日時等のタイムスタンプが追加されました。

タイムスタンプ追加の設定方法

設定は超簡単。「TERATERM.INI」ファイルを直接編集します。

設定ファイル(インストールフォルダを変更していない場合)
C:\Program Files\teraterm\TERATERM.INI

290行目ぐらいの「LogTimestam」部分を「off → on」に変更し、
設定ファイル(TERATERM.INI)を保存すれば設定完了です。
=============================
; timestamp flag for Log (on/off)
LogTimestamp=off
↓ ↓ ↓
LogTimestamp=on
=============================

おわりに

タイムスタンプを追加しておくと、何時何分にどのコマンドを実行したかというような時系列でのログ調査が可能になります。

作業報告書の作成等で、あのコマンド何時頃に実行したかな?等々、コマンドの実行時刻を後から正確に確認出来たりするのでとても便利な機能です。

是非試しに設定して使用してみてください。


TeraTermマクロ-MACROで設定する自動ログ取得

$
0
0

ここでは、Tera Termマクロコマンド[logopen]を使用した、自動ログ取得方法をご紹介したいと思います。

「設定」メニューの「その他の設定」を選択し「ログ」タブより「自動的にログ採取を開始する」のチェックをいれておくと、接続したサーバの操作ログを自動で記録する事は以前ご紹介致しました。
⇒ Tera Termログ取得-自動でログ取得を開始する設定

自動ログ取得設定画面

ここではこの「自動的にログ採取を開始する」機能をOFFにし、テラタームマクロ側でログ取得を制御します。

上記の設定が有効になっていると、マクロで設定したログ取得よりそちらの設定が優先されますのでご注意ください。(マクロの起動より先に、ログ採取が開始されてしまうため)

その他、マクロの特徴としては、以下のようになっています。

①接続するホスト情報は、ポップアップメニューに入力
②接続ユーザは、固定で設定
③パスワードは初回ログイン時は入力が必要。次回からは入力不要
(ホストに紐付けてます&パスワードはファイルに暗号化して保存されます)

スポンサーリンク

SSH自動ログ取得マクロ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
;================================================= 
; Filename    : ssh_connect-12.ttl 
; Description : SSH Auto login 
; Author      : JUNZOU
; Created     : 2011/04/17 
; modified    : 
;================================================= 
;; ユーザ名設定 
USERNAME = 'ユーザ名' 
;; パスワードファイル指定 
PASSFILE = 'C:\password.dat' 
;; ログ保存先指定 
LOGSPATH = 'C:\logs\' 
;================================================= 
;; ①接続先ホスト情報入力 
inputbox 'Please input an IP address or the host name.' 'Host information input' 
HOSTADDR = inputstr
 
;; ②入力確認(IPアドレス or ホスト名の入力が無い場合終了) 
strlen HOSTADDR 
if result = 0 then 
  messagebox 'Host information is not input.' 'Input error' 
  end 
endif
 
;; ③パスワード取得 
getpassword PASSFILE HOSTADDR PASSWORD
 
;; ④コマンド組立て 
COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
 
;; ⑤ログファイル名の設定 
getdate LOG_NAME '%Y%m%d_%H%M%S_&h.log'
FULLPATH = LOGSPATH 
strconcat FULLPATH LOG_NAME
 
;; ⑥接続 
connect COMMAND
 
;; ⑦接続判定1(接続出来ない場合はメッセージを表示しマクロ終了) 
if result <> 2 then 
  messagebox 'It could not be connected.' 'Connection Error' 
  end 
endif
 
;; ⑧接続判定2(接続して10秒以内にプロンプトが表示されない場合もマクロ終了) 
timeout = 10 
wait '$' '#'
if result = 0 then 
  end 
endif
 
;; ⑨ログ取得開始 
logopen FULLPATH 1 1
 
;; ⑩ホスト名表示 
sendln 'hostname' 
wait '$' '#'
 
;; ⑪マクロ終了 
end

マクロ内容の解説

①接続先ホスト入力

接続先ホスト入力部分では、入力ダイアログボックスを表示し、IPアドレス、またはホスト名(DNSで名前解決が必要)を入力します。 接続ホスト情報入力画面 

②接続先ホスト入力確認

接続先ホスト入力確認では、何も入力しないで「OK」が押されていないかの確認を行っています。何も入力されていない場合は、エラーを表示しマクロを終了させています。
接続ホスト入力エラーポップアップ

③パスワード取得

パスワード取得では、接続する対象ホストに対するパスワードを[getpassword]コマンドでパスワードファイルより読み込みを行っています。

[getpassword]コマンドの書式(△はスペースです)
getpassword△暗号化ファイル名△パスワード識別子△文字列変数

接続するホストに紐づくパスワードが保存されていない場合は、パスワードを入力するポップアップが表示されます。
パスワード入力ダイアログボックス

一度パスワードを入力すると、パスワードが指定したファイルに暗号化して保存され、次回からパスワードの入力無しでログインできるようになります。

ファイルの中身にはこんな感じで保存されています。
=================================
[Password]
123.123.123.123=8<pP<&0He~r6N2e0o=0_Iyy:
=================================

④コマンド組立て/⑥接続

⇒ コマンド組立て・接続のエリアの解説はこちらを参照

⑤ログファイル名の設定

ログファイル名の設定部分では、保存するログファイル名の文字列及び保管するファイルのフルパスを作成しています。

[getdate]コマンドで、その時点の日付・時刻(秒まで)を取得し、「YYYYMMDD_HHMMSS_ホスト名.log」の形式で変数「LOG_NAME」に代入してます。

また[strconcat]コマンドを使用し、変数「LOG_FILE」にログファイルのフルパスを指定しています。

最終的に以下のようになります。

C:\logs\YYYYMMDD_HHMMSS_ホスト名.log

フルパスを指定しない場合は「changedir」コマンドを使用し、書き込むディレクトリに移動してログ取得を開始する事も可能です。

⑦接続判定1/⑧接続判定2

⇒ 接続判定のエリアの解説はこちらを参照

⑨ログ取得開始

[logopen]コマンドでログ取得を開始します。

[logopen]コマンドの書式(△はスペース)
logopen△ファイル名△<binary flag>△<append flag>

<binary flag> 解説
値が0のとき、受信した漢字、改行文字は変換されてファイルに書き込まれる。値が0以外のとき、受信した文字をすべてそのままファイルに書き込む。

<append flag> 解説
値が0で、ファイルがすでに存在する場合、そのファイルは上書きされる。値が0以外で、ファイルがすでに存在する場合は、そのファイルに追記して書き込む。

⑩ホスト名表示

TTLコマンド[sendln]を使用し、接続ホストへ実行コマンドを送信しています。コンソール上で[hostname]コマンドを実行しています。

⑪マクロ終了

自動ログインが完了するとマクロ機能を終了します。マクロを終了してもセッションは維持され、通常のコンソール操作を継続できます。

おわりに

TeraTermログ取得-取得しているログにコメントを追加

$
0
0

Tera Term(テラターム)で、コンソール上の操作ログを取得するには、私の知る限り以下の4通りの方法があるのではないでしょうか?

  1. 「ファイル」メニューから「ログ」を選択し、手動でログを取得開始する方法
  2. 「設定」メニューから「その他の設定」を選択し「ログ」タブから自動ログ取得を設定し取得する方法
  3. Tera Termのマクロ機能を使ってのログ取得方法
  4. BATファイルで起動する際にログを指定(取得)する方法

ここでは、これらの方法で取得しているログファイルの途中に、ちょっとした操作でコメントを付加する方法をご紹介したいと思います。

「ここは後で再確認」とかのコメントをログに付加しておく事で、作業後取得したログを見直す場合に、チェックしたい箇所が見つけやすくなるなど、かなり重宝する機能ではないかと思っています。

「ログにコメントを付加」機能、かなり便利ですので、是非ご活用ください。

ログにコメントを追加(ログが取得中である事を前提としています)

「ファイル」メニューから「ログにコメントを付加」を選択します。
「ファイル」から「ログにコメントを付加」を選択

コメントを入力する画面が表示されますので、付加したいコメントを入力し「OK」をクリックします。
「ログにコメントを付加」画面でコメント追加

これで取得しているログファイルに、入力したコメントが付加されます。

コメント付加例

「df」コマンドを実行後に「********** ここが重要 **********」のコメントを付加し、その後もう一度「df」コマンドを実行してみました。

するとログには、以下のように記録されていました。 
コメントが付加されたログの中身

操作中にログの中身をみたい場合

「ファイル」メニューから「ログを表示」を選択します。「ファイル」メニューから「ログを表示」を選択

すると取得中のログが表示されます。
「ファイル」メニューから「ログを表示」結果

おわりに

コメントの付加機能は、後から取得したログを確認する際に重宝する機能です。大事な箇所にコメントを付加しておく事で、後から見直す際にかなり便利になってくる機能です。是非ご活用ください。

TeraTerm自動ログ取得マクロ-ログ整理版(年月別)

$
0
0

Tera Term(テラターム)のマクロ機能等で、自動ログ取得設定を行っていると、いつの間にかフォルダにログが溜まってしまい、いざ必要な時にログファイルが見つからない事があります。

ここでは、自動で取得するログを整理(保存先を操作)する方法をご紹介したいと思います。

指定のフォルダ配下に、年月(201110)フォルダを自動で作成し、取得したログを年月別に整理して保存していきます。(過去ログを整理・圧縮するのも楽になりますね)
 年月別にログを整理

マクロでログ取得を制御しますので、「設定」メニューから「その他の設定」を選択し「ログ」タブより「自動的にログ採取を開始する」のチェックは外しておいてください。

その他の機能の特徴としては、以下のようになっています。

  1. 接続するホスト情報はメニューから入力
  2. 接続ユーザは固定で設定
  3. 初回ログイン時は、パスワード入力が必要。次回からはパスワード入力無しでログイン。(パスワードはファイルに暗号化して保存)
  4. ログは指定のフォルダ配下に、年月(例201110)フォルダを作成して保存
スポンサーリンク

SSH自動ログ取得マクロ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
;=================================================
; Filename    : Log-arrangement_01.ttl
; Description : Auto login & Log save with teraterm
; Author      : JUNZOU
; Created     : 2011/10/10
; modified    : 
;=================================================
;; ログ保存場所指定
LOG_PATH = 'C:\teraterm\'
;; ユーザ名指定
USERNAME = 'ユーザ名'
;; パスワードファイル指定
PASSFILE = 'C:\password.dat'
;=================================================
;; ①接続先ホスト名 or IPアドレス入力
inputbox '[Hostname] or [IP Address]' 'Please input the hostname or an IP address.'
HOSTNAME = inputstr
 
;; ②入力確認(ホスト名 or IPアドレスの入力が無い場合は終了)
strcompare HOSTNAME ''
if result = 0 then
    messagebox 'The hostname or IP address is not input.' 'Input error'
    end
endif
 
;; ③パスワード取得 
getpassword PASSFILE USERNAME PASSWORD
 
;; ④ログファイル保存フォルダの設定
LOG_FILE = LOG_PATH
getdate DIR_NAME '%Y%m'
strconcat LOG_FILE DIR_NAME
 
;; ⑤ログ保存フォルダの存在確認(無ければ作成:作成失敗は終了)
foldersearch LOG_FILE
if result = 0 then
    foldercreate LOG_FILE
    if result <> 0 then
        messagebox 'A folder could not be made.' 'Making error'
        end
    endif    
endif
 
;; ⑥ログファイル名の設定
getdate LOG_NAME '\%Y%m%d_%H%M%S_&h.log'
strconcat LOG_FILE LOG_NAME
 
;; ⑦SSH接続コマンド作成
COMMAND = HOSTNAME
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
 
;; ⑧SSH接続
connect COMMAND
 
;; ⑨接続出来ない場合はメッセージを表示し終了
if result <> 2 then
    messagebox 'It could not be connected.' 'Connected error'
    end
endif
 
;; ⑩10秒以内にプロンプトが表示されない場合終了
timeout = 10
wait '$' '#'
if result = 0 then
    disconnect
    end
endif
 
;;⑪ログ取得開始
logopen LOG_FILE 1 1
sendln 'hostname'
wait '$' '#'
 
;; ⑫マクロ終了
end

マクロ内容の解説

①接続先ホスト入力

接続先ホスト入力エリアでは、入力ダイアログボックスを表示し、接続先ホストのIPアドレス、またはホスト名(名前解決が必要)を入力します。
接続先ホスト情報入力ダイアログボックス

②接続先ホスト入力確認

ホスト入力確認エリアでは、何も入力しないで「OK」を押してないかの確認を行っています。何も入力されていない場合は、以下のエラーを表示しマクロを終了します。
入力エラーポップアップ

③パスワード取得

パスワード取得では、接続する際の対象ホストに対するパスワードを[getpassword]コマンドで指定したパスワードファイルより読み込みを行っています。

[getpassword]コマンドの書式(△はスペース)
getpassword△ファイル名△パスワード識別子△文字列変数

接続するユーザ名に紐付くパスワードが保存されていない場合、パスワードを入力するメニューが表示されます。
パスワード入力画面

一度ログインするとパスワードが指定したファイルに暗号化して保存され、次回からパスワードの入力無しでログインできるようになります。

ファイルの中に、こんな感じで保存されています。
=====================================
[Password]
Eb&x~82e)hzOU">test-user=J@t’14>Eb&x~82e)hzOU!
=====================================

④ログファイル保存フォルダの設定

ログファイルの保存先のフルパスを設定します。

変数「LOG_FILE」に、[strconcat]コマンドを使用し文字を継ぎ足していく事で保存先フォルダの文字列を作成しています。

[getdate]コマンドを使用し、年月(201110)の文字列を作成しています。

変数「LOG_FILE」には、「C:\teraterm\201110」のような文字列がセットされます。

⑤ログ保存フォルダの存在確認(無ければ作成:作成失敗は終了)

[foldersearch]コマンドで、項番④で作成したフォルダが存在するかを確認し、存在しない場合は、フォルダを作成します。

⑥ログファイル名の設定

ログファイル名の設定部分では、保存するログファイル名の文字列、及び保管するファイルのフルパスを作成しています。

[getdate]コマンドで、その時点の日付・時刻を取得し、「YYYYMMDD_HHMMSS_ホスト名.log」の形式で変数「LOG_NAME」に代入してます。

また[strconcat]コマンドを使用し、変数「LOG_FILE」にログファイルのフルパスを指定しています。最終的に以下のようになります。

C:\logs\YYYYMMDD_HHMMSS_ホスト名.log

フルパスを指定しない場合は「changedir」コマンドを使用し、書き込むディレクトリに移動してログ取得を開始する事も可能です。

⑦コマンド組立て/⑧接続

⇒ コマンド組立て・接続のエリアの解説はこちらを参照

⑨接続判定1/⑩接続判定2

⇒ 接続判定のエリアの解説はこちらを参照

⑪ログ取得開始

[logopen]コマンドで、ログ取得を開始します。

[logopen]コマンドの書式(△はスペース)
logopen△ファイル名△<binary flag>△<append flag>

<binary flag>
値が0のとき、受信した漢字、改行文字は変換されてファイルに書き込まれる。値が0以外のとき、受信した文字をすべてそのままファイルに書き込む。

<append flag>
値が0で、ファイルがすでに存在する場合、そのファイルは上書きされる。値が0以外で、ファイルがすでに存在する場合は、そのファイルに追記して書き込む。

⑫マクロ終了

自動ログインが完了するとマクロ機能を終了します。マクロ機能が終了しても接続したセッションは維持され、継続してコンソール操作が可能です。

TeraTerm自動ログ取得マクロ-ログ整理版(ホスト別)

$
0
0

Tera Termマクロ等で自動ログ取得設定を行っていると、いつの間にかログが溜まってしまい、いざ必要な時に対象のログファイルが見つからない事が多々あります。

そこでここでは、自動で取得するログを整理(保存先を操作)する方法をご紹介したいと思います。 前回の『Tera Term自動ログ取得マクロ-ログ整理版(年月別)』の応用版になります。

指定のフォルダ配下に、接続時に入力する「ホスト名 or IPアドレス」のフォルダを自動で作成し、取得したログを、ホスト別に整理して保存していきます。下記例では、IPアドレスで接続し、IPアドレスのフォルダが作成されています。 
 ホスト別にログを保管整理

マクロ側でログ取得を制御しますので、「設定」メニューから「その他の設定」を選択し、「ログ」タブより「自動的にログ採取を開始する」のチェックは外しておいてください。

その他の機能の特徴としては、以下のようになっています。

  1. 接続するホスト情報はメニューから入力
  2. 接続ユーザは固定で設定
  3. パスワードは初回ログイン時は入力が必要。次回からはパスワード入力無しでログイン。(パスワードはファイルに暗号化して保存)
  4. ログは指定のフォルダ配下に、ホスト名(IPアドレス)のフォルダを作成し整理して保存
スポンサーリンク

SSH自動ログ取得マクロ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
;=====================================================
; Filename    : Log-arrangement_02.ttl
; Description : Auto login & Log save with teraterm
; Author      : JUNZOU
; Created     : 2011/10/16
; modified    : 
;=====================================================
;; ログ保存場所指定
LOG_PATH = 'C:\teraterm\'
;; ユーザ名指定
USERNAME = 'ユーザ名'
;; パスワードファイル指定
PASSFILE = 'C:\password.dat'
;=====================================================
;; ①接続先ホスト名 or IPアドレス入力
inputbox '[Hostname] or [IP Address]' 'Please input the hostname or an IP address.'
HOSTNAME = inputstr
 
;; ②入力確認(ホスト名 or IPアドレスの入力が無い場合は終了)
strcompare HOSTNAME ''
if result = 0 then
    messagebox 'The hostname or IP address is not input.' 'Input error'
    end
endif
 
;; ③パスワード取得 
getpassword PASSFILE USERNAME PASSWORD
 
;; ④ログファイル保存フォルダの設定
LOG_FILE = LOG_PATH
strconcat LOG_FILE HOSTNAME
 
;; ⑤ログ保存フォルダの存在確認(無ければ作成:作成失敗は終了)
foldersearch LOG_FILE
if result = 0 then
    foldercreate LOG_FILE
    if result <> 0 then
        messagebox 'A folder could not be made.' 'Making error'
        end
    endif    
endif
 
;; ⑥ログファイル名の設定
getdate LOG_NAME '\%Y%m%d_%H%M%S_&h.log'
strconcat LOG_FILE LOG_NAME
 
;; ⑦SSH接続コマンド作成
COMMAND = HOSTNAME
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
 
;; ⑧SSH接続
connect COMMAND
 
;; ⑨接続出来ない場合はメッセージを表示し終了
if result <> 2 then
    messagebox 'It could not be connected.' 'Connected error'
    end
endif
 
;; ⑩10秒以内にプロンプトが表示されない場合終了
timeout = 10
wait '$' '#'
if result = 0 then
    disconnect
    end
endif
 
;;⑪ログ取得開始
logopen LOG_FILE 1 1
sendln 'hostname'
wait '$' '#'
 
;; ⑫マクロ終了
end

マクロ内容の解説

①接続先ホスト入力

接続先ホスト入力では、入力ダイアログボックスを表示し、接続先ホストのIPアドレス、またはホスト名(名前解決が必要)を入力します。
接続先ホスト情報入力 

②接続先ホスト入力確認

ホスト情報入力確認では、何も入力しないで「OK」を押してないかの確認を行っています。未入力の場合は、以下のエラーを表示しマクロを終了します。
ホスト情報入力エラー画面

③パスワード取得

パスワード取得エリアでは、接続する際の対象ホストに紐付くパスワードを[getpassword]コマンドを使用し、パスワードファイルより読み込みを行っています。

[getpassword]コマンドの書式(△はスペース)
getpassword△[ファイル名]△[パスワード識別子]△[文字列変数]

接続するユーザ名にひもづくパスワードが保存されていない場合は、パスワードを入力するメニューが表示されます。
パスワード入力画面

一度ログインするとパスワードが指定したファイルに暗号化して保存され、次回からパスワードの入力無しでログインできるようになります。

こんな感じで保存されています。
==================================
[Password]
Eb&x~82e)hzOU">test-user=J@t’14>Eb&x~82e)hzOU!
==================================

④ログファイル保存フォルダの設定

ログファイルの保存先のフルパスを設定します。

変数「LOG_FILE」に[strconcat]コマンドを使用し文字を継ぎ足していく事で、保存先フォルダの文字列を生成しています。

まず変数「LOG_FILE」に「LOG_PATH」をセットし、「strconcat LOG_FILE HOSTNAME」でホスト名(IPアドレス)を追加しています。

最終的に変数「LOG_FILE」には「C:\teraterm\111.222.333.444」のような文字列がセットされます。

⑤ログ保存フォルダの存在確認(無ければ作成:作成失敗は終了)

[foldersearch]コマンドで、項番④で作成したフォルダが存在するかを確認し、存在しない場合は、フォルダを作成します。

⑥ログファイル名の設定

ログファイル名の設定部分では、保存するログファイル名の文字列、及び保管するファイルのフルパスを作成しています。

[getdate]コマンドで、その時点の日付・時刻を取得し、「YYYYMMDD_HHMMSS_ホスト名.log」の形式で変数「LOG_NAME」に代入してます。

また[strconcat]コマンドを使用し、変数「LOG_FILE」にログファイルのフルパスを指定しています。最終的に以下のようになります。

C:\teraterm\YYYYMMDD_HHMMSS_ホスト名.log

フルパスを指定しない場合は「changedir」コマンドを使用し、書き込むディレクトリに移動してログ取得を開始する事も可能です。

⑦コマンド組立て/⑧接続

⇒ コマンド組立て・接続のエリアの解説はこちらを参照

⑨接続判定1/⑩接続判定2

⇒ 接続判定のエリアの解説はこちらを参照

⑪ログ取得開始

[logopen]コマンドで、ログ取得を開始します。

[logopen]コマンドの書式(△はスペース)
logopen△[ファイル名]△<binary flag>△<append flag>

<binary flag>
値が0のとき、受信した漢字、改行文字は変換されてファイルに書き込まれる。値が0以外のとき、受信した文字をすべてそのままファイルに書き込む。

<append flag>
値が0で、ファイルがすでに存在する場合、そのファイルは上書きされる。値が0以外で、ファイルがすでに存在する場合は、そのファイルに追記して書き込む。

⑫マクロ終了

自動ログインが完了するとマクロ機能を終了します。マクロ機能が終了してもセッションは維持され、継続してコンソール操作が可能です。

テラタームの自動ログローテーションについて考える!

$
0
0

先日、Tera Term(テラターム)のログ取得&ローテーションについて、以下のようなご質問をいただきました。

サーバ等に接続し取得しているログを一定間隔(日付等)でローテーションさせたい。接続をやり直すのは不可で、起動(接続)したまま人が操作することなくファイルを分割して保存したい。との事でした。

ちょっと考えてみましたが、当初Tera Termマクロの機能だけではちょっと無理かなと考えていました。

マウス・キーボードの操作を記録・再生できるようなPC自動化ソフトと組み合わせて実行すれば可能かと思っていたのですが・・・。

自己解決されたみたいで、実施内容を教えてもらうと・・・

Tera Termマクロの中で周期的に日時を比較し、日付が変わるとログファイルを再作成するようにしたとの事。

「周期的」にがキーワードでした。

私が作ったこれまでのマクロは、見てもらったらわかりますがサーバ等に接続してログ取得を開始するとマクロを終了するものが多くを占めています。これが原点にあったので頭でっかちになってたんですね。

結局以下のマクロで実現可能でしたので、ご参考までにご紹介します。

「そんなの簡単に出来るやん」とか言いっこ無しでお願いしますね。

サンプルでは、1時間単位にログローテーションさせています。
日単位にする場合は比較部分を修正する事で実現可能となっています。

スポンサーリンク

自動ログローテーションマクロ(時刻単位でローテーション版)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
;============================================ 
; Filename    : log_rotation.ttl 
; Description : Auto Log Rotation 
; Author      : daihakuriki 
; Created     : 2012/11/10 
; modified    : 
;============================================ 
;; 接続先ホスト/ユーザ名/パスワード設定
HOSTNAME = '192.168.xxx.xxx'
USERNAME = 'ユーザ名’ 
PASSWORD = 'パスワード'
;; ログ保存先指定 
LOGSPATH = 'C:\logs\’ 
;============================================ 
;; ①SSH接続
COMMAND = HOSTNAME
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND strUSERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND strPASSWORD
connect COMMAND
if result != 2 then
    messagebox 'It could not be connected.' 'Connected error'
    end
endif
 
;; ②初期値設定
logstamp = '2012010101'
str2int intlogstamp logstamp
 
;; ③無限ループ開始
while 1
    ;; ④現在の時刻を取得し文字列を整数値に変換
    getdate nowdate '%Y%m%d%H'
    str2int intlogdate nowdate
    ;; ⑤ログを取得し始めた時刻と現在時刻を比較し
    ;;   時刻が変わっていればログファイル名を設定
    if intlogstamp != intlogdate then
        strLOG_FILE = LOGSPATH
        getdate strLOG_NAME '&h_%Y%m%d_%H%M%S.log'
        strconcat strLOG_FILE strLOG_NAME
        ;; ⑥一応ログ取得状態を確認
        ;;   ログ取得中であれば一旦ログをクローズ
        loginfo temp
        if result != -1 then
            logclose
        endif
        ;; ⑦新しいログファイル名でログ取得開始
        logopen strLOG_FILE 0 0
        ;; ⑧現在の時刻を変数[logstamp]にセット
        getdate logtime '%Y%m%d%H'
        str2int intlogstamp logtime
    endif
    ;; ⑨所定時間待機(1分・・・60 10分・・・600)
    pause 60
endwhile

マクロ内容の解説

今回は①SSH接続部分の説明は割愛させていただきます。
下記サイトでご確認ください。
Tera Termマクロサンプル-SSH自動ログイン(接続情報固定版)

②初期値を変数[logstamp]に設定。
「str2int」コマンドで文字列を整数値に変換しています。
ここではとりあえず 2012年1月1日1時を設定しています。

③無限ループを使用し、強制終了をかけない限り繰り返し処理を実行。

④現在の時刻を取得し、文字列から整数値に変換。

⑤取得開始した時刻と現在の時刻を比較し、時刻が進んでいれば
ログファイル名を変数[strLOG_FILE]に設定。(1時→2時とか)

⑥「loginfo」コマンドで念のためログ取得状態を確認し、ログ取得中であれば一旦ログ取得を停止。

⑦新しいログファイル名でログを取得開始します。

⑧比較対象の時刻を変数[logstamp]にセットします。

⑨一定時間毎に時刻の変化をチェックするため、所定時間待機します。

おわりに

またTera Termで取得したログの最大サイズを確認してみました。

OS(Windows)の仕様にもよると思いますのでご参考まで。

Windows7(32bit) 4194304KB
WindowsXP(32bit)4194304KB

最大4GBまでログのサイズが増加していましたが、このサイズになるとテキストエディタでは絶対に開けませんよね。(笑)

ほどほどのサイズでログローテーションが必要ですね。

TeraTermマクロでログローテーション実装 バージョン4.78からです!

$
0
0

以前、TeraTerm(テラターム)で取得しているログの、ローテーションについて質問を受けた事があります。

サーバ等に接続して取得しているログを一定間隔(日付等)でローテーションさせたい。接続をやり直すのでは無く、起動(接続)したまま人が操作することなくログを分割して保存したい。

その時は、苦肉の策でしたが「while endwhile」のループ処理と「pause」を併用して、何とか希望通りの動作を行なう事ができました。
⇒ テラタームの自動ログローテーションについて考える!

そんなやり取りを「Tera Term開発プロジェクト」のゆたかさんが観てくれていて、次期バージョン(4.78)からログローテーションコマンド「logrotate」が追加される事になりました。(感謝!)

使い方はいたって簡単。

「logopen」した後に、「logrotate」で設定を追加するだけです。

それでは、設定パラメータを見ていきましょう!

「logrotate」には3つのパラメータが存在します。

①ログのサイズでローテーションを行なう<size>パラメータ

サイズは、バイト・キロバイト・メガバイト単位で設定可能です。

設定例)
logopen ‘teraterm_sample.log’ 0 0
logrotate ‘size’ ’32K’ ←32Kバイト毎にログを分割する場合
(途中いろんな処理)
logclose

*注意
<size>パラメータに設定するサイズの指定では、K・Mを大文字
設定してください。小文字の場合エラーとなりますので要注意です!

実際に使用してみると、ログファイルの後ろに.(ドット)数字が追加され
追加された数字の若番の方が新しい(最近の)ログになります。
ログの最後に.(ドット)連番が追加


②ログファイルの世代数の設定を行なう<rotate>パラメータ

ログファイルの世代数を設定する事が可能となっています。

設定例)
logopen ‘teraterm_sample.log’ 0 0
logrotate ‘size’ ‘1M’
logrotate ‘rotate’ 5 ←5世代ログを保存しておく場合
(途中いろんな処理)
logclose

実際に使用してみると、ログファイルの後ろに.(ドット)数字が追加され
追加された数字の若番の方が新しい(直近の)ログになります。
若番の方が新しい(直近の)ログ


③ログローテーションを停止する<halt>パラメータ

単純にログローテーションの設定を停止します。

使用例)
logopen ‘teraterm_sample.log’ 0 0
logrotate ‘size’ ‘1M’
logrotate ‘rotate’ 5
(途中いろんな処理)
logrotate ‘halt’
(何かの処理)
logclose

欲を言うと

ちょっと欲を言うと「その他の設定」-「ログ」タブの設定からも
ログローテーションの設定が可能となればさらに便利になりますね!
ログローテーションの未来予想図

まあ設定ダイアログからの設定で出来るようにする案も検討されている
みたいなので、後継バージョンでの実装を期待して待ちましょう。


いつも新しい便利な機能を追加してくれる

Tera Term開発プロジェクトメンバーに感謝です!


現在、開発版のスナップショットでこの機能を試すことが出来ます。
http://ttssh2.sourceforge.jp/snapshot/

本リリース前の開発版なので、本リリース版より気持ち不安定なことがあるかも知れませんが、興味のある方は試してみては如何でしょうか!

タスクバーに「TeraTerm:ログ」←ログ転送ダイアログが邪魔なので表示したくない!

$
0
0

先日会社の同僚より、TeraTerm(テラターム)でサーバに接続した際にタスクバーに表示される「TeraTerm:ログ」のログ転送ダイアログを表示させないようにしたいとの相談を受けました。
タスクバーのTeraTermログ転送ダイアログ

確かに多くのサーバに接続して作業する場合は、ちょっと邪魔なんですよね!

表示させないようにする設定はいたって簡単。

設定ファイル(TERATERM.INI)の以下部分を修正する事で、表示されない様になります。(デフォルトはoffなので、onに変更します)
=================================
; without transfer dialog flag for Log (on/off)
LogHideDialog=off

LogHideDialog=on
=================================

まあこれで解決したのですが、よくよく考えてみると・・・

スポンサーリンク

手動でログ取得を開始する場合

まずは手動でログ取得を開始する場合。ご存じの通り「ファイル」メニューから「ログ」を選択すると「TeraTerm:ログ」画面が表示されます。
設定メニューからログを選択

「TeraTerm:ログ」の画面で、保存先・ファイル名を設定し「保存」を選択する事でログの取得が開始されます。
手動ログ取得設定画面

しかしよく見てください!

オプション部分に「ダイアログを非表示」の選択項目が存在します。

手動でログ取得を開始する際は、このチェックボックスを選択しておく事で「TeraTerm:ログ」ダイアログを表示しないようにする事が可能です。

マクロコマンド「logopen」で取得する場合

続いて、マクロコマンド[logopen]を利用してログを取得する場合です。

[logopen]を利用してログ取得する場合も、設定オプションがあります。

<hide deialog flag>なるオプションが存在し、0以外を設定しておく事でログ転送のダイアログが表示されないように設定可能です。

しかし自動でログを取得する際には!

では、一番使われているであろう自動ログ取得設定画面では・・・

自動でログ取得を開始する設定画面は、「設定」メニューから「その他の設定」を選択して設定を行います。
設定メニューからその他の設定を選択

「TeraTerm:その他の設定」画面の「ログ」タブより、「自動的にログ取得を開始する」のチェックボックスを選択しておく事で、自動でログの取得が開始されるようになります。(設定後は、設定ファイルの保存をお忘れなく)
log705

また設定項目として「ログ表示用エディタ」「標準ログファイル名」「標準ログ保存先フォルダ」「ログのローテート」といったものがありますが、「ダイアログを非表示」にするといったオプションは存在しないんです!

手動でログを取得する場合、またマクロでログを取得する場合には設定オプションが存在して、TeraTermのログ取得で一番使われているであろう「自動ログ取得設定」の画面には存在しないんでしょうか?

これまで全然気にしてませんでしたが、一体どうしてなんでしょうね?

まあ、この設定項目を多くの方が必要と希望すれば「TeraTermプロジェクト」メンバーの方々が検討してくれる事でしょうが、皆さんこの設定項目って必要だと思いますか???

もしあったら便利とか、皆さんのコメントお待ちしてます!


TeraTermの自動ログ取得ではなく、マクロでログを制御する方法

$
0
0

皆さん。TeraTerm(テラターム)の自動ログ取得設定はされていますか?

一番ポピュラーな設定が「設定」メニューから「その他の設定」を選択。「ログ」タブからログファイル名・ログ保存先を設定して「自動的にログ取得を開始する」をチェックしておく方法ですよね。
「設定」メニューから「その他の設定」を選択 「ログ」タブから自動ログ取得を設定

詳しくは ⇒ Tera Termログ取得-自動でログの取得を開始する設定

サーバ操作を行う上で、操作ログを取得しておく事は非常に重要です。(後からあの時どんなコマンド打っただろうとか、あの時の実行結果はどんな表示だったろうとか見返す事が多々あるからなんです)

しかし時においては、デスクトップ上にログを取りたいとか、自動ログ取得設定ではなく個別に操作したい場合がありますよね。(手動操作の場合は、一旦ログ取得を停止し、再度ログの取得を開始する事で対応可能です)

しかし、TeraTermマクロでログ取得を制御したい場合においては、自動ログ取得を設定していると、そちらが優先(先に開始される)されてしまう為にうまく機能しないんです。

しかしご安心を!

そこでここでは、「設定」-「その他の設定」の「ログ」タブから自動的にログ取得を開始する設定を行っている場合においても、マクロ側で設定した内容(ログの取得場所・ファイル名等々)でログ取得を開始する方法をご紹介したいと思います。

ポイントとしては、サーバ等に接続した際に、ログ取得がなさているかを判別し、取られている場合は一旦ログ取得を停止し再度マクロ側の制御で「デスクトップ」にログ取得を開始するって感じです。

それでは設定方法を確認していきましょう。

スポンサーリンク

自動ログ取得設定を行っていなかがらも、マクロでログ取得を制御

ログを取得しているかどうかの判別は「loginfo(バージョン4.73以降)」コマンドを利用して行います。

具体的には、以下のような記述方法になります。

実行コマンド
loginfo [logfilename]

変数[logfilename]にログファイル名が記録され、ログ取得時のフラグ状態が[result]に格納されます。ログが取得されていない場合は、[result]に「-1」が格納されます。

使用例
loginfo logfilename
if resut == -1 then
   ;; ログは取得はされていないので、そのままログ取得を開始
   logopen "ログファイル名" 0 1
else
   ;; ログが取得中の為、一旦停止してから再度ログ取得を開始
   logclose
   logopen "ログファイル名" 0 1
endif

それではサーバ接続からログ取得開始までのマクロをご紹介します。

パスワード認証のSSH接続での例になります。分かり易いように接続サーバ・ユーザ名・パスワードはTTLファイル内に直書きしています。(セキュリティ的にマズイとかは、言いっこなしでお願いします)

マクロ側でログ取得を制御マクロ

;==============================================
;; ①接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = 'IPアドレス' 
USERNAME = 'ユーザ名'
PASSWORD = 'パスワード'
;==============================================
;; ②ログファイル名の設定(ログフィルのフルパス)
;;;; ②-1、ユーザのデスクトップのパスを取得
getspecialfolder FULLPATH 'Desktop'
;;;; ②-2、ログファイル名を指定
getdate LOG_NAME '\&h_%Y%m%d_%H%M%S.log'
;;;; ②-3、フルパス完成(合体)
strconcat FULLPATH LOG_NAME
 
;; ③SSH接続コマンド作成
COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
 
;; ④サーバ接続
connect COMMAND
 
;; ⑤ログが取得されているかの確認
loginfo logfilename
if resut == -1 then
   ;; ログは取得はされていないので、そのままログ取得を開始
   logopen FULLPATH 0 1
else
   ;; ログが取得中の為、一旦停止してから再度ログ取得を開始
   logclose
   logopen FULLPATH 0 1
endif
 
;; ⑥マクロ終了
end

解説

①接続先ホスト/ユーザ名/パスワード設定

接続ホスト・ユーザ名・パスワード等を変数に設定しています。

②ログファイル名の設定(ログフィルのフルパス)

マクロ内で取得するログファイルのフルパスを指定しています。

ログファイルの保存先は、ユーザの「デスクトップ」を「getspecialfolder」コマンドで取得。ログファイル名はホスト名・日付を指定し、ログファイル名のフルパスを作成します。

例)
C:\Users\ユーザ名\Desktop\IPアドレスorホスト名_年月日_時分秒.log

③SSH接続コマンド作成

SSH接続に必要なコマンドの作成を行っています。

④サーバ接続

「connect」コマンドでサーバーに接続します。

⑤ログが取得されているかの確認

「loginfo」コマンドで、その時点でログ取得されているか確認します。もしログ取得がなされていない場合「result」に「-1」が格納されます。その場合は普通に「logopen」コマンドでログ取得を開始します。

もしログ取得がなされている場合は、その他の数値が格納されますので、一度「logclose」でログ取得を停止します。その後「logopen」コマンドでログ取得を開始します。

⑥マクロ終了

ログ取得が開始されたらマクロを終了します。終了後もセッションは維持され通常の操作が可能です。

おわりに

この方法にも一点問題があります。

それは、一度自動ログ取得が開始されますので、本当に必要なログファイル以外にも不要なファイルが作成されるという事です。

まあこの辺りはあまり気にせず、一度使ってみてください。

TeraTerm自動ログ取得設定部分が更に便利になっていました!(オプション表示追加)

$
0
0

2014年08月31日にリリースされた「Tera Term version 4.84」にて、ログ取得機能が格段とバージョンアップしていました。(もうかなり前にバージョンアップしていた機能の話でスミマセン・・・)
TeraTerm version 4.84 リリース

これまで手動、又はコンフィグ書き換えで設定可能であった、ログのオプション部分「その他の設定」タブに追加されたんです。(「設定」-「その他の設定」から「ログ」タブを選択した画面になります)
設定からその他の設定を選択 その他の設定のログタブにログオプションが追加

選べるオプションは、「バイナリ」「追記」「プレーンテキスト」「タイムスタンプ」「ダイアログを非表示」「現在バッフャを含む」の6項目です。

スポンサーリンク

実はコレ、Tera Termプロジェクトのゆたかさんが、以前書いた記事を読んでくれていてふと疑問に思っていた事を解決してくれたんです。(コメント部参照)⇒ タスクバーに「TeraTerm:ログ」←ログ転送ダイアログを表示したくない!

いつも便利な機能を追加し、使い易いように改修を重ねてくれている「Tera Termプロジェクトメンバー」の方々に感謝です!!!

ちなみに「Tera Term version 4.84」で変更になっていた分は以下の通りです。

変更

  • YMODEM, ZMODEM でファイルを受信したときに、ファイルの更新日時を反映するようにした。
  • Additional settingsダイアログのLogタブで、ログ種別を設定できるようにした。

バグ修正

  • General setupでLanguageUIを変更した際、ヘルプファイルが切り替えできていなかった問題を修正した。
  • マクロ: 最終行の行番号表示が正しくできていなかった問題を修正した。

その他

  • 対応する動作環境にWindows Server 2012 R2を追加した。
  • TTSSH(2.70)へ差し替えた。
  • TeraTerm Menu(1.12)へ差し替えた。
  • TTXResizeMenu Plugin(1.03)へ差し替えた。
  • LogMeTT 2.10.2 へ差し替えた。

Tera Termログ取得-手動でログの取得を開始する設定

$
0
0

Tera Term(テラターム)で、操作ログを取得するには、私の知る限り4通りの設定方法があります。(他にもあるかもしれませんが、もしご存知の方は是非ご教示くださいませ)

①手動でログ取得を開始する方法
②接続すると自動でログ取得を開始する方法
③マクロを使ったログ取得方法
④コマンドラインからログを指定して取得する方法

ここでは一番シンプルな、手動でログ取得を開始する方法をご紹介します。

手動でログ取得を開始する方法

まず最初に、通常通りサーバ等にログインしてください。

続いて「ファイル」メニューから「ログ」を選択します。
「ファイル」メニューから「ログ」を選択

「Tera Term:ログ」画面が表示され、ここでログの保存先やログファイル名の設定を行います。 「バイナリ」「追記」「プレーンテキスト」「タイムスタンプ」「ダイアログを非表示」のオプションもありますので、それぞれ試してみてください。
「Tera Term:ログ」画面で設定

「保存する場所」「ファイル名」部分を入力後に、保存ボタンをクリックするとTeraTermコンソールログの取得が開始されます。

おわりに

サーバに接続する度に、手動でログ設定を行うのは面倒ですよね。

次回は、サーバ等に接続すると自動でログの取得を開始する設定方法をご紹介したいと思います。
⇒ Tera Termログ取得-自動でログの取得を開始する設定

Viewing all 11 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>