所以我在服务器上有一个wordpress站点,但是服务器有点不稳定,我希望在第二台服务器上安装相同的站点,这样当服务器最终放弃重影时我可以切换到它。为了论证,我们可以调用它位于Server1和新服务器Server2上的服务器。
基本上我想要的是某种FTP和MySQL预定的单向同步。然后,Server1上的任何更改都会在Server2上执行,因此它始终是最新的。
也许我可以做到这一点的方法之一就是利用已经存在的数千个插件中的一些,所以我真的在寻找一些帮助或更合适的替代方法。
在我脑海中,我的wordpress网站有2个插件,一个FTP同步,它将从Server1到Server2的网站的未压缩版本备份。然后是另一个备份数据库的插件。
或者,是否存在人们知道的任何计划备份/恢复应用程序?预定的恢复似乎是一般的滑落。
请注意,如果需要,我也可以访问Amazon S3,Dropbox和Google驱动器,但是我更喜欢直接在Server1和Server 2之间使用。
关于如何实现这一目标的想法很棒
答案 0 :(得分: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(我每天凌晨3:51执行此操作)。如果您设置cron通过电子邮件向您发送每个作业的结果,您将收到每日电子邮件,告诉您哪些文件已更改。
51 03 * * * ~/bin/remoteBackup.sh
每天早上我收到一封电子邮件,让我知道备份已成功,其中包含自昨天以来发生变化的文件列表(通常只是缓存文件,有时是新内容,偶尔会出现黑客)。太棒了。