“保住命根子”——网站数据备份(1):backup.sh

俗话说得好:“数据是网站的命根子”。数据之于网站,就像灵魂之于身体,操作系统之于计算机。正因如此,就像我们要爱护身体一样,站长当然也要保护好自己的数据。保护数据有很多方法,对数据进行备份是其中最有效也最好的解决办法。这两篇文章我就要和大家聊一聊备份数据的那些解决方案。今天带来的是第一种:backup.sh。剩下的后面会说。好吧,我的上帝,既然前面已经扯了那么多废话,那就让我们进入正题吧!(莫名基督)
首先给大家介绍一下backup.sh这玩意儿的来头:

backup.sh是由Linux和服务器圈内知名大佬秋水逸冰开发的基于Linux Shell的备份工具,功能非常强大。

既然backup.sh很强大,那它可以做什么呢?作者说了:

1、支持 MySQL/MariaDB/Percona 的数据库全量备份或选择备份;
2、支持指定目录或文件的备份;
3、支持加密备份文件(需安装 openssl 命令,可选);
4、支持上传至 Google Drive(需先安装 gdrive 并配置,可选);
5、支持在删除指定天数本地旧的备份文件的同时,也删除 Google Drive 上的同名文件(可选)。
6.支持上传备份文件到 FTP

看完了它的介绍,那么下面我们就开始动手吧!
首先惯例,下载编译:

wget --no-check-certificate https://github.com/teddysun/across/raw/master/backup.sh
chmod +x backup.sh

接着使用类似WinSCP那种的文件浏览器登录到服务器,打开脚本文件进行编辑配置,编辑的代码位置在代码中########## START OF CONFIG #################### END OF CONFIG ##########中间,每一个配置下面会有一个变量,变量就是写入配置的地方,下面是作者给出的编辑参数:
首先是指定要备份的文件或目录,需要编辑其中的BACKUP参数,可以同时指定多个,格式如下:
备份单个文件/目录:

BACKUP[0]="/data/wwwroot/example.com/"

以上的代码是指备份/data/wwwroot/example.com这个目录。
备份多个目录需要创建更多的变量,格式如下
BACKUP[0]="/a/"
BACKUP[1]="/b/"

接着往下变量名就像BACKUP[3]BACKUP[4]这样写就行了,有点编程知识的人都知道,这是使用的数组变量,包括PHP也是可以这样写的。
接着是数据库备份设置:
首先需要提供数据库root密码,需要编辑MYSQL_ROOT_PASSWORD参数,格式刚刚带大家熟悉了。
接着设置数据库,需要编辑MYSQL_DATABASE_NAME参数,可以使用刚才讲的BACKUP参数的数组形式来指定备份。
再指定一个目录进行备份,这次要编辑的是LOCALDIR,格式参考前面。
下面给出作者在文档里写的其他设置的参数:
FTP选项:

FTP_FLG (上传文件至 FTP 的 FLG,true 为上传,false 为不上传)
FTP_HOST (连接的 FTP 域名或 IP 地址)
FTP_USER (连接的 FTP 的用户名)
FTP_PASS (连接的 FTP 的用户的密码)
FTP_DIR (连接的 FTP 的远程目录,比如: public_html)

备份设置:

LOCALAGEDAILIES (指定多少天之后删除本地旧的备份文件,默认为 7 天)
DELETE_REMOTE_FILE_FLG (删除 Google Drive 或 FTP 上的备份文件 FLG,true 为删除,false 为不删除)
ENCRYPTFLG (加密FLG,true 为加密,false 为不加密,默认是加密)
BACKUPPASS (加密密码,重要,务必要修改)
LOCALDIR (备份目录,可自己指定)
TEMPDIR (备份目录的临时目录,可自己指定)
LOGFILE (脚本运行产生的日志文件路径)

设置好了就可以运行来备份了,执行命令:
./backup.sh
也可以使用cron来定时备份,在设置cron之前,需要将脚本中的这段代码修改一下:
log() {
echo "$(date "+%Y-%m-%d %H:%M:%S")" "$1"
echo -e "$(date "+%Y-%m-%d %H:%M:%S")" "$1" >> ${LOGFILE}
}

改为:
log() {
echo -e "$(date "+%Y-%m-%d %H:%M:%S")" "$1" >> ${LOGFILE}
}

使用Google Drive备份需要下载GDrive工具,可以在 https://github.com/prasmussen/gdrive下载到。
最后附上作者撰写的文档:https://teddysun.com/469.html
好了,关于backup.sh就说到这儿,下篇再见!

过年了

不知不觉,又是一年春节,又是一个中国年
那就在这里祝大家春节快乐,阖家团圆,万事如意。
今年是狗年,祝大家狗年福旺财旺,汪汪汪!

【主机】Vultr新泽西VPS测评

话说快两个月没写过主机测评了,今天有空写一篇,好吧,切入正题。
Vultr可能是目前大牌主机商里卖的最便宜的一家,其在新泽西州皮斯卡特维和迈阿密的自建机房的VPS更便宜,最低卖到了$2.5一个月。DvBlog之前也在上面呆过一阵子,但是一直没有去测评这家。今天闲下来有空就搞了一台2.5刀的新泽西机房VPS准备做个测评。话不多说,开始测评!
官方给的配置是这样的,以备参考:

基础测试

看出来是KVM的,内存超了点儿,系统是官方的CentOS6,内核版本旧了点,硬盘一点没超。
IO测试

IO速度不错,毕竟是SSD硬盘的。
速度测试
全国Ping:

速度对于这个位置来说不错,毕竟地理位置是个坎。
上传下载速度测试:

速度不错,移动最好,联通次之,电信又次之。
网络测试
带宽大小:

够大了,基本都达到了100M以上。
线路测试:
电信:

经纽约、洛杉矶来国内,走Teila线路。
联通:

和电信一样。
移动:

走的KDDI旗下Telehouse家的NYIIX交换站到国内的,由于线路是日本公司运作,所以到国内的速度也差不了多少。
综合性能测试
使用UnixBench进行性能跑分:

855.5,有点儿低了。
测评完了,总结一下:
从性能上来看,Vultr新泽西比较偏中等,适合做个网站,梯子啥的;从速度,网络上来看,做梯子啥的比较适合移动线路,做网站实测过三网都很快。