私は次のようにして自動的にリモートサーバーにログインし、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ウィンドウを終了する前にしばらく休止させるためにもっと多くのステップを踏む必要がありますか?
plink.exe
ではなくPuTTY.exe
(PuTTYバックエンドへのコマンドラインインターフェース)を使うべきです。
plinkなし:
唯一の方法は-log <logfile>
オプションを使用してから内容を印刷して削除することです。
まず、実行したいすべてのコマンドを含むファイルを別に作成する必要があります。
例:私はPuTTYを使って私のドメインに Drupal をダウンロードしてインストールしたいです。それをするためにあなたはしなければならない:
まず.txtファイルを作成します。そのファイル内にコマンドがあります。次の行の "drush dl drupal"、 "drush si --account-name = [アカウント名] --account-pass = [ [アカウントパス] --db-url = mysql:// [ユーザー]:[パス] @ localhost/[データベース名] --y "
そのファイルを保存したら、 BAT ファイルを作成するか、CMDプロンプトに入力します。
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]
を起動あなたのアプローチは良いように思えます、しかし、ここであなたを悩ませているそしておそらく何も起きていないとあなたに信じさせるようにしている振る舞いにおける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.
Unixマシンを開くためのバッチファイルを作成したいだけなら問題はありません。以下はその例です。
"PuTTY path" -ssh machinename -l username -pw password
PuTTYパスは、 "C:\ Program Files\PuTTY\putty.ext"のように二重引用符で囲む必要があります。
machinename =二重引用符なしのmachinename
パスワード=引用符付き
Aviramの答えに加えて:
以下は、PromptコマンドからPuTTYコマンドを実行する方法の例です。
まずPuTTYのインストールディレクトリ(C:\Program Files\PuTTY
など)に移動してから、次のコマンドを実行します。
plink.exe - sshserver_ip - Pport_no - luser_name - pwパスワード