对于我们这些博主而言,除了研究原创文章和拓展流量之外,最重要的就是WordPress备份了。回想起很久很久以前,在使用虚拟主机建站时,博主根本就没做过备份。
原因主要有两点:
一是因为当时用WordPress建站只是一种简单的爱好,对博客的重要性认识不足;二是知识欠缺,脑子里压根就没有备份这根弦。
直到有一天,悲剧来了。。
不知道此刻正在看文章的你是否也和博主一样,忍受不了管理后台的WordPress更新提示。每次看到有更新的插件,总忍不住去升级。
一般来说,为了系统安全,插件和主题升级到最新版本是推荐的,有时候也是必需的。
但这往往会忽略一个重要问题,就是兼容性。
这包括两个方面:插件和主机系统的兼容性,以及插件和插件之间的兼容性。
比如,某个插件旧的版本是用PHP5.X写的,新版本则是用PHP7.X写的,而你的主机系统使用的是PHP5.X,升级后则可能就会出现不兼容。
或者,一个插件升级后和另一个或几个插件运行时有冲突,同样会导致不兼容。
不兼容的后果就是:网站打不开!(500 Internal Server Error)
是不是有点眼熟?
于是,那天我登入WordPress后台,在升级了几个插件之后,网站突然就显示500错误了。
当时博主的建站知识非常有限,只能去找虚拟主机商家解决。
一封接着一封的工单,耗费了差不多一整天的时间,最后主机商答应可以限时下载他们自己备份的网站数据。
但是,这个数据是十几天前的。因为他们只提供每半月一次的WordPress整站备份。
好在博客更新并不频繁,而且后续网站恢复也很顺利,所以丢失的数据并不算多。但是,这仍然让博主感觉非常不愉快,并且直到现在,想起来多少还有些后怕。
(现在看来,其实当时并不需要那么麻烦,只要把插件目录一个一个的改名再启用,然后找出异常插件并将其停用就可以了。)
从这件事上,博主学到了两点教训:
①WordPress整站数据一定要经常备份;
②插件一定不要着急升级,最好等一段时间(比如半个月)后再升级,并且升级前做好整站备份和SnapShot快照备份(如果你的VPS支持的话)。
所以,自那之后,博主所有的网站都会每周备份至少两次。
起初是通过手动备份,压缩整站数据并导出数据库,保存在服务器上,同时下载到电脑里。
后来,随着博主对Linux命令的日益熟练,发现在WordPress备份过程中,很多手动操作完全可以通过简单的编程来实现全程自动化,从而极大提高备份效率。
博主目前使用WordPress备份脚本(详见下文),每天定时自动备份一次,并上传到远程 VPS/FTP 空间。同时,本机VPS和远程VPS均保留最近N次的备份数据。
此外,使用Hostwinds提供的SnapShot快照备份功能,还可以随时备份整个VPS系统,更进一步确保网站数据的安全。
本机VPS + 远程VPS + SnapShot快照,构建起三重备份存储,再也不用担心数据丢失了。
当然,这完全得益于使用VPS且纯命令管理的这种建站方式。而那种采用可视化面板(比如 cPanel 或者 DirectAdmin )的建站方式,几乎是没有机会学习和实践这些Linux知识的。
下面,本文将分享博主自用的两种WordPress备份方法:以前使用过的手动备份命令,以及目前正在使用的自动备份脚本。
同时,也会涉及WordPress的还原和恢复,以及WordPress搬家和迁移等操作介绍。
#1、手动备份命令
在Linux系统下,对WordPress进行手动备份其实也并不难。主要涉及两部分:网站源文件备份和对应的数据库备份。
① 网站源文件备份
为了方便管理,我们先建立一个文件夹专门存放备份数据,比如 /home/backup/ :
以本站 seoimo.com 为例,压缩网站根目录并移动到 /home/backup/ 文件夹下(为方便管理,博主添加了备份日期,建议你也这样做):
# tar -zcvf seoimo-2019-07-08.tar.gz seoimo.com
# mv seoimo-2019-07-08.tar.gz /home/backup/
好了,整站已经备份完成。接下来,开始备份网站数据库。
② 网站数据库备份
首先,打开 /home/backup/ 文件夹,我们需要将数据库备份在这里:
# lnmp database list
输入 root 数据库密码(参考 #6 + 搭建LAMP环境),即可查看当前数据库列表。
选择需要备份网站的对应数据库,以本站的 sjk_seoimo 为例:
再次输入 root 数据库密码,即可完成数据库备份。
通过命令 # ls -la 查看当前目录,应该能看到已经备份好了的压缩包。
此时,可通过 FTP 工具下载到本地电脑保存,也可以上传到其他 VPS/FTP 上保存。
#2、自动备份脚本
如果只是偶尔备份几次,用上面的方法进行手动备份倒没太大的不便。
但如果你需要经常备份,比如每天备份一次,那么手动备份的效率就太低了。
设想一下,你需要每天至少登录一次VPS,接着运行一系列命令,然后再上传到其他 VPS 或者 FTP 空间。
甚至,如果你想下载到本地电脑,几百MB甚至几个GB的压缩包,也是够传一段时间的。
实际上,在手动备份几次之后,博主就已经厌倦了这种单调且低效的备份方式。
所以,自己写了一个相对简单适用的WordPress自动备份脚本。
其主要功能有以下几点:
①自动备份当前VPS上所有WordPress根目录(网站数据)以及对应的数据库;
②同时备份整个数据库目录,以及网站相关目录比如SSL证书等;
③支持自动FTP上传到其他VPS或者FTP空间;
④支持自定义备份频率和保留最近N次备份;
⑤支持自动恢复(从本机VPS或者远程FTP),以及搬家/迁移。
有几点需要设置的变量(关于远程FTP、备份名称和备份保留次数等等),说明如下;若是没有远程FTP,相关设置可以不填,备份只保存在本机VPS上面。
FTP_USER=”ftpusername” (远程FTP用户名)
FTP_PASSWD=”ftpuserpasswd” (远程FTP密码)
BACKUP_NAME=”seoimo-wp-backup” (备份名称,建议只更改 seoimo 即可)
BACKUP_NUMBER=5 (备份保留次数)
MYSQL_ROOT_PASSWD=”mysqlrootpasswd” (ROOT数据库密码)
FTP_BACKUP=”/home/backup” (远程FTP备份目录,默认即可)
DIR_BACKUP=”/home/backup” (本机VPS备份目录,默认即可)
#3、脚本使用方法
除了上面提到的相关变量需要设置以外,此脚本在使用前还需要做如下几点配置。主要是在本机VPS和远程 VPS/FTP 空间上的配置。
①本机 VPS 上的配置
第一、需要安装下 ftp 命令,否则可能会提示 -bash: ftp: command not found 错误:
然后,新建备份目录 /home/backup/ :
如果已经提前创建好了此备份目录,则可直接跳过该步。
②远程 VPS/FTP 上的配置
这里演示的是远程VPS上创建 FTP 用户的操作,如果你已有 FTP 账户,可直接跳过该步。
首先,仍然是新建备份目录 /home/backup/ :
其次,在lnmp1.6环境下安装 FTP 服务端:
# cd /root/lnmp1.6-full
# bash pureftpd.sh
然后,添加 FTP 用户:
自行设置FTP用户名、密码以及备份目录的绝对路径 /home/backup/ 如下:
| Manager for LNMP, Written by Licess |
+——————————————-+
| https://lnmp.org |
+——————————————-+
Enter ftp account name: ftpusername
Enter password for ftp account ftpusername: ftpuserpasswd
Enter directory for ftp account ftpusername: /home/backup
Password:
Enter it again:
Created FTP User: ftpusername Sucessfully.
最后,为了防止在使用 FTP 工具上传时,可能会提示 “553 Can’t open that file: Permission denied” 的错误,建议更改下权限:
至此,关于FTP备份的准备工作已全部完成。
搬瓦工推荐方案
方案 | 内存 | CPU | 硬盘 | 流量/月 | 带宽 | 机房 | 价格 | 购买 |
---|---|---|---|---|---|---|---|---|
CN2 (最便宜) |
1GB | 1核 | 20GB | 1TB | 1Gbps | DC3 CN2 DC8 ZNET |
$49.99/年 | 直达 |
CN2 | 2GB | 1核 | 40GB | 2TB | 1Gbps | $52.99/半年 $99.99/年 |
直达 | |
CN2 GIA-E (最推荐) |
1GB | 2核 | 20GB | 1TB | 2.5Gbps | DC6 CN2 GIA-E DC9 CN2 GIA 日本软银 JPOS_1 荷兰 EUNL_9 |
$49.99/季度 $169.99/年 |
直达 |
CN2 GIA-E | 2GB | 3核 | 40GB | 2TB | 2.5Gbps | $89.99/季度 $299.99/年 |
直达 | |
HK | 2GB | 2核 | 40GB | 0.5TB | 1Gbps | 中国香港 CN2 GIA | $89.99/月 $899.99/年 |
直达 |
HK | 4GB | 4核 | 80GB | 1TB | 1Gbps | $155.99/月 $1559.99/年 |
直达 | |
TOKYO | 2GB | 2核 | 40GB | 0.5TB | 1.2Gbps | 日本东京 CN2 GIA | $89.99/月 $899.99/年 |
直达 |
TOKYO | 4GB | 4核 | 80GB | 1TB | 1.2Gbps | $155.99/月 $1559.99/年 |
直达 | |
搬瓦工优惠码:BWH3HYATVBJW | 2022年最新搬瓦工VPS购买图文教程 |