使用脚本定时备份mysql到Google Drive

前言

由于昨天在服务器上瞎几把乱搞,差点把服务器搞崩之后,今天就打算写个脚本自动备份服务器上的数据库。主要是用了shell脚本,本来是打算用万能的js来写脚本的,本着学习的心理选择了shell脚本,然后将本地备份同步到Google Drive。

shell 脚本备份

下载脚本,并给予执行权限

wget https://raw.githubusercontent.com/zhaofinger/backup-shell/master/backup.sh
chmod +x back.sh

打开脚本,修改配置

vim backup.sh

以下配置需要根据个人情况进行修改,直接按照注释提示进行修改

# 本地备份目录
LOCAL_BAK_DIR="/root/backups/data/"
# 本地临时备份目录
TEMP_BAK_DIR="/root/backups/temp/"
# 备份日志
BAK_LOG_FILE="/root/backups/backup.log"
# mysql root 密码
MYSQL_ROOT_PWD=""
# 需要备份的数据库名称
MYSQL_DATABASE_NAME[0]="database1"
# MYSQL_DATABASE_NAME[1]="database2"
# MYSQL_DATABASE_NAME[2]="database3"

运行./backup.sh之后就可以将数据备份到本地。

gdrive

gdrive 是一个命令行 Google Drive 工具,使用还挺方便。

  1. 根据系统下载相应版本,例如
    • linux64位: wget -O /usr/bin/gdrive http://dl.lamp.sh/files/gdrive-linux-x64
    • linux32位: wget -O /usr/bin/gdrive http://dl.lamp.sh/files/gdrive-linux-386
  2. 更改执行权限chmod +x /usr/bin/gdrive
  3. 配置账号,运行gdrive about后悔让你打开一个地址拿到校验code复制过来粘贴回车一下就ok了。

再次运行./backuo.sh就会将备份文件同步到Google Drive。

crontab 定时任务

使用crontab来配置定时运行backup脚本。

  1. crontab -e打开crontab配置文件
  2. 增加一行,表示每天凌晨一点半运行一下脚本。
    30 1 * * * root bash /root/myData/backup.sh