2016-03-08 19 views
1

所以我有一个服务器上的wordpress网站,但服务器是一个小小的flakey,我想在第二台服务器上有一个完全相同的站点设置,所以当服务器最终放弃了这个鬼时,我可以切换到它。出于参数的原因,让我们调用它位于Server1和新服务器Server2上的服务器。正在同步Wordpress站点 - 未压缩的Wordpress计划的FTP备份?

基本上我想要的是某种FTP和MySQL预定的单向同步。 Server1上的任何更改随后在Server2上执行,因此它始终处于最新状态。

的我能做到这一点是通过利用一些成千上万已经存在的插件的方式也许是一个,所以真的我寻找一些帮助或更合适的替代方法。

在我的脑海中,我会为我的wordpress站点提供2个插件,这是一个FTP同步,它将Server1的未压缩版本备份到Server2。然后是另一个备份数据库的插件。

或者,是否有任何人们知道的计划备份/恢复应用程序?预定的恢复似乎总体上是滑落的。

请注意,如果需要,我还可以访问Amazon S3,Dropbox和Google驱动器,但是我更愿意直接在Server1和Server 2之间进行此操作。

思考如何实现这一目标将是巨大的

回答

0

我也有类似的情况,这是我做的(与备份服务器上的额外文件历史记录,如果你砍死,需要回滚到昨天匆忙)。 对于数据库而言,mysqlbackup很快且很好(与percona XtraBackup一样) - 在主服务器上安装其中一个。我在备份服务器上使用lftp,并为远程站点提供了一个lftp书签。我在备份机器上有一个本地git存储库,所以我总是可以回滚到一个好的版本。这里有一个小脚本:

# backup the remote database 
ssh -e "xtrabackup --backup --target-dir=/webroot/databaseBackup"; 
# change to local webroot (whereve that is for you) 
cd /webroot 
# copy remote website files to backup server (with some helpful output filters) 
lftp bookmarkName -e "mirror --verbose ;quit" | grep -E "Transfer|Permission"; 
# check in to local git repository 
git add . && git commit -m "scheduled backup" 
# Restore the database every night (this is a cut'n'paste from the percona site, mine is more complicated) 
service mysql stop # this will depend on your linux distro, maybe /etc/init.d/mysql stop 
rsync -rvt --exclude 'xtrabackup_checkpoints' --exclude 'xtrabackup_logfile' /webroot/databaseBackup /var/lib/mysql 
chown -R mysql:mysql /var/lib/mysql/ 
service mysql start 

我保存到备份服务器上的文件,然后添加一个cronjob(我在上午03点51分做到这一点,每天一次)。如果您将cron设置为通过电子邮件发送每项作业的结果,则会收到每日电子邮件,通知您哪些文件已更改。

51 03 * * * ~/bin/remoteBackup.sh 
每天早上

我收到一封电子邮件,让我知道了备份成功,以文件的列表,因为昨天它改变(通常只是缓存文件,有时新的内容,偶尔黑客)。这很棒。