ライブ サーバーでプル(git pull)する必要があるライブブランチがありますが、ライブ サーバーは bitbucket にアクセスできません。
ログイン/パスを使用してリモートサーバーにsshアクセスできますが(sshキーを使用できません)、リモートサーバーで指定されたブランチを同期する(変更されたファイルを更新および削除する)最良の方法は何ですか?
scp
gitを使用する代わりに、bitbucketにアクセスできるマシンからサーバーにファイルをコピーするために使用します。cronジョブをビットバケットからプルします。post receiveフックを使用して、scpコマンドを開始します。
rsyncを使用してこの問題を解決しました。
rsync を使用すると、魔女ファイルが変更され、リモート サーバー上で異なることを確認できます。
また、 build.exclude.sync witchという名前のファイルを作成しました。このファイルには、スキップしたいすべてのディレクトリが含まれており、ターミナルで使用できます。
rsync -avz --exclude-from=build.exclude.sync /home/path/to/local/dir/ -e ssh myuser@myremotehost.com:/path/to/remote/dir/
Apache Antで rsync を使用して、ビルド プロセスを自動化しました。私のbuild.xmlファイルで:
<exec executable="rsync" dir="." failonerror="true">
<arg line="-avz --exclude-from=build.exclude.sync ${prod.local.deploydir} -e ssh ${prod.sshusername}@${prod.sshhost}:${prod.homedir}"/>
</exec>