常時起動のサーバではほとんど使うことはないと思いますが、必要なときだけ立ち上げてサクっと終了させるような使い方をしているサーバで、いちいちログインしてroot権限を取得してshutdownコマンドを~という一連の手順が面倒くさいという場合の対処法です。
Tera Termとそのマクロを使って、「ログインからシャットダウン」までを自動化します。
Tera Termマクロ(例:hoge_poweroff.ttl)を作ります。
(青字の部分をご自分の環境に置き換えてください。緑字はコメントです。)
因みに、こちらの環境では公開鍵暗号方式を使用していますので、まずはそれに対応したものを。この辺りのマクロに関する詳細は、『Tera Termマクロ活用入門(1):各種ログインを自動化する』を参考にさせて頂きましたので、詳しいことはそちらをご覧下さい。
マクロの流れとしては、
- 通常使用アカウントでログイン
- suでrootに
- シャットダウン実行
- rootログアウト
- 通常使用アカウントログアウト
になります。
username = 'hoge' <- 通常使用するアカウント
hostname = '192.168.0.1' <- 対象サーバのhostname(今回はIPアドレス直接指定)
keyfile = 'C:\SSH_Key\for_hoge\id_rsa' <- 使用する秘密鍵のpath
passwdfile = 'C:\SSH_Key\for_hoge\passwd.dat' <- 通常使用するアカウントのパスワード保存先
passwdfile2 = 'C:\SSH_Key\for_hoge\passwd2.dat' <- rootのパスワード保存先
prompt = '$' <- 通常使用アカウントのプロンプト
prompt2 = ':' <- 'su'でroot権限を取得するときのパスワード入力時のプロンプト
prompt3 = '#' <- rootでのプロンプト
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
msg = 'Enter password for user '
strconcat msg username
passwdkey = username
strconcat passwdkey '@'
strconcat passwdkey hostname
getpassword passwdfile passwdkey password
msg = hostname
strconcat msg ':22 /ssh /auth=publickey /user='
strconcat msg username
strconcat msg ' /keyfile='
strconcat msg keyfile
strconcat msg ' /passwd="'
strconcat msg password
strconcat msg '"'
connect msg
su_command = 'su -'
wait prompt
sendln su_command
passwdkey2 = 'root'
strconcat passwdkey2 '@'
strconcat passwdkey2 hostname
getpassword passwdfile2 passwdkey2 password2
wait prompt2
sendln password2
wait prompt3
sendln 'poweroff' <- 今回は'shutodown'コマンドではなく'poweroff'コマンドを投げてます
wait prompt3
send #$04 <- rootのログアウト(Ctrl+d)
wait prompt
send #$04 <- 通常使用アカウントのログアウト(Ctrl+d)
とりあえず、これでワンクリックシャットダウンができるようになります。
因みに、他の方法としては『shutdownアカウントによる自動シャットダウン』という方法もありますね。
まぁ、今回はシャットダウン(poweroff)でしたけど、上のpoweroffコマンドのところを別のコマンドに変えれば違うこともできますし、汎用性はあると思うのでヨシとします。
因みに、他の方法としては『shutdownアカウントによる自動シャットダウン』という方法もありますね。
まぁ、今回はシャットダウン(poweroff)でしたけど、上のpoweroffコマンドのところを別のコマンドに変えれば違うこともできますし、汎用性はあると思うのでヨシとします。
No comments:
Post a Comment