1

bashを使用して特定のサービスの起動を自動化しようとしています

サービスがinit.d(/etc/init.d/openvpn.custom)で開始されると、ユーザー名、次にパスワードを要求し、接続します

インストールされているバージョンではauth-user-passfrom-fileを使用できません。また、依存関係のためにアップグレードできません。

だから私はinit.dスクリプトを実行し、少し眠り、ユーザー名を入力し、戻り、少し眠り、パスワードを入力する簡単なbashスクリプトを書こうとしています-あなたは流れを得るでしょう。

http://pastebin.com/qWHX7Di5のように

エコーを試しましたが、うまくいかないようです

これは、接続を維持するように求められるかなりレガシーなファイアウォール用です。

これも可能ですか?

4

2 に答える 2

1

expectの代わりに使用しbashます。bash他のタスクも実行する必要がある場合でも、内部から呼び出すことができます。

ではexpect、スクリプトは次のようになります(テストされていません)。

#!/usr/bin/expect -f
set username "username"
set password "password"

spawn /etc/init.d/openvpn.custom start
expect "Username:"
send "$username\r"
expect "Password:"
send "$password\r"
expect eof

スクリプトによって出力される実際のログインプロンプトに一致するようにexpect "Username:"&行を変更する必要があります。expect "Password:"init.d

詳細については、expectmanページを参照してください。

于 2013-02-04T17:03:41.203 に答える
0

ヒアドキュメントを使用してみることができます:

/path/to/init.d << END
$username
$password
END
于 2013-02-04T17:05:37.630 に答える