最近在 blog 上新增了 2 个页面,见导航栏中的 delicious 和 memory。由于用到了 mysql,考虑到数据安全,还是得经常备份。之前就想试用 Rclone,所以这次就选择用 Rclone+box.com 的组合。有个缺点就是 box 的认证授权只有 60 天,每 2 个月就要手动刷新下 token。(看官方文档介绍,有的云存储 token 过期时间会很长如 pikpak)。
#!/bin/bash
# MySQL数据库信息
MYSQL_USER="xxxxxxxx"
MYSQL_PASSWORD="xxxxxxxx"
#提前手动创建好备份的目录
BACKUP_DIR="/tmp/backup"
REMOTE_NAME="remote"
# 定义备份文件的文件名
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
BACKUP_FILE="$BACKUP_DIR/backup_$TIMESTAMP.sql"
# 备份多个数据库
mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --databases delicious memory > "$BACKUP_FILE"
# 使用rclone上传备份到远程
rclone copy "$BACKUP_FILE" "$REMOTE_NAME:/backup/linode"
sudo -v ; curl https://rclone.org/install.sh | sudo bash
#开启交互式配置流程。可以全部都选 default
rclone config
Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
rclone
了。#列出 Box 顶层的目录
rclone lsd remote:
#列出 Box 中的所有文件
rclone ls remote:
#将本地目录复制到名为 backup 的 Box 目录
rclone copy /home/source remote:backup
#路径可以根据需要深度,例如 remote:directory/subdirectory
crontab -e
,编辑一条新的定时任务。每 15 天自动备份上传到云存储。0 3 1,15 * * /bin/bash /root/backup/backup_linode_mysql.sh