俗话说得好:“数据是网站的命根子”。数据之于网站,就像灵魂之于身体,操作系统之于计算机。正因如此,就像我们要爱护身体一样,站长当然也要保护好自己的数据。保护数据有很多方法,对数据进行备份是其中最有效也最好的解决办法。这两个月的Website梦工厂我就要和大家聊一聊备份数据的那些解决方案。今天带来的是第一种:backup.sh。好吧,我的上帝,既然前面已经扯了那么多废话,那就让我们进入正题吧!(莫名基督)
首先给大家介绍一下backup.sh这玩意儿的来头:
backup.sh是由Linux和服务器圈内知名大佬秋水逸冰开发的基于Linux Shell的备份工具,可以全面实现Linux环境下网站数据库以及文件的定时定期自动备份,支持备份到Google Drive和其他Linux服务器和任意支持FTP的服务器。功能非常强大。
既然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
好了,这期Website梦工厂到此就结束了,希望各位都能保护好网站的数据,下期再见!
放张图镇楼
4条评论
秋水逸冰的脚本都比较出色!
的确,现在也有一些优秀的脚本都是基于秋水的脚本改良的
感觉定时备份和备份到Google drive写得太简单。