Tera Termの便利な機能(自動ログ採取、ログ表示、ファイル送受信、接続先のリスト表示、同時操作)

# はじめに

これまでWindowsで使うターミナルソフトとして、

* Tera Term
* Putty
* Poderosa

を利用してきました。

最近はTera Termに落ち着いています。
そのTera Termの機能の中で私が日頃よく使っているものを紹介したいと思います。

※設定を紹介するサイトはよくありますが、その設定により有効となる機能をどういうシーンで活用しているかが書かれているサイトはないように思いましたので、その点も書いていきたいと思います。

※今回利用したTera TermはVersion 4.105 です。

* 自動ログ採集 - 作業記録として
* ログ表示 - tailライクに
* リモートファイルの取得 - メニュー操作編
* ローカルファイルの送信 - メニュー操作編
* ローカルファイルの送信 - D&D操作編
* TeraTerm Menu - 接続先のリスト表示
* 複数サーバーの同時操作

# 自動ログ採集 - 作業記録として

サーバーに接続してどのような作業を行ったか、どのようなコマンドの実行結果だったか、を後から確認できるので便利です。(Qiitaの記事を3つほど書いてきましたが、「あ！コマンドの実行結果を取り忘れてた！」というのがあり、記事執筆中にも何回か利用しました)

以下に現在の設定画面を載せます。

![01_TeraTerm_ログ設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/e829a53d-0b04-aab2-ba54-f01caee5b876.png)

主となる設定は以下の通りです。

