web-dev-qa-db-ja.com

Windowsバッチファイルからrshを使用して「lspci」コマンドを実行できません

次のコマンドを使用して、Windowsマシンでバッチファイルを作成しました。

rsh hdvg-1 -l root lspci

hdvg-1は、ネットワーク上のLinuxマシンの名前です。

しかし、結果として得られるのは次のとおりです。command not found。誰かが私が間違っていることを教えてもらえますか?

おそらく、lspciの結果をフィルタリングするために次のコマンドを使用するのにも役立ちます。

lspci | grep 'certain string
1
R T

rsh オプションの後にホスト名が必要です。例:

rsh  -l root hdvg-1 lspci

それ以外の場合は、"-l"を実行しようとしています。

grepコマンドには不均衡な引用符があり、次のようになります。

lspci | grep 'certain string'

lspciコマンドがマシンで使用可能であることを確認したい場合は、次のようにすることができます。

rsh  -l root hdvg-1

シェルを取得するには、そのシェルにlspciと入力します。ちなみに、rshsshのエイリアスである可能性が高いため、混乱を避けるためにsshを使用する必要があります。

もう1つの混乱の原因は、リモートシェルを使用する場合、$PATH環境変数が通常のログインと同じように設定されない可能性があることです。 rsh server "script ..." which $ PATH used? の議論によると、

rshは、安全のために実行可能ファイル、スクリプトの完全修飾名を必要とします。 /usr/bin/sh(リモートサーバーで評価されるものは何でも)を使用し、PATHは通常制限されます:/usr/bin:/usr/sbin

リモートマシンでは、lspciがリモートコールに使用される$PATHに含まれていない可能性があります。

参考文献:

1
Thomas Dickey