2017-12-04 7 views
0

私はPHPアプリケーションを作成しています。私たちのチームはサーバーをセットアップして、編集するたびにコードを別のサーバーにコピーする必要がありますファイル。当然これはドライコンセプトに反するものであり、単調な雑用である。保存時にSSH経由でサーバー間で自動コピーするPHP

ファイルを変更してウェブページを更新して変更を確認すると、両方のサーバーを更新する必要があります。そうしないと、サーバー上に古いバージョンが表示される可能性がありますそれはまだ更新されていません。だから、私はこのアプリを開発している間、コピー/ペースト/保存を何百回もしています!

私はEclipse Luna 4.4.1を使用しています。リモートシステムエクスプローラでは、システムタイプは「SSHのみ」です。これはサーバー2でも同じです。

私は、サーバー1にsample.phpを保存するたびに、同じファイルsample.phpが自動的に更新され、同じコードで保存されるような機能がいくつかあります私はサーバー1にファイルを保存する以外に何もする必要はありません。それをした後、サーバー2のファイルが自動的に更新されるようにしたいと思います。

両方のサーバがnginx OSで動作しています。

ここでSEについてこれまで多くのことを読んできましたが、質問/回答の多くは5歳以上です。これを行うには最適な方法があるのだろうかと思います。私はJavaに多くの経験を持っていませんが、これがうまくいく方法であればうれしいです。どんなプラグインや他の方法も素晴らしいでしょう。

+0

どのようなサーバーのOSですか?あなたが考えることができる多くのOSベースのオプションがあります – nogad

+0

私は[deployer](https://deployer.org/)を使用します。もしあなたが1つのコマンドを望むなら、n *ホストにプッシュすることができます。または、一度に多くのサーバーにログインを保存する任意のタイプの任意のタスク。 –

+0

こんにちは@nogad、尋ねてくれてありがとう。私たちはnginxサーバー上で動作します。投稿を編集して追加します。 –

答えて

0

sshでrsyncを実行して見て、定期的にアップデートを実行するためにcronに入れてください。ここで

は、(ファイルの種類/内容はここにほとんど無関係である)私は、データベースのバックアップをコピーするために実行したrsyncプロセスの例である:

rsync -ar -e "ssh -l <username>" <local_path_of_files_to_watch> hostname:<target_path_where_files_land> 

これは私のコマンドは、Aからrsyncのデータベースに次のようになります無線トラフィックと記録日次ログファイルにメッセージをデコードを監視し、リモートシステム:

rsync -av --remove-source-files --progress --stats -e "ssh -l stratdb" 192.168.0.23:/var/log/stratux.sqlite.*.gz /Users/stratdb/sqlite-dbs/. 

あなたは、このプロセスは、パスワードを定義しなくても実行したい場合は、あなたができるように、共有キーを使用してセットアップの.sshしたいと思いますサーバーからのパスワードなしログイン1 - > serこのプロセスのver 2(理想的には、両方のサーバーで機能が制限されているユーザーから実行されます)。

本当に堅牢で設定可能なソリューションが必要な場合は、ビルドやコピーなどを行うために使用できるいくつかの展開プロセスがありますが... 1つの簡単なコマンド(アドホック)または自動的に.. 1つのサーバーを別のサーバーrsyncを調査します

関連する問題