FTPを介したクライアントサーバーでのプロジェクトのクイックアップデート

挑戦する



多くの場合、Linux用のテストサーバーでの開発を必要とする長期プロジェクトに対処する必要があり、クライアントによるチェックの後、サーバー上のコードを更新します。 もちろん、バージョン管理システム(SVNを使用)を使用することは理にかなっています。SSHを介してクライアントサーバーにアクセスする場合は、たとえばsvn updateまたはsvn checkoutコマンドを実行します。



問題



ただし、クライアントサーバーへのアクセスがFTP経由のみの場合、次のいずれかの方法を使用して手動で更新をアップロードする必要があります。

-FTP経由ですべてのプロジェクトファイルをコピーし、何かを見逃さないようにする

-前のリリース以降に変更されたファイルのリストを作成し、それらのみをアップロードします。



解決策



このプロセスを自動化し、開発サーバーでスクリプトを実行するだけでクライアントサーバーでプロジェクトを更新できるソリューションを共有したいと思います。 これを行うには、次のことを行う単純なシェルスクリプトを記述することをお勧めします。

1)バージョン管理システムからプロジェクトコードをエクスポートする

2)クライアントサーバーのプロジェクトコードを更新する





最初の問題の解決策は非常に簡単です。

#

rm -r /home/project/release_folder/

#

svn export --force http//svn.yourserver.com/repositary_name /home/project/release_folder/








同時に、使用するバージョン管理システムに応じて、たとえば、特定のリビジョンをリリースに入れるなどのパラメーターを設定できます。



2番目の問題を解決するには、lftpコマンドを使用します。このコマンドには多数のパラメーターがあり、ftpプロトコルを使用して広範なファイル操作を実行できます。



#リモートクライアントサーバー上のフォルダーとリリースとのフォルダーの同期

lftp -f sync_script.x







sync_script.xファイルの内容:

open login:password@customerserver.com

mirror -c -e -R -X '*.config.php' --no-perms /home/project/release_folder htdocs/sub

exit








ご覧のとおり、このコマンドを使用すると、リモートクライアントサーバーにリリースフォルダーの正確なミラーを作成できます。 同時に、たとえば、そのパラメータを使用して、特定のファイルの更新を禁止したり、リモートサーバー上のファイルへのアクセス権を変更したりできます。



サーバーでこのようなスクリプトを作成したら、実行して、リリースフォルダーを更新し、FTP経由でクライアントサーバーとそのコンテンツを同期するまで数秒待ちます。 多くの時間と神経を節約し、「人的要因」を排除します。 このスクリプトを展開すると、わずか数分で、少なくとも100台のサーバーでプロジェクトを更新できます。



All Articles