GNU/Linux >> Linux の 問題 >  >> Linux

Batch でリモート SSH コマンドをスクリプト化する最良の方法 (Windows)

Bash on Ubuntu on Windows も使用できます 直接。例:

bash -c "ssh -t [email protected] 'cd /; sudo my-command'"

以下の Martin Prikryl のコメントによると:

<ブロック引用>

-t は端末エミュレーションを有効にします。 sudo のターミナル エミュレーションが必要かどうかは、構成によって異なります (多くのディストリビューションではデフォルトが上書きされますが、デフォルトでは必要ありません)。反対に、他の多くのコマンドはターミナル エミュレーションを必要とします。


別のオプションとして、OpenSSH http://www.mls-software.com/opensshd.html をインストールしてから、単純に ssh [email protected] -pw password -m command_run をインストールできます。

編集:インストール時の user2687375 からの応答の後、クライアントのみを選択します。これが完了すると、コマンドから SSH を開始できるようになります。

次に、次のような ssh バッチ スクリプトを作成できます

ECHO OFF
CLS
:MENU
ECHO.
ECHO ........................
ECHO SSH servers
ECHO ........................
ECHO.
ECHO 1 - Web Server 1
ECHO 2 - Web Server 2
ECHO E - EXIT
ECHO.

SET /P M=Type 1 - 2 then press ENTER:
IF %M%==1 GOTO WEB1
IF %M%==2 GOTO WEB2
IF %M%==E GOTO EOF

REM ------------------------------
REM SSH Server details
REM ------------------------------

:WEB1
CLS
call ssh [email protected]
cmd /k

:WEB2
CLS
call ssh [email protected]
cmd /k

-m PuTTY のスイッチはスクリプト ファイルへのパスを取ります コマンドではなく引数として .

参照:https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.html#using-cmdline-m

したがって、コマンドを保存する必要があります (command_run ) をプレーン テキスト ファイル (例:c:\path\command.txt ) そしてそれを PuTTY に渡します:

putty.exe -ssh [email protected] -pw password -m c:\path\command.txt

ただし、Plink (PuTTY スイートのコマンドライン接続ツール) を使用する必要があることに注意してください。これはコンソール アプリケーションであるため、その出力をファイルにリダイレクトできます (PuTTY ではできないこと)。

コマンドライン構文は同じですが、出力リダイレクトが追加されています:

plink.exe -ssh [email protected] -pw password -m c:\path\command.txt > output.txt

コマンドライン接続ツール Plink の使用を参照してください。

また、Plink を使用すると、実際にコマンドラインでコマンドを直接提供できます:

plink.exe -ssh [email protected] -pw password command > output.txt

同様の質問:
PuTTY を使用して Windows から Linux で実行するコマンドを自動化する
バッチファイルから Plink でコマンドを実行する


Linux
  1. Windows上のSSHクライアントに最適な6つの無料のパテ代替品

  2. シェルスクリプトの予期しない動作?

  3. コンピューターでUbuntuをテストする最良の方法は?

  1. リモートフォルダをマウントする最良の方法は?

  2. * nixからリモートWindowsマシンでexeまたはbatファイルを実行する

  3. sshを使用してリモートホストにファイルが存在するかどうかを確認します

  1. スクリプトが一定期間に1回実行されるようにするための最良の方法は?

  2. リモート マシンに ssh するためのシェル スクリプトを記述し、コマンドを実行する

  3. rsync/ssh/rsnapshot バックアップ -- リモート スクリプトの実行