* ログ表示用エディタ：任意のテキストエディタ
* 標準のログ保存先フォルダ：任意のフォルダ(例：D:\Temp\TeraTerm）
* 自動的にログ採取を開始する：チェック
* タイムスタンプ：チェック

## ログ表示用エディタ

任意のテキストエディタを指定してください。

## 標準のログ保存先フォルダ

任意のフォルダを指定してください。
気が付いた時に溜まったであろう不要ログファイルを削除するために、ここで指定したフォルダをエクスプローラーで表示 → Ctrl+aで全選択 → DELキーで全削除、という使い方をするので専用フォルダが便利かと思います。(私の場合、TEMP環境変数にはD:\Tempを設定しているので、他のTEMPファイルなどと混在させないように専用のTera Termフォルダを切っています)

ログファイルの全削除時に開いている＆出力中のログファイルがあると、当然ながら以下のような警告が出ます。「すべての項目にこれを実行する」をチェックし、「スキップ」押下はいつものこと。
残ったファイル＝＝出力中のログファイル、というのが分かりやすいです。

![01_TeraTerm_ログ削除時の警告.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/8a13879c-e70e-1eb3-9cab-ae6268e48a6b.png)

## 自動的にログ採取を開始する

今回はこの設定が肝になります。
サーバーにSSH接続した瞬間から自動的にログ採集が始まっています。
取り忘れなし。

## タイムスタンプ

ログファイルの各行の先頭にタイムスタンプが出力されるようになります。
ミリ秒も表示されるので、コマンドの所要時間など分かるので便利です。(どこら辺に時間がかかったのかなぁ～とかすぐに分かります)

```Log:
[2021-04-22 17:40:28.996] Welcome to Ubuntu 16.04.7 LTS (GNU/Linux 4.4.0-200-generic x86_64)
[2021-04-22 17:40:28.996] 
[2021-04-22 17:40:28.996]  * Documentation:  https://help.ubuntu.com
[2021-04-22 17:40:28.996]  * Management:     https://landscape.canonical.com
[2021-04-22 17:40:28.996]  * Support:        https://ubuntu.com/advantage
[2021-04-22 17:40:28.996] 
[2021-04-22 17:40:28.996]  * Pure upstream Kubernetes 1.21, smallest, simplest cluster ops!
[2021-04-22 17:40:28.996] 
[2021-04-22 17:40:28.996]      https://microk8s.io/
[2021-04-22 17:40:28.996] 
[2021-04-22 17:40:28.996] 39 個のパッケージがアップデート可能です。
[2021-04-22 17:40:28.996] 0 個のアップデートはセキュリティアップデートです。
[2021-04-22 17:40:28.996] 
[2021-04-22 17:40:28.996] New release '18.04.5 LTS' available.
[2021-04-22 17:40:28.996] Run 'do-release-upgrade' to upgrade to it.
[2021-04-22 17:40:28.996] 
[2021-04-22 17:40:28.996] 
[2021-04-22 17:40:28.996] *** システムの再起動が必要です ***
[2021-04-22 17:40:28.996] No mail.
[2021-04-22 17:40:28.999] Last login: Thu Apr 22 17:18:40 2021 from 192.168.1.50
[2021-04-22 17:40:29.044] root@linux:~# 
```

上記のような操作だけでなく、例えば自分で作ったシェルやプログラムのログをコンソールに出力することで、そのログに対しても付与されることになりますので、計測したい処理のスタートポイントとエンドポイントで適切なログを出力しておくと、その処理の所要時間が分かる、という訳です。

```Text:
[2021-04-22 20:34:22.063] secual@scl-gen:/public/samples$ cat my-script.sh
[2021-04-22 20:34:24.251] #!/bin/bash
[2021-04-22 20:34:24.251] 
[2021-04-22 20:34:24.251] echo "START : my-script.sh"
[2021-04-22 20:34:24.251] sleep 10
[2021-04-22 20:34:24.251] echo "END : my-script.sh"
[2021-04-22 20:34:25.466] secual@scl-gen:/public/samples$ ./my-script.sh
[2021-04-22 20:34:26.372] START : my-script.sh
[2021-04-22 20:34:36.371] END : my-script.sh
[2021-04-22 20:34:36.371] secual@scl-gen:/public/samples$ 
```

# ログ表示 - tailライクに

以下の「ファイル」メニューにある「ログを表示」を選択すると、上記の「ログ設定」画面で設定したテキストエディタで出力中のログファイルを表示することができます。

![02_TeraTerm_ファイルメニュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/6a6a9d5c-204d-f4f2-566d-606cb24cdf81.png)

開いているファイルの更新検知＆再表示機能が付いたテキストエディタなら、リアルタイムに更新される様子を表示することができます。(Linuxのtailコマンドのように)

ただしログの量が多いと更新(ログの流れ)が早いので、その場合は

1. 「ログを表示」を選択(まずはログファイルをテキストエディタで表示)
1. 「ログを終了」を選択(開いたログファイルへの出力を停止)
1. 「ログ...」を選択(ダイアログボックスが表示されるので再度別のログファイルで出力を再開しておく)

と操作してゆっくりログファイルを参照できるようにし、かつ次のログファイルへの出力を開始しています。
「ファイル」メニュー上の「ログを中断」とか「ログダイアログを表示」でも同じような使い方ができると思いますので試してみてください。

ログファイルをリフレッシュする(新しいログファイルで取り直したい)場合も、上記と同じ手順になります。

# リモートファイルの取得 - メニュー操作編

SSHで接続しているサーバー上にあるファイルをローカル(Windows PC)に取得することが可能です。
サーバー上にある複数のファイルをZIP圧縮しそれをローカル(Windows PC)に取ってくる、という使い方が多いです。

上記の「ファイル」メニューにある「SSH SCP...」を選択すると以下のダイアログボックスが表示されます。

![03_TeraTerm_SCP_receiv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/8478a52f-269b-3d22-9108-c7eb8677098b.png)

下の「From:」に取得したいサーバー上のファイルパスを指定、「To:」にローカル(Windows PC)の保存先を指定し、「Receive」ボタンを押下します。

# ローカルファイルの送信 - メニュー操作編

やり方は「リモートファイルの取得 - メニュー操作編」と同じです。
上の「From:」にローカル(Windows PC)に存在し、サーバーに送りたいファイルパスを指定し、「To:」にサーバーの保存先を指定します。

# ローカルファイルの送信 - D&D操作編

サーバーに送りたい場合は、上記のメニュー操作より断然こちらの使い方が多いです。
エクスプローラーからTera Termの画面上にD&D（ドラッグ＆ドロップ）するだけです。

送りたいファイルをD&Dすると、

![04_TeraTerm_DaD_確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/b0f214fe-9d8c-1120-dab2-f9151097f812.png)

のように確認ダイアログボックスが出るので「OK」ボタンを選択します。
すると、以下のようにプログレスバーが表示されます。
100%になってダイアログが閉じれば送信完了です。

![04_TeraTerm_送信中.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/5ede4c6f-d14c-85bf-0d82-f8ddb055ce2b.png)

# TeraTerm Menu - 接続先のリスト表示

管理するサーバーを登録し、素早くログインできるようにしています。
以下の画像はタスクバー上にあるTeraTerm Menuのアイコンを選択して一覧を表示したものです。(ちょっと多すぎてタスクバー上のアイコンさせ見えないのでちょっと分かりにくいですが、、、多ければ、こうなりますってことで)

![05_TeraTerm_Menu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/c5c7857b-c4a2-2d43-91da-91980029ec84.png)

設定画面は以下になります。
「設定内容」を「リスト項目」へ追加したり、一度設定した内容を更新・反映するボタンが「◀」(左向き三角)ボタンになっていたり、「リスト項目」へ登録した項目を削除するボタンが「▶」(右向き三角)ボタンになっていたりするので多少癖がありますが、そこは慣れです。

* 「登録名」が存在していない場合の「◀」(左向き三角)ボタンは新規追加。
* 「登録名」が存在している場合の「◀」(左向き三角)ボタンは更新。
* 「▶」(右向き三角)ボタンは「リスト項目」からの項目削除。

![05_TeraTerm_Menu_設定画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/ae671dcf-c66a-d238-e307-4076d3b09ce1.png)

# 複数サーバーの同時操作

複数のサーバーを同時に操作することができます。
複数のサーバーに接続し、Tera Termウィンドウが複数開いている状態で、以下の「コントロール」－「ブロードキャストコマンド」を選択します。

![06_TeraTerm_コントロールメニュー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/8771c5f5-5727-3096-92ef-db6d8a0f8ea3.png)

すると以下の「ブロードキャストコマンド」画面が表示されます。

![06_TeraTerm_ブロードキャストコマンド.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/212f992e-0313-c3a2-2b15-e659b0b3acfa.png)

このダイアログのリストから操作したいウィンドウのタイトルを複数選択し、上部のテキストボックスを選択した後、キー入力を行うと複数ウィンドウに同じ文字が入力されます。

ちょっと分かりにくいですが、ls -la や date を実行したイメージが以下になります。

![06_TeraTerm_複数操作.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236186/c3136d5c-fb82-feb6-7627-1dc3bf576674.png)

以上、Tera Termの便利な機能の紹介でした！
この記事を読んでいただき、「お、Tera Termを使ってみようかな？」と思っていただけたら嬉しいです。
また、このターミナルソフトでも同じことができるよ、ってことがあれば教えてください。