2017-09-01 8 views
0

リモートコマンドを実行中に問題が発生しました。リモートマシンにログインしてコマンドを実行すると動作します。しかし、同じコマンドをラップトップからリモートマシンに実行すると、別のステータスコードが返されます。なぜlinuxのリモートコマンドまたはbashスクリプトが正しい出力を返さないのですか?

Local execution on 192.168.0.166: 
[email protected]:~# virsh list --state-shutoff | grep Qcow2 | wc -l 
1 

Remote Command execution: 
[email protected]:~# ssh [email protected] 'virsh list --state-shutoff | grep Qcow2 | wc -l' 
[email protected]'s password: 
0 

私はさまざまなシナリオで試しましたが、運はありません。誰も同じ問題に直面していますか?

+1

ここに何が間違っているのかよく分かりませんが、 'ssh [email protected] virsh list --state = shutoff | grep -Fc Qcow2'? ( 'grep | wc -l'を' grep -c'に置き換えるのはちょうど最適化であり、実際はここの牛肉ではありません。 'grep'をローカルで実行することが重要です。ルートとして実行する理由はないので')。 – tripleee

+1

(出力が膨大でリモートパイプ経由での送信を避けたい場合を除きます) – tripleee

+0

まだ動作しません。 -cオプションは役に立ちません。リモートコマンドの実行後、常に0が返されます。 –

答えて

2

リモートサーバで複雑なコマンドを実行するには、擬似端末を追加する必要があります。代わりにこれを試してみてください:

ssh -t [email protected] 'virsh list --state-shutoff | grep Qcow2 | wc -l' 

は、より多くの情報のためsshmanページを参照してください。

+0

クールな男。その働き。はい、この疑似端末の事をチェックします。 –

関連する問題