0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Teratermマクロで自動ログインした後にコマンドを実行する

Posted at

teratermマクロで自動ログインした後にコマンドを実行する

teratermマクロで自動ログインした後、続けてコマンドを実行したいこと、あると思います。私はありました。
例えば、取得しているログに残すためにdateコマンド叩いたり、作業用のディレクトリに移動したりなど。
ログイン時に自動でコマンドを実行させたい…毎回ログイン時に同じコマンド実行するのはめんどくさい…(し、ちょいちょい忘れる)
ということで以下のようなteratermマクロを作りました。

autoLogin.ttl
;仮想環境自動ログインマクロ

;各処理呼び出し
call login
call execCommand_beforeLogin

end


;ログイン処理実行
:login
【自動ログイン処理】

return

;コマンド実行
:execCommand_beforeLogin
sendln 'id;date;uname -n'
sendln 'cd ~/WORK'

return

が、うまく動かない

上記のマクロを実行するとこうなります。
自動ログインはできるのに後続のコマンドが実行されない…

image.png

こうしたら動いた!

autoLogin.ttl
;仮想環境自動ログインマクロ

;各処理呼び出し
call login
call execCommand_beforeLogin

end


;ログイン処理実行
:login
【自動ログイン処理】

return

;コマンド実行
:execCommand_beforeLogin
;★☆↓この行を追加★☆
wait USERNAME
;★☆↑この行を追加★☆
sendln 'id;date;uname -n'
sendln 'cd ~/WORK'

return

どういうこと?

waitでコンソールに自分のホスト名が表示されるまで待機して、それからsendlnでコマンドを実行しているということです。
ログイン直後にコンソール画面に返ってくる文字列を指定すればいいので、ユーザ名でなく、ホスト名とか、なんならプロンプトの「#」を指定しても自動ログイン可能です。

職場では大量のサーバにログインする必要があるうえ、運用ルールでログイン時にいくつかのコマンドを実行する必要があるので相当煩わしかったのですが、このマクロによって相当作業の効率化が図れそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?