Puttyの手動セッションとPlinkセッションの動作が異なる

Puttyの手動セッションとPlinkセッションの動作が異なる

こんにちは。Windows PC から putty を使用してリモート Linux サーバーに接続し、そこで特定のコマンドを実行しています。次のように plink を使用してタスクを自動化したいと考えています。

plink serveradress -l userid -pwd pass -batch "ls;cmd1"

putty/plink を通じてコマンド「ls;cmd1;cmd2」を手動で実行すると、正常に動作します。ただし、cmd.ext と上記の plink コマンドを通じて同じことを実行すると、「bash cmd1 が見つかりません」というメッセージが表示されます。ただし、ls コマンドは正常に動作します。

なぜこのようなことが起こるのでしょうか? PS: cmd1 は Linux に組み込まれたコマンドではありません。サーバー専用に作成されたものだと思います。

これを機能させるにはどうすればよいですか?

答え1

cmd1bash が「コマンドが見つかりません」とエラーを発した場合、コマンドが で見つからないことを意味します。したがって、 のパスが常に にある$PATHことを確認するか、 のフルパス名を指定する必要があります。cmd1$PATHcmd1

plink serveradress -l userid -pwd pass -batch "ls;/where/you/can/find/cmd1"

which cmd1完全なパス名は、対話型シェル (putty 経由のもの) 内で見つけることができます。

~/.bashrcまたは~/.profile、つまりホームディレクトリの .bashrc または .profileで PATH を設定できます。

PATH は、echo $PATHputty セッション内またはplink serveradress -l userid -pwd pass -batch 'echo $PATH'(一重引用符に注意) で確認できます。両方を実行すると、違いがわかるはずです。

関連情報