変更後のパスワードで全Linuxサーバにログインできるか確認するマクロ

本ページでは変更後のパスワードで全Linuxサーバにログインできるか確認するマクロを紹介します。

本マクロの用途

複数あるLinuxサーバ全てにログインします。
パスワード変更後にパスワードが正しいかどうかを確認する際に使用します。
また、本マクロはサーバダウンなどの障害が発生してメッセージ大量出力して切り分けが困難な場合に、サーバの死活確認等にも利用できます。

本マクロの仕様

踏み台(入り口)サーバに指定のユーザでログイン後、操作ログをD:¥temp¥work¥ttmacro¥ttlog¥yyyymmdd_hhmmss.txtに保存します。

ポップアップが出力し、確認対象のユーザー名、パスワードの入力を求められます。

入力完了後、D:¥temp¥work¥ttmacro¥list¥hostlist.txtに記載のあるホスト全てにログインします。

全てのサーバにログインできた場合、ログに「mission completed」の文字列を出力し、サーバからログアウトします。

本マクロの注意事項

本マクロの前提条件として、D:¥temp¥work¥ttmacro¥list¥hostlist.txtに記載のあるサーバ全てに確認対象のユーザが存在する必要があります。 (例えばhostlist.txtに記載のあるサーバのうち、1サーバだけ確認対象のユーザが存在しないなどの場合、そのサーバ及びそのサーバよりhostlist内の下に記載されているサーバに対しては、ログインができません。)

D:¥temp¥work¥ttmacro¥list¥hostlist.txtに、ログインしたいサーバを記入して下さい。なお、本listファイルは全Linuxサーバのパスワードを一気に変更するマクロと共有で使用することで、漏れなくログイン確認を行うことが可能です。

D:¥temp¥work¥ttmacro¥list¥hostlist.txtは以下の形式で1ホスト毎に改行して下さい。

ホスト名1(IPアドレスでも可)
ホスト名2(IPアドレスでも可)
ホスト名3(IPアドレスでも可)

マクロの配置やログの出力先、仕様などのその他共通注意事項は当サイトで扱うtera termマクロの共通ルールをご確認下さい。

コード

;#################################################################
;全Linuxサーバログインマクロ
;作成日:yyyymmdd
;作成者:wildfish
;更新日:yyyymmdd
;更新者:wildfish
;説明:複数あるLinuxサーバ全てにログインします。
;踏み台(入り口)サーバに指定のユーザでログイン後、操作ログを以下に保存します。
;D:¥temp¥work¥ttmacro¥ttlog¥yyyymmdd_hhmmss.txt
;ポップアップが出力し、確認対象ユーザー名、パスワードの入力を求められます。
;入力完了後、D:¥temp¥work¥ttmacro¥list¥hostlist.txtに
;記載のあるホスト全てにログインします。
;全てのサーバにログインできた場合、ログに
;「mission completed」の文字列を出力し、サーバからログアウトします。
;#################################################################

;#################################################################
;ログイン、接続処理
;#################################################################

username = 'ユーザ名';←踏み台サーバのログインするユーザ名を記入します
hostname = 'ホスト名';←踏み台サーバのホスト名またはIPを記入します

msg = 'passwordを入力'
passwordbox msg 'Get password'
Password = inputstr

msg = hostname
strconcat msg ':22 /ssh /auth=password /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg Password

connect msg

settitle"全Linuxサーバログインマクロ"

;#################################################################
;操作ログの自動保存処理
;#################################################################

getdate datestr
strcopy datestr 1 4 yearstr
strcopy datestr 6 2 monthstr
strcopy datestr 9 2 daystr
gettime timestr
strcopy timestr 1 2 hourstr
strcopy timestr 4 2 minutestr
strcopy timestr 7 2 secondstr

filename = 'D:¥temp¥work¥ttlog¥'
strconcat filename yearstr
strconcat filename monthstr
strconcat filename daystr
strconcat filename '_'
strconcat filename hourstr
strconcat filename minutestr
strconcat filename secondstr
strconcat filename '.txt'

logopen filename 0 0

wait ' ~]$';←一般ユーザのwaitです。rootの場合' ~]#'を指定します。

;#################################################################
;作業担当者出力
;#################################################################
inputbox '作業者名を半角英小文字で入力' '作業担当者名入力画面'
Sagyotan = inputstr
echotan = 'echo '
strconcat echotan Sagyotan
sendln echotan
wait ' ~]$'
;#################################################################
;作業担当者出力終了
;#################################################################

;#################################################################
;ホストリスト読み込み~ログインのループ開始
;#################################################################
fileopen fhandle 'D:¥temp¥work¥ttmacro¥list¥hostlist.txt' 0

inputbox '確認対象ユーザ名' '確認対象ユーザ名入力画面'
Kakuusr = inputstr

inputbox '確認対象ユーザのパスワード入力' 'パスワード入力画面'
Kakupass = inputstr

:loop
filereadln fhandle line
if result goto fclose

logoncommand = 'ssh '
strconcat logoncommand Kakuusr
strconcat logoncommand '@'
strconcat logoncommand line

sendln logoncommand
wait 'password:'
sendln Kakupass

;#################################################################
;rootの場合とそれ以外でwait文字列・コマンド分岐
;#################################################################
strcompare Kakuusr 'root'
if result = 0 goto waitroot

;#################################################################
;root以外の場合
;#################################################################
wait ' ~]$'
sendln 'exit'
wait' ~]$'
goto loop
endif

;#################################################################
;rootの場合
;#################################################################
:waitroot
wait ' ~]#'
sendln 'exit'
wait' ~]$'
goto loop

:fclose
fileclose fhandle

;#################################################################
;ループ終了
;#################################################################

;#################################################################
;終了メッセージ出力
;#################################################################

sendln 'echo MISSION COMPLETED'
wait' ~]$'
sendln 'exit'
;#################################################################

tera term macroリスト

メニュー

ページのトップへ戻る