web-dev-qa-db-ja.com

コマンドラインからPuTTY出力をファイルに保存する

コマンドラインを使用してPuTTY出力をファイルに保存する方法はありますか?これはGUIを使用して簡単に実行できますが、私の場合は自動的に実行する必要があります。

私が取り組んでいるもの:

ユーザーはバッチファイルをクリックします-> PuTTYを起動し、SSH経由でデバイスに自動的に接続し、一連のコマンドを実行します-> PuTTYは出力をファイルに保存する必要があります

最後の部分は機能しません。これを行うコマンドはありますか?

10
sjaak

これはPuTTYで実行できます。質問が尋ねられた時間を考えると、答えは少し遅れていますが、これは誰かを助けるかもしれません。

PuTTYでは、GUIを使用して、以下に示すようにロギングオプションをオンにしてセッションを保存できます。

enter image description here

enter image description here

ホスト名を入力し、セッションに名前を付け、左上隅のログオプションに移動し、すべてのセッションを選択し、ログファイル名と場所を指定し、セッションタブに戻り、保存ボタンをクリックします。完了、セッションを保存しました。

ここでCMDを開き、以下のようにコマンドを記述します enter image description here

できました。このセッションが呼び出されるたびに、コマンドと出力がログに記録されます。お役に立てれば。

23
azim

特定のプログラムPuTTYはこのために設計されていません。代わりに、PuTTYスイートの別のプログラムであるplinkを使用します。これは、PuTTYと同じセッション設定とキーを使用しますが、stdinから入力を取得し、stdoutに出力します。通常の方法。 http://the.earth.li/~sgtatham/PuTTY/0.63/htmldoc/Chapter7.html#plink を参照してください。

2

デイブとチャーリーの答えを拡大しています...

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)
1
rluks

前の回答で述べたように、これには plink を使用します。

次のように入力して、環境パスにあることを確認します

plink -V

コンソールで。バージョン番号を返す場合、それが環境パス変数にあることがわかります。そうでない場合は、おそらく最初にこれを修正するのが最善です。 SOこれに役立つ答えがたくさんあります。失敗した場合は、後続のCLIコマンドでplink.exeへのフルパスを使用してください。

次に、plinkを使用してssh接続を開き、オプション-vを設定して詳細な出力を提供します。最後に、これらすべてをログファイルにパイプする必要があります。

私が使用する完全なcliコマンドは

plink -v [email protected]  > ssh-output.log 2>&1

ファイルssh-ouput.logを開き、結果を確認します。

1
charliefortune