次のように、ローカルサーバーでsshコマンドを介してリモートLinuxサーバーでコマンドを実行しようとしています:
ssh myremoteserver 'タイプ ttisql'
ここで、ttisql はリモート マシンのパスにある実行可能ファイルです。
これを実行した結果は次のとおりです。
bash: 行 0: タイプ: ttisql: 見つかりません
最初に接続して実行すると:
ssh myremoteserver
次に、次のコマンドを入力します。
[myuser@myremoteserver~]$: タイプ ttisql
予想どおり、ttisql exe のパスが返されます。
奇妙なことに、ベータ環境で最初のコマンドを実行すると、期待どおりに動作し、exe のパスが返されます。ベータ シナリオでは、マシン A がリモート マシン B に接続していますが、両方のマシンがオンサイトにあり、ssh コマンドはリモート マシンにすばやく接続します。
マシン A がローカルにあり、マシン B がオフサイトにあり、ssh コマンドが接続するのに 1 ~ 2 秒かかる場合、実稼働環境で問題が発生します。
私が見ることができる唯一の違いは、本番環境の ssh が接続するのにかかる時間です。最初の接続後にコマンドを入力すると、コマンドが機能するため、リモート システムのパスは正しいものになります。
この単純なコマンドがある環境では機能し、別の環境では機能しない理由を理解できる人はいますか? この問題は、ssh 経由で接続するのにかかる時間に関連している可能性がありますか?