Bash:対話型リモートプロンプト

Bash:対話型リモートプロンプト

リモートサーバーに接続し、特定のパッケージがインストールされていることを確認するスクリプトがあります。

ssh root@server 'bash -s' < myscript.sh

myscript.sh:

OUT=`rpm -qa | grep ntpdate`
if [ "$OUT" != "" ] ; then
    echo "ntpdate already installed"
else
    yum install $1
fi

この例は単純化できます。これにもmyscript2.sh同じ問題があります。

read -p "Package is not installed. Do you want to install it (y/n)?" choise

私の問題は、bashが私の答えを対話的に読むことができないということです。

ユーザーにメッセージを表示する機能を失うことなくローカルスクリプトをリモートで実行する方法はありますか?

ベストアンサー1

次のようにしてみてください。

$ ssh -t yourserver "$(<your_script)"

-ttty割り当てを強制し、ファイル全体を読み取り、その場合は内容をリモートユーザーのシェルによって実行される$(<your_script)引数として渡します。ssh

スクリプトにパラメータが必要な場合は、スクリプトの後にパラメータを渡してください。

$ ssh -t yourserver "$(<your_script)" arg1 arg2 ...

私には効果がありますが、普遍的なかどうかはわかりません。

おすすめ記事