前言
由于昨天在服务器上瞎几把乱搞,差点把服务器搞崩之后,今天就打算写个脚本自动备份服务器上的数据库。主要是用了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 工具,使用还挺方便。
- 根据系统下载相应版本,例如
- 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
- linux64位:
- 更改执行权限
chmod +x /usr/bin/gdrive
- 配置账号,运行
gdrive about
后悔让你打开一个地址拿到校验code复制过来粘贴回车一下就ok了。
再次运行./backuo.sh
就会将备份文件同步到Google Drive。
crontab 定时任务
使用crontab来配置定时运行backup脚本。
crontab -e
打开crontab配置文件- 增加一行,表示每天凌晨一点半运行一下脚本。
30 1 * * * root bash /root/myData/backup.sh