コマンドプロンプトで自動ログインを使用してPuTTYでコマンドファイルを実行する方法


19

次を使用して、リモートサーバーに自動的にログインし、aにリストされているコマンドを次のように実行していますcommands.txt

C:\path\to\putty.exe -load "[Sessionname]" -l [user] -pw [password] -m C:\path\to\commands.txt

commands.txt 次のものが含まれます。

ps -elf|grep 'sometext'

ただし、そうしようとすると、PuTTYの新しいウィンドウが表示されますが、ログイン後すぐに閉じて終了します。その結果、コマンドの出力を見ることができません。

ここで何が起こっているのか分かりません。私のアプローチは間違っていますか、または終了する前にしばらくPuTTYウィンドウを一時停止するために、さらに手順を実行する必要がありますか?


2
代わりにPlink.exeを使用することを検討してください(通常、Puttyにバンドルされています。忘れずにPATHに含めてください)。パスワードをハードコーディングするのは安全ではないため、PuTTYのコマンドラインでrsaキーを指定する方法を2時間グーグルで調べました。呼び出しはパテから始めなければならないと思ったので、私はPlinkソリューションを見落としました。Plinkについては、以下の回答を確認してください。例: `Plink.exe -ssh host -l user -ic:\ Users \ myName \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

回答:


11

plink.exe(PuTTYバックエンドへのコマンドラインインターフェイス)を使用する必要があります。putty.exe

PuTTYダウンロードページから入手できます。

点滅なし:

-log <logfile>オプションを使用し、その内容を印刷して削除することが唯一の方法のようです。


plinkまたは他のコマンドラインインターフェイスを使用できません。これを行う他の方法はありますか

2
@supportpb「plinkを使用できません」-なぜですか?しようとするとどうなりますか?
gertvdijk

1
@gertvdijk ...彼は、企業のマシン上で未承認のソフトウェアを使用するために解雇されることをされて、何が起こるか
トーベンGundtofte-ブルーンは

サポートされていないオプション:-log
アランボウ

9

最初に、実行するすべてのコマンドを含む別のファイルを作成する必要があります。

例:PuTTYを使用してドメインにDrupalをダウンロードしてインストールしたいと思います。そのためには、次のことを行う必要があります。

最初に.txtファイルを作成します。そのファイル内にはコマンドがあります。私の例: " drush dl drupal " next line、 " drush si --account-name = [アカウント名] --account-pass = [アカウントパス] --db-url = mysql:// [user]:[pass ] @ localhost / [データベース名] --y "

そのファイルを保存した後、次にBATファイルを作成するか、CMDプロンプトに入力します。

  • ssh.cmd
  • @echo on [何が起こっているかを見るために]
  • [PuTTYインストールに移動します。私のものは:] cd C:\ Program Files \ Putty
  • 開始 putty.exe -ssh [domain name] -l [username] -pw [password] -m [the directory of the .txt file you created which contains the codes you want to be executed]

-mオプションは機能しません。コマンドファイル<テキストファイルへのパス>を開くことができないというエラーが発生しています
-user590849

@ user590849コマンドテキストファイルへのパスには空白がありますか?なぜなら私はただ
ブラックフロッグ

2

あなたのアプローチは良いように見えますが、ここで問題を引き起こし、おそらく何も起こらないと思わせる動作には、デフォルト設定が1つあります。

ただし、そうしようとすると、PuTTYの新しいウィンドウが表示されますが、ログイン後すぐに閉じて終了します

セッションはコマンドが実行された直後に終了し、PuTTYはデフォルトでウィンドウを閉じます。セッションのこの動作を変更する方法については、PuTTYドキュメントを参照してください。

4.1.3 `Close Window on Exit'

   Finally in the Session panel, there is an option labelled `Close
   Window on Exit'. This controls whether the PuTTY terminal window
   disappears as soon as the session inside it terminates.

興味深いが、それは手動セッションにも影響します...
Aviram Segal

1
@AviramSegalセッション設定です。ただ、セッション構成を複製し、言うsession-nocloseとスクリプトで使用すること1。
gertvdijk

1
ああセッション設定、それからはい動作します
Aviram Segal

1

Unixマシンを開くためのバッチファイルを作成するだけであれば問題はありません。以下に例を示します。

"PuTTY path" -ssh machinename -l username -pw password

PuTTYパスは、「C:\ Program Files \ putty \ putty.ext」のように二重引用符で囲む必要があります

machinename =二重引用符なしのmachinename

パスワード=引用符付き


0

Aviramの答えに加えて:

以下は、コマンドプロンプトからPuTTYコマンドを実行する方法の例です。

  • 最初にPuTTYインストールディレクトリ(たとえばC:\Program Files\PuTTY、)に移動し、次に以下のコマンドを実行します。

    plink.exe -ssh SERVER_IP -P port_noを -l USER_NAME -pw パスワード

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.