Linux VPS一键备份脚本将网站数据备份到Google Drive

做网站最重要的就是网站数据了,我们除了在选择主机商的时候要小心谨慎外,网站日常的备份也是必不可少,失去了就追悔莫及了。这边分享一下TeddySun制作的一键脚本,该一键备份脚本的功能是将你的网站数据备份到Google Drive。

1.配置脚本

1.1.下载脚本,并赋予执行权限:

wget http://d.vps58.com/Scripts/backup/backup.sh
chmod +x backup.sh

1.2.配置脚本文件:

vim backup.sh

脚本文件配置说明如下:

ENCRYPTFLG(加密FLG,true 为加密,false 为不加密,默认是加密)
BACKUPPASS(加密密码,重要,务必要修改)
LOCALDIR(本地备份目录,可自己指定)
TEMPDIR(备份目录的临时目录,可自己指定)
LOGFILE(脚本运行产生的日志文件路径)
MYSQL_ROOT_PASSWORD(MySQL 或 MariaDB 的 root 用户密码)
BACKUP(需要备份的指定目录或文件列表,留空就是不备份目录或文件)
※ BACKUP 是一个数组变量,可以指定多个。举例如下:

BACKUP[0]="/data/www/default/test.tgz"
BACKUP[1]="/data/www/default/test/"
BACKUP[2]="/data/www/default/test2/"

2,配置gdrive命令

2.1.安装
64位:

wget -O /usr/bin/gdrive http://d.vps58.com/Scripts/gdrive/gdrive-linux-x64
chmod +x /usr/bin/gdrive

32位:

wget -O /usr/bin/gdrive http://d.vps58.com/Scripts/gdrive/gdrive-linux-386
chmod +x /usr/bin/gdrive

2.2.获取授权

gdrive list

根据提示用浏览器打开 gdrive 给出的 URL,点击接受(Accept),然后将浏览器上显示出来的字符串粘贴回命令行里,完成授权。

3,备份及自动备份

3.1.现在就可以使用命令备份文件了:

./backup.sh

3.2.脚本默认会显示备份进度,并在最后统计出所需时间。如果你想将脚本加入到 cron 自动运行的话,就不需要前台显示备份进度,只写日志就可以了。 这个时候你需要稍微改一下脚本中的 log 函数。

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}
}

4,备份恢复

4.1.下载google drive文件

gdrive download FileID

右击文件“获取用于共享的链接”获得一个格式为:https://drive.google.com/open?id=0B3DSOIlHW3x_U0Q5SkpqLWdoelU的链接,其中id=后面的即为文件的FileID。
4.2.备份文件格式为.tgz.enc,为加密文件,需要先通过命令解密:

openssl enc -aes256 -in [ENCRYPTED BACKUP] -out decrypted_backup.tgz -pass pass:[BACKUPPASS] -d -md sha1

其中ENCRYPTED BACKUP为备份文件名,BACKUPPASS为配置备份脚本时设置的密码,[]都要去掉。
4.3.解密文件后会获得一个.tgz格式的压缩文件,使用命令解压:

tar -zxPf [DECRYPTION BACKUP FILE]

注意:备份文件时就使用的绝对路径压缩,加-P的目的也是以绝对路径解压,如果希望将文件解压到当前目录,去掉参数-P即可。

VPS大全,做一个公平、客观、专业的VPS主机博客!