問題はDebian Jessieサーバーにあります。
次の例に示すように、SSHを使用してリモートコマンドを実行します。
#! /bin/bash
ssh root@srv01 << 'STOP_SERVER'
touch /tmp/testFile
STOP_SERVER
私が望んでいない多くの出力を得ることを除いて、これはうまくいきます。機密情報をアスタリスクに置き換える例は次のとおりです。
root@home:~# ./test.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
Linux srv01.***.*** 3.14.32-xxxx-grs-ipv6-64 #5 SMP Wed Sep 9 17:24:34 CEST 2015 x86_64 GNU/Linux
server : ***
ip : ***
hostname : srv01.***.***
stdin: is not a tty
スクリプトを次のように変更した場合
#! /bin/bash
ssh root@srv01 << 'STOP_SERVER' >> /dev/null
touch /tmp/testFile
STOP_SERVER
私は次のような結果を得ます。
root@home:~# ./test.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
stdin: is not a tty
SSHコマンドに-qオプションを追加した場合
root@home:~# ./test.sh
stdin: is not a tty
ここで再び浮遊する方法がわからなくなりますstdin: is not a tty
。
出力を/dev/nullにリダイレクトするのを避けることができたらと思います。これは私が見たくないログインメッセージです。
ベストアンサー1
私は解決策を見つけました。
書く代わりに
#! /bin/bash
ssh root@srv01 << 'STOP_SERVER'
date
touch /tmp/testFile
STOP_SERVER
以下を書いてください
#! /bin/bash
ssh root@srv01 '
date
touch /tmp/testFile
'
もう質問はありません。