ENGINEERS' COLUMN
vol.10
公開日:2026/07/16
Tera Term マクロ機能の活用方法について
- サーバ!--li>
- 運用
はじめに
本記事では、Tera Termの機能のひとつであるマクロ機能の活用方法を記載します。
Tera Termについて
Tera Termは、Windowsでサーバーやネットワーク機器を操作するための定番の無料ターミナルエミュレータです。SSHやTelnetによるリモート接続のほか、物理的なシリアルポート接続にも対応しており、インフラエンジニアの必須ツールとして長年愛用されています。
Tera Termマクロについて
Tera Termマクロとは、ターミナルエミュレータである Tera Term 上での操作を自動化するためのスクリプト機能です。 独自のマクロ言語である 「TTL (Tera Term Language)」 を使用して記述され、以下の特徴・メリットがあります。
特徴
- テキスト形式
拡張子は .ttl ですが、中身はテキスト形式のため、メモ帳などのエディタで簡単に作成・編集が可能です。 - インタープリタ方式
プログラムを1行ずつ読み込んで実行する BASIC に似た単純な構造で、プログラミング初心者でも学習しやすいのが特徴です。 - 専用の実行エンジン
Tera Termもしくは、Tera Term本体とは別に用意された Tera Term Macro Interpreterがスクリプトを処理します。
メリット
- ログイン作業の完全自動化
IPアドレス、ユーザ名、パスワードの入力を自動化し、ダブルクリックだけでサーバーにログインできる環境を構築できます。 - オペレーションミス(ヒューマンエラー)の防止
定型的なコマンド操作をマクロに記述しておくことで、手入力による打ち間違いやコマンドの実行漏れを確実に防ぐことができます。
特に、本番環境での設定変更など、ミスが許されない場面で威力を発揮します。 - 作業効率の大幅な向上
複数のサーバーに対して同じコマンドを一斉に実行し、特定のログが出力されるまで待機して次の処理を行うといった、自動制御が可能です。
ログの保存(ロギング開始)も自動化できるため、作業エビデンスの取り忘れもなくなります。 - 手順の標準化と共有
作成したマクロファイルをチーム内で共有すれば、誰でも同じ品質・同じ手順で作業を再現できます。
Tera Termマクロの作成方法
メモ帳等でマクロ言語を入力し、拡張子「.ttl」で保存するだけでTera Termマクロが作成できます。
Tera Termマクロの実行方法
Tera Termマクロは以下のいずれかで実行できます。
- Tera Termマクロ(.ttlファイル)をTera Term Macro Interpreterに関連付けし、ダブルクリックする
- Tera Termを開き、コントロール > マクロ からTera Termマクロ(.ttlファイル)を指定する
Tera Termマクロのサンプル紹介(その1)
以下のマクロを実行すると特定のIPにsshでログインすることができます。
ファイル名:ssh.ttl
; セミコロンはコメントアウトですので、プログラムへの影響はありません
; 以下に接続先IPアドレス、ユーザ名、パスワード情報を入力しておきます
HOSTADDR = '(接続先IPアドレス)'
USERNAME = '(ユーザ名)'
PASSWORD = '(パスワード)'
; sshログインするためのコマンド構文を、strconcatで結合しています
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
; 接続を実行するコマンドです
connect COMMAND
; マクロ処理を終了します
end
Tera Termマクロのサンプル紹介(その2)
マクロを応用すると、以下の様な動作をさせることも可能です。
- ログ保存用のフォルダを作成する
- 接続先IPリスト(ip_list.txt)に対し、順番に以下を実行する
- ssh接続する ※ssh接続できないIPは、エラーを出力しスキップする
- ログ保存用のフォルダにログファイルを生成する
- 接続機器のコマンド結果をログファイルに書き込む
ファイル名:ip_list.txt
(接続先IPアドレス1)
(接続先IPアドレス2)
(接続先IPアドレス3)
ファイル名:ssh_log.ttl
; セミコロンはコメントアウトですので、プログラムへの影響はありません
; ログディレクトリ名に使用する日時を取得します
getdate DATE "%Y%m%d_%H%M%S" ; 日付をDATEに格納
; ログフォルダを作成します
getdir DIR ; マクロのあるディレクトリを取得
sprintf2 LOGFOLDER 'log_%s' DATE ; log_(日付)をLOGFOLDERに格納
foldercreate LOGFOLDER ; LOGFOLDERに格納されている名前でフォルダ作成
; ログイン情報として、接続先のユーザ名、パスワード情報を入力しておきます
USERNAME = '(ユーザ名)'
PASSWORD = '(パスワード)'
; ip_list.txtを読み取り専用で開き、マクロ内で使用できるようにします
fileopen IP_LIST 'ip_list.txt' 0
; 以下のループ処理を実行します
:loop
filereadln IP_LIST HOSTIP ; IP_LISTから1行だけ読み込み、HOSTIPに格納
if result goto fclose ; IP_LISTから読み込める行が無くなったらfcloseへ飛ぶ
call sub ; サブルーチンのsubへ飛ぶ
goto loop ; 再度loop処理の最初に戻る
; サブルーチン(各IPに対して実行する処理)
:sub
; 読み込んだHOST IPにsshログインします
COMMAND = HOSTIP
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
connect COMMAND
; ログイン可否による条件分岐ここから--------
; ログイン失敗時
if result <> 2 then
ERROR = HOSTIP
strconcat ERROR 'のログインに失敗したため、スキップします'
messagebox ERROR 'ログインエラー' ;Tera Termのポップアップでエラーを出力
; ログイン成功時
else
; ログファイルの格納場所とファイル名を指定し、logfilenameに格納します
sprintf2 logfilename '%s\%s\[%s].log' DIR LOGFOLDER HOSTIP
; ログ保存を開始します
logopen logfilename 0 1 1 1 0 0
; 接続先の機器でコマンドを実行します
wait '#' ;#の出力が有るまで待つ
sendln 'terminal length 0' ;コマンドの実行
wait '#' ;#の出力が有るまで待つ
sendln 'show inventory' ;コマンドの実行
wait '#' ;#の出力が有るまで待つ
logclose ;ログファイルを閉じる
sendln 'exit' ;コマンドの実行
; ログイン可否による条件分岐ここまで--------
endif
;操作対象のTeraTermウィンドウから切断します
unlink
;サブルーチンを終了します
return
; クローズ処理をします
:fclose
fileclose IP_LIST ;IP_LISTを閉じる
end ;マクロ処理を終了
ログ取得時の引数について(参考)
ログの書き込みを開始するlogopenコマンドの引数は、Tera Term Version 5.1以降で最大11まで指定可能です。
| 指定順 | パラメータ名 | 設定値の役割 |
|---|---|---|
| 1 | filename | 保存するログのファイル名(パスを含む文字列)または それらが格納されている変数名 |
| 2 | binary | 0: ASCII(改行変換あり) / 1: バイナリ(そのまま記録) |
| 3 | append | 0: 新規上書き / 1: 既存ファイルに追記 |
| 4 | plain text | 0: 制御文字を含む / 1: 制御文字を除去 |
| 5 | timestamp | 0: 無効 / 1: 行頭に時刻を付与 |
| 6 | hide dialog | 0: ログ取得ダイアログを表示 / 1: 非表示 |
| 7 | include screen buffer | 0: 開始後から記録 / 1: 現在の画面バッファも遡って保存 |
| 8 | timestamp type | 0: ローカル時刻 / 1: UTC / 2: ログ開始からの経過時間 / 3: 接続からの経過時間 |
| 9 | rotate | 0: 分割なし / 1: ログローテーション(分割)を有効化 |
| 10 | rotate size | 分割するファイルサイズ(数値。単位は KB) |
| 11 | encoding | 0: システム既定 / 1: UTF-8 / 2: UTF-8(BOM) / 3: SJIS / 4: EUC-JP |
例えば、先程のサンプル”logopen logfilename 0 1 1 1 0 0”で取得する場合は、以下の動作となります。
| 指定順 | パラメータ名 | 設定値および役割 |
|---|---|---|
| 1 | filename | Logfilename(変数名) |
| 2 | binary | 0: ASCII(改行変換あり) |
| 3 | append | 1: 既存ファイルに追記 |
| 4 | plain text | 1: 制御文字を除去 |
| 5 | timestamp | 1: 行頭に時刻を付与 |
| 6 | hide dialog | 0: ログ取得ダイアログを表示 |
| 7 | include screen buffer | 0: 開始後から記録 |
まとめ
Tera Termマクロは、特別な環境・ツールを使用せずに簡易的に自動化を実現することが可能です。ぜひ参考にして頂けますと幸いです。
検証環境
Windows 11 Enterprise Version 24H2
Tera Term Version 5.6.0 x64
※Tera Term は TeraTerm Project の著作物であり、BSDライセンスのもとで配布されています。
※本ページに記載されている社名、製品名などは、一般に各社の表示、商標または登録商標です。
ENGINEERS' COLUMN 記事一覧
-
vol.10
公開日:2026/07/16
Tera Term マクロ機能の活用方法について
Tera Termは、Windowsでサーバーやネットワーク機器を操作するための定番の無料ターミナルエミュレータです。SSHやTelnetによるリモート接続のほか、物理的なシリアルポート接続にも対応しており、インフラエンジニアの必須ツールとして長年愛用されています。
- サーバ!--li>
- 運用
View More
-
vol.9
公開日:2026/05/22
ストレージの設計時に見落としがちなポイント3選
私たちサポートエンジニアは、お客様の機器に故障が発生した場合、復旧を最優先に対応します。一方で、システムが長期的に安定稼働するよう、提案や助言を行うことも重要な役割です。導入済みの機器を主にサポートしていると、時々「このシステムはなぜこのような設計・設定にしたのだろう?」と疑問に思うことがあります。
- ストレージ
View More
-
vol.8
公開日:2026/03/13
Wi-Fi 8は「速さ」から「途切れない」へ Wi-Fi 7との違いと導入判断のポイント
Wi-Fi 7(IEEE 802.11be)の普及がようやく始まったばかりですが、すでに次世代の無線LAN規格であるIEEE 802.11bn(Wi-Fi 8)の標準化作業がIEEE 802.11ワーキンググループにて着々と進んでいます。
- アーキテクチャ
View More
-
vol.7
公開日:2026/02/27
SSLi(SSL Inspection)を活用した際に見えてきた課題とポイント
SSLiは、暗号化されているHTTPS通信を一度復号し、HTTPとして可視化する技術です。これにより、通信内容を内部で確認し、マルウェア検査や不審なアクセスの検知を行うことが可能になります。
- セキュリティ
View More
-
vol.6
公開日:2026/02/16
バックアップの進化 ― ランサムウェア時代に求められる新常識
近年、各種メディアの報道でも取り上げられているように、ランサムウェアによるITシステムへの攻撃は、企業にとって最も深刻な脅威の一つとなっています。被害を受けた場合、サービスの再開には長期間を要するケースも多く、その社会的影響や企業が負うコストは非常に大きいものです。そのため、これまで以上にセキュリティ対策を強化する重要性が高まっています。
- セキュリティ
- 運用
View More
-
vol.5
公開日:2026/01/19
Blast‑RADIUS脆弱性対応に伴うFortiGateのRADIUSクライアント仕様変更とその影
FortiGateは、Fortinetが提供する次世代ファイアウォール(NGFW)であり、ネットワークの境界防御や脅威対策を担うセキュリティ製品として、さまざまな企業・組織で利用されています。CTCテクノロジー株式会社では、FortiGateをはじめとするFortinet製品の保守サポートサービスを提供しています。
- セキュリティ
- 運用
View More
-
vol.4
公開日:2025/12/24
ITインフラ機器のOSのバージョン選定
「ハードウェアのサポート終了はまだ先なのに、そこで動いているITインフラ機器のOS(ファームウェア)のバージョンのサポート期間が終了している」このような話を聞いたことがある(または指摘されたことがある)方も少なくないのではないでしょうか。
- 運用
View More
-
vol.3
公開日:2025/12/10
データセンターに液体?高発熱化するサーバーを冷やす「液冷」とは
“なぜ今、液体なのか?”を起点にDLC(Direct Liquid Cooling:直接液冷)の具体的な仕組み、そしてそれがデータセンターにもたらすメリットについて解説します。
- サーバ
View More
-
vol.2
公開日:2025/11/10
CPU・GPU・DPUの違いと役割のおさらいから多様化するプロセッサの最適利用について
皆さんはCPU・GPU・DPUといったワードをどのくらい頻繁に目にしますか? 近年、サーバーやストレージシステムの設計において「CPU(Central Processing Unit)」だけではなく、「GPU(Graphics Processing Unit)」や「DPU(Data Processing Unit)」といった多様なプロセッサの組み合わせ(もしくはそれらを搭載した製品の利用)がずいぶん一般的になってきたと思います。
- アーキテクチャ
View More
-
vol.1
公開日:2025/10/10
ストレージの容量が解放されない?! ― 確認したい2つのポイント
時々「ファイルを削除したのにストレージの容量が解放されない」といったお問い合わせをいただくことがあります。原因はいくつかあるのですが、一般的によくある原因の2つを紹介します。
- サーバ
- ストレージ
View More



