トップページへ

シェルスクリプトでexpectを使って自動ログインする方法

小粋空間 » Linux » シェルスクリプトでexpectを使って自動ログインする方法

シェルスクリプトでexpectを使ってログインする方法を紹介します。

1.はじめに

Linuxのシェルスクリプトを作って、ルーチンワークを自動化することは多いと思います。

ただ処理の中で他のサーバにログインする場合、アカウントやパスワードを入力する必要があり、その場合どのようにスクリプトを書けばよいのかわかりません。

ということで、ここではexpectを使ってログインする方法を紹介します。

なお、OSにexpectがインストールされていない場合(=コマンドラインでexpectを実行してcommand not foundになる場合)、予めyumでインストールしてください。

yum install expect

2.expectを使ってログインする

expectを使ってログインするには、次のようなスクリプトを記述します。

#!/bin/sh
 
PASS="1234"
 
expect -c "
set timeout 20
spawn ssh user@server
expect ¥"password:¥"
send ¥"${PASS}¥n¥"
expect ¥"$¥"
"

それぞれの意味は次のとおりです。

注意点として、"expect -c"の中に記述したスクリプトのダブルクォーテーションはエスケープが必要です("expect -c"のダブルクォーテーションと認識させないため)。

また、パスワード入力後の改行コードを忘れないようにしてください。

これをスクリプトの中に組み込むことでサーバに自動ログインすることができます。

« 前の記事へ

次の記事へ »

トップページへ