0

リモートサーバーでいくつかのコマンドの実行を自動化するにはどうすればよいですか?

たとえば、私はWindowsマシンを使用しています。私はバットファイルを実行します。

  • リソースをコンパイルします(js + css)
  • コードを SVN にコミットします
  • サーバーにsshで接続
  • そのサーバー上のSVNからの更新(Windowsに保存されているSVNパスワードを使用)
  • いくつかのshスクリプトを実行します
  • デーモンを再起動します

リモート タスクを自動化するにはどうすればよいですか? (最後の 3 つはリモート サーバーで実行されます)

4

2 に答える 2

2

自動化ってどういうこと?毎日のランニングが好きですか?そのために、それらをスケジュールします。したがって、最初の2つの項目については、言及したようにバッチファイルで実行できます。また、リモート サーバーで php サーバーを実行している場合は、最後の 3 つの項目を実行する php スクリプトを作成できます。このために、hxxp://myserver.com/update.php (または hxxp://myserver.com/update.php?password=12345678 他の誰かが実行するのを避けるため) のようなページを Windows のバッチ ファイルに作成できます。次のようなことをします:

  • リソースをコンパイルします (js + css)
  • コードを SVN にコミットします
  • サーバー側で残りの項目を実行する URL hxxp://myserver.com/update.php にリクエストを送信します。

php を使用すると、exec('.sh file') を使用して .sh コマンドを実行できます。

これがお役に立てば幸いです。問題が発生した場合は、php スクリプトを入手できます。

于 2013-02-12T00:14:17.697 に答える
2

これを行うには、サーバー上に bash スクリプトを作成するだけです。ファイルを作成し、実行する各コマンドをコピーして (1 行に 1 コマンド)、ファイルを保存します。次に、リモートサーバーに接続すると、単純に実行できます

sh /path/to/mybashfile

これらのコマンドをすべて実行します。コマンドラインからopensshクライアントを実行していた場合は、単純に実行できます

ssh user@server "sh /path/to/mybashfile"

Windowsで使用しているクライアントがわかりません。パテで似たようなことができると確信しています。

これをさらに自動化したい場合は、リポジトリの最新リビジョンをチェックする bash スクリプトを作成し、現在インストールされているリビジョンよりも新しい場合はそれらのコマンドを実行できます。次に、その bash スクリプトを N 分ごとに実行する cron ジョブを作成できます。

于 2013-02-12T00:25:18.830 に答える