コマンドラインを使用してPuTTY出力をファイルに保存する方法はありますか?これはGUIを使用して簡単に実行できますが、私の場合は自動的に実行する必要があります。
私が取り組んでいるもの:
ユーザーはバッチファイルをクリックします-> PuTTYを起動し、SSH経由でデバイスに自動的に接続し、一連のコマンドを実行します-> PuTTYは出力をファイルに保存する必要があります。
最後の部分は機能しません。これを行うコマンドはありますか?
特定のプログラムPuTTY
はこのために設計されていません。代わりに、PuTTYスイートの別のプログラムであるplink
を使用します。これは、PuTTY
と同じセッション設定とキーを使用しますが、stdinから入力を取得し、stdoutに出力します。通常の方法。 http://the.earth.li/~sgtatham/PuTTY/0.63/htmldoc/Chapter7.html#plink を参照してください。
デイブとチャーリーの答えを拡大しています...
Plinkがパスにあることを確認するだけでなく、ローカル出力ファイルへの書き込みアクセス権があるかどうかも確認してください。
これは、コマンド出力をリモートマシンからplinkでローカルファイルにリダイレクトする方法です。この例では、nfcapdのマニュアルページからの出力を保存します。
plink [email protected] -pw joespassword man nfcapd > output.log 2>&1
サーバーに初めてアクセスしようとすると、キーをキャッシュに保存するよう求められます。そのため、少なくとも1回はマシンにアクセスするようにしてください。
plink [email protected] -pw joespassword
The server's Host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
...
Store key in cache? (y/n)
前の回答で述べたように、これには plink を使用します。
次のように入力して、環境パスにあることを確認します
plink -V
コンソールで。バージョン番号を返す場合、それが環境パス変数にあることがわかります。そうでない場合は、おそらく最初にこれを修正するのが最善です。 SOこれに役立つ答えがたくさんあります。失敗した場合は、後続のCLIコマンドでplink.exeへのフルパスを使用してください。
次に、plinkを使用してssh接続を開き、オプション-vを設定して詳細な出力を提供します。最後に、これらすべてをログファイルにパイプする必要があります。
私が使用する完全なcliコマンドは
plink -v [email protected] > ssh-output.log 2>&1
ファイルssh-ouput.logを開き、結果を確認します。