データと改行を送信する。 sendln
.... 解説. 自分らがコマンド打つときもコマンドを打ち、プロンプトが返ってきたことを確認し、 teratermマクロ teratermマクロでLINUXへログインしてコマンドの実行結果をマクロの変数に入れたいのですがどうやってもできません。マクロ文sendln ‘ls -ltr | wc -l’recvlnname=inputstrwait ‘#’sendln ‘echo ‘nameechoの結果 「2.TTLファイルをダブルクリックして実行」は気が向いたら作ります。, 今回は「2.踏み台を利用した情報収集」を紹介します。 パスワード変更に対応してみよう に getdirコマンドを使ってログを任意の場所に保存 | ゼロから始めるTera Termマクロ より; 5.2. What is going on with this article? Q TeraTermマクロの文字列結合. TeraTermマクロの自動ログインサンプル. 前提・実現したいことTeratermマクロ for文で異なる名前のラベルを呼び出す処理を行おうとしています。 発生している問題呼び出すラベルを変数として扱うことができません。 該当のソースコードfor i 1 2 label = "label_" int2str i_str i 文字列とそれに続く改行文字をホストへ送信させる。 の形式は、"send"コマンドと同じ。 例; 改行文字だけ送信 sendln sendln 'abc' Password='mypassword' sendln Password 同期モードについては "setsync" を参照。 読み込み終わった後、最後にフィアルクローズすることを忘れずに!, 夜中の特定時刻にマクロを動かしたいときに使うと便利です。 ブリッジ接続なので、IPはいい感じに直してください。. sendln は送信用の関数ですよ 日付を取得する時は getdate 関数を使います ----マクロヘルプの抜粋です---- ;現在の日時を元にしてログファイル名を生成し、変数logfileに格納。 全機器のユーザ、パスワードが同じ前提とします。 後続コマンドが効かず実行漏れすることがありますので、 サクサクッと作れるマクロもあっていいと思うんですよね。 そして調べて作ったのはいいけど、そんな作る頻度多いわけではないのですぐ忘れちゃうのも悲しいところ。, 以下に記載するTeratermマクロを利用する際に必要最低限知っておくべきことを記載。 メニューバーの「ヘルプ(H)」→「目次(I)」で「Tera Term Pro」のヘルプを開き、一番下の方にある「MACROヘルプ」をクリックする。 もしくは、TeraTerm.exeと同じディレクトリにあるmacroj.hlpを実行する。 TTL(Tera Term Language)というのがTeraTermマクロの言語。 TeraTermマクロはラベルを付けることによってサブルーチンを定義できます。 サブルーチンを定義するためには、たとえば次のように書きます。 [crayon-602cfbc284d1b116609943/] 先頭に … ただ単にPingコマンド打つだけなら簡単ですが、試験用証跡としてログを残す際は 数十台ある機器の情報取得となると絶対に漏れたりミスする自信がありますね、こんな時こそマクロです。 マクロのディレクトリにログを保存しよう に 接続先IPも変数にする | ゼロから始めるTera Termマクロ より; 5.1. By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. hostname = "100.100.100.100"log="20101010"という変数をteratermマクロで設定しております。この二つの変数の間に、空白または_(アンダーバー)を一つ入れて "100.100.100.100_20101010"という文字列を作成して、変数に格納するなりした マクロのディレクトリにログを保存しよう に 接続先IPも変数にする | ゼロから始めるTera Termマクロ より; 5.1. ・タイプしEnterを押す=>sendln 「いやそこまではいいよ! もっとシンプルでいい!!」と思うことがあったり。 ログインIDパスワードはデフォルトのvagrantです、鍵なしでパスワード認証でアクセス可能。 sendln ... connect 'IPアドレス:ポート番号(22) /ssh /SSHバージョン(1 or 2) /auth=password /user=ユーザ名 /passwd=パスワード', 上のコマンド、垂れ流すのに非常に便利ですが、ログインホストのタイムアウト値には気をつけましょう。 sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_config boxはcentos/7を利用してます。 ホスト名を載せるためにコメントをコマンドとして入れておくのも有効です。, どちらかというとこちらが本題ですね。 hostname = "100.100.100.100" log="20101010" という変数をteratermマクロで設定しております。 この二つの変数の間に、空白または_(アンダーバー)を一つ入れて "100.100.100.100_20101010" という文字列を作成して、変数に格納するなりしたいので … 次の処理に行くので、それをマクロでも同じようにやります。, めんどくさがってwaitコマンドを抜かしてsendlnコマンド連続でやると、 waitは”(シングルクオーテーション)で囲まれた部分の文字列を待つ命令でしたね。, ログインマクロではsendlnは11行目、13行目、15行目の3回使われている事がわかります。, waitの時は、”(シングルクオーテーション)で囲まれた部分の文字列を待つ、命令でした。, waitと同じように考えてみると、それぞれ’cisco’、’en’、’cisco’という文字列をsendlnしていることがわかります。, もう察しがついていると思いますが、sendlnは”で囲まれた部分の文字列をタイプしてEnterする、という命令を実行してくれるのです。, ここで、一度マクロの事は忘れて、自分で手打ちしたときのログイン手順を思い出してみてください。, Teratermの扱いに慣れている人に説明する場合はこの手順でいいですが、例えば母親にTeratermを触ってもらうというシチュエーションになったらどうでしょうか?もっと分解して記載する必要があります。, ・telnetする=>connect TeraTermマクロ自動ログイン. TeraTermマクロでは変数を使用できます。 変数は各コマンドの引数に使えるので、 mpause の待ち時間指定を変数にしておくと便利です。 この変数は直接サーバでは使えませんが、シェルの変数として設定すればコマンドの内容も可変にできます。 Tera termの logopen logname 0 1というコマンドを使って, マクロの中でログを取得しています。 現在、ホスト名と日付を入れたログファイルを作成するのに timedatectl set-timezone Asia/Tokyo ちなみにコロン(:)はサブルーチンで、処理内の特定の行に飛びたいときに使います。 Help us understand the problem. sendln. hostname = "100.100.100.100"log="20101010"という変数をteratermマクロで設定しております。この二つの変数の間に、空白または_(アンダーバー)を一つ入れて "100.100.100.100_20101010"という文字列を作成して、変数に格納するなりした データを送信する。 前提・実現したいことCisco機器のログ取りおよび設定変更といったオペレーション自動化にあたり、Teratermマクロを使用しています。 ログ取りや設定変更にあたり、下記のような流れで実行しますが、2の部分をユーザ作成の変数と正規表現を組み合わせた処理をしたいです。 コマンドを投入 「host 数台程度ならリストファイル作る必要ないですが、10台超えるとリスト化したほうが効率いいですね。, サクッとしていない行数かもしれませんが、コメント除けば20行前後なのでサクッの許容範囲なはず!, 上のマクロだと、ログファイル名がホスト名.logとなります。 ちなみに拡張子がttlなだけで、形式はテキストファイルと変わりません。, 今回は「1.teratermにTTLファイルを読み込ませて実行」する方法を紹介します、作るのラクですし。 踏み台にログインしてからマクロを実行すると、リストに記載されているホストに対してPing疎通確認を行います。, マクロファイル以外にPingコマンドを送るリストファイルを作成する必要があります。 文字列を表示する (dispstr) dispstr を使えば、TeraTerm アプリケーションの機能として文字列を表示できます。 マクロの実行経過などを表示したい場合などは dispstr を使うのがよいでしょう。. 今後、仕事でサクッと出来たTeratermマクロがあったら追加していこうと思います。, ログインユーザやパスワードから察された方がいるかもしれませんが、検証環境はvagrantで構築しました。 取得日付を入れたい場合、※①の次の処理LOGFILE = ''を以下に書き換えると、yyyymmdd_ホスト名.logとなります。, ファイル名にどのホストに対するPing疎通確認か書いてますが、ログファイル内ではIPアドレスのみでホスト名が載っていません。 Teratermのマクロはお仕事でも使うのでちょっと勉強してみました。なんかもっときれいに書けるような方法もありそうですが、初めて書くのでご愛嬌です。 再利用性とメンテナンス性を考慮して変数を使用しました。 今回書いたマクロの動き 今回は以下の操作を自動化をしています。 … systemctl restart sshd, 1つ目の0(binary flag):0なら受信した漢字や改行文字を変換してファイルに書き込み, you can read useful information later efficiently. 2.マクロ Tips > Tera Tremマクロ > カウントダウンさせる 処理の途中で待ち時間を入れたい場合、単純に"pause"コマンドだけでは使用者に分かりにくことがあります。 パスワード変更に対応してみよう に getdirコマンドを使ってログを任意の場所に保存 | ゼロから始めるTera Termマクロ より; 5.2. TeraTerm実行ファイルとinifile、keyfile、log、passwordは同一フォルダにまとめとく & 変数はTTLにまとめるー Why not register and get more from Qiita? そのときのvagrantfileを参考として載せておきます。 そんな解説よりマクロ見たい!って方は飛ばしてもらって構いません。, マクロ動かすためには、処理を書くファイルが必要です。 基本は直接リモートログインして情報収集する事が多いですが、踏み台を使うことでのメリットもあります。, ただ、1台に対して定期的に情報収集する用途であれば、直接ログインしたほうが早いので、 とはいえ・・・気づいたら結構な量になり「全然サクッとしてねぇ!」と言われそう・・・。 右側の各タイトルを見て興味あるものを掻い摘んでみていただけたらと思います。, なお、ここで紹介するコマンドを組み合わせれば、この後に紹介するマクロを作ることができます。. 月に数回の頻度でストックやLGTM頂けて感謝です、更新の励みになります。 test.txtを読み込み、一行ずつbufへ格納した後、※印部分を繰り返してEOFまで来たら:breakloopに飛ぶ。 ; "ABC" send $41 $42 $43 ; "1" value = $31 send value ; "31" value = $31 sprintf2 command "%02X" value send command /* "CTRL+C"を送るには、以下のように直接"3"を指定する。 5.2. dispstr 'Hello World'#$0A 末尾の #$0A は改行コード (LF) を表しています。. 4台手動で立てるとだるく感じますが、vagrantだとサクッと立ってくれてホントいい子ですね。 用途次第でどっちにするか決めると良いです。, 各コマンドの詳細は後述しますが、基本的に上に書いている通りです。 ログフォーマットが同じ方がいいですよね。, 手動だとだいたいログ設定が抜けたりコメントが抜けたり誤入力したりするので、マクロの出番です。 sendln … マクロ終了時、自動的にログ採取を停止する。 logautoclosemode logclose: Tera Term のログを終了する。 logclose: loginfo: 4.73以降: Tera Term のログ取得状態を得る: loginfo logopen: Tera Term のログを開始する。 漏れないようにするためにも、waitコマンドでプロンプトを待ってから後続処理に行くようにしましょう。, 上の例でもある通り、コメント書きたい時は先頭にセミコロン(;)を入れます (2020.12.15追記)sendlnコマンドにsendコマンドとの違いを補足 ・表示されるのを待つ=>wait, この分解がTeratermマクロの基本であり、文法なのです。分解されたそれぞれの指示を、「connect」や「wait」が実行しているにすぎません。, マクロの基本は、やりたい事の手順を考え、分解し、それぞれの手順に対する命令をTeratermに用意された命令文を使って記述していくということになります。, ・手順を詳細に分解すると、マクロの基礎が出来上がる これが文字列型変数に文字列を代入するときの決まりでした。 では「これは"文字列"です」とダブルクォーテーション記号で囲んだ言葉を含む文字列を代入させる場合は、どうすればいいで … (1時間おきに実行してたらタイムアウト値5分でタイムアウトしちゃう等、よくやっちゃいますね!!), 上のようなことを回避するため、タイムアウト値未満の時間間隔で空エンター入れるといい感じです。, 基本は上のコードで事足ります。 関連ダイアリー 一般的な TeraTerm マクロの使い方 - KuroNeko666’s blog ttl ファイルを保存する方法 さて、マクロ自体の基本的な使い方*1を書いたので、今度は作り方を書く前に、保存の方法を。 TeraTerm マクロは、テキストエディタで編集するテキストファイル。 Teratermのマクロ作成。第2弾。sqlplusでテーブル参照をし続けるマクロ。ちゃんと動きますよ。,システムエンジニアとして、仕事をしながら学んだ使える技術をピンポイントで技術ノートとして少しずつ残していきたいと思います。同業者の方のお役に立てればと思っております。 まとめた「Show_host.list」を作成してからマクロを実行します。, インターネット上では有志による素晴らしいマクロがある一方で、 機器によってユーザパスワードが違うパターンは・・・気が向いたら作ります。, Pingのときと同様、踏み台にログインして取得ホスト、IPアドレスを (2020.12.02追記)ログイン処理関係追記しました そんなときネットで検索しても凝ったものが多くて 5.2. send 'ABC' ; "ABC" を送信させる。("A" の ASCII コードは65) send 65 66 67 myname='Tera Term' send 'My name is ' myname '.' (2020.07.02追記)getdateについて追加しました, teratermで各サーバやNW機器の情報取得するとき、マクロでサクッと取りたいときってあると思います。 500ms間隔で時刻をチェックし、特定時刻と一致したら、当該処理を実行するようになっています。, NW機器構築の際、複数台の機器に対してPing疎通確認を行うことがあると思います。 Teratermで各サーバやNW機器の情報取得するとき、マクロでサクッと取りたいときってあると思います。 そんなときネットで検索しても凝ったものが多くて 「いやそこまではいいよ! もっとシンプルでいい!!」と思うことがあったり。 そして調べて作ったのはいいけど、そんな作る頻度多いわけではないのですぐ忘れちゃうのも悲しいところ。 なので、必要最低限の知識で作れるマクロの紹介です。 コメント用の記号、なんだったかすぐ忘れがち。, とりあえずここらへん知っておくとマクロ作るのに役立てるコマンドを簡単に紹介します。 それがTTLファイル(xxx.ttl)です。 ・手順を詳細に分解したものをTeratermマクロの命令文に置き換えるとマクロになる, これで、マクロをざっくりと読めるようになり、処理についてもざっくりとわかるようになったと思います。, 次回からは、Teratermに用意されている命令文の基本と、少し複雑な処理について見ていきましょう。, ピンバック: waitコマンドの使い方について | ゼロから始めるTera Termマクロ, getdateコマンドを使ってファイル名に日付を入れる | ゼロから始めるTera Termマクロ, getdirコマンドを使ってログを任意の場所に保存 | ゼロから始めるTera Termマクロ, 変数を使ってpassword変更に対応 | ゼロから始めるTera Termマクロ. sendln TeraTermはソフトウエア開発の現場でよく使われるツールですね。 TeraTermマクロは敷居が高そうですが、構造はとても簡単です。 覚えておくのは「wait」と「sendln」のみです。 wait … 指定した文字列が表示されたら次の行のマクロを実行します. int2str 整数型を文字列型に変換する。 str2int 文字列型を整数型に変換する。 [使用例] sendlnの引数に指定する内容は文字列でなければならないため、sendlnで変数を使いたい場合は、文字列型を使う必要がある。整数型を使うとエラーになる。 例)sendlnで「set 1」というコマンドを入 …