使用 rclone 每天定时备份博客

Rclone一键安装脚本

Rclone官方提供了一键安装脚本:

1
2
3
4
5

curl https://rclone.org/install.sh | sudo bash

rclone config

备份脚本编写及授权

创建脚本文件

1
2
3
4
5
6
7
8
9

mkdir /home/Backup

chmod +x /home/Backup

touch /home/Backup/backup.sh

vi /home/Backup/backup.sh

编写备份脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

!/bin/bash

定义GOOGLE DRIVE的备份目录

GD_PATH="GdriveBackup:Backup"

定义备份的目录及文件,不同的目录用空格分开

BACKUP_SRC="/home/wwwroot/omo.moe/usr"

定义临时文件存放目录

BACKUP_DST="/home/Backup"

设置MYSQL基本信息

MYSQL_SERVER="localhost"

MYSQL_USER="root"

MYSQL_PASS="your password"

定义想要备份的数据库,多个数据库用空格分开

BACKUP_DATABASE="typecho_omo"

定义文件前缀名

NOW=$(date +"%Y.%m.%d")

OLD=$(date -d -5day +"%Y.%m.%d")

备份网站数据文件

zip -r $BACKUP_DST/auto_fileData_$NOW.zip $BACKUP_SRC

备份mysql数据库

mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --databases $BACKUP_DATABASE > $BACKUP_DST/$NOW-auto-Databases.sql

使用rclone上传到google drive

rclone copy -v --stats 15s --bwlimit 40M $BACKUP_DST/ --include "$NOW-auto-Databases.sql" --include "auto_fileData_$NOW.zip" $GD_PATH

删除本地的临时文件

rm -f $BACKUP_DST/$NOW-auto-Databases.sql $BACKUP_DST/auto_fileData_$NOW.zip

删除5天前的备份

rclone delete $GD_PATH/ --include "$OLD-auto-Databases.sql" --include "auto_fileData_$OLD.zip"

赋予执行权限

1
2
3

chmod +x /home/Backup/backup.sh

创建自动备份任务并测试

使用 crontab 每天4点定时执行自动备份脚本

1
2
3

crontab -e

复制以下内容粘贴并输入:wq保存:

1
2
3

0 4 /bin/bash /home/backup/backup.sh > /dev/null 2>&1

手动测试脚本是否正确运行

1
2
3

bash /home/Backup/backup.sh

设置时区为东八区

1
2
3

timedatectl set-timezone Asia/Shanghai

重启定时任务

1
2
3

service crond restart

重启系统日志

1
2
3

service rsyslog restart

观察系统日志尾巴状态,确认时区是否已调整成功

1
2
3

tail -f /var/log/cron

转自:https://omo.moe/archives/616/