一些准备工作:rclone和网盘授权
rclone的安装见官方安装文档。
各种网盘配置见官方配置文档,博主这里用的是坚果云的WebDAV,按照文档操作即可。
备份脚本编写及授权
创建脚本文件:
mkdir /home/typechoBackup touch /home/typechoBackup/backup.sh vi /home/typechoBackup/backup.sh
|
脚本文件内容示例如下,不需要的功能自行在前方加上#号注释掉,删除几天前的备份,数字自行修改即可。其他内容自行按需修改成自己的即可:
[collapse status=”false” title=”备份脚本文档实例”]
#!/bin/bash # 定义坚果云WebDAV的备份目录 WebDAV_PATH="jianguoyun:Typecho"
# 定义备份的目录及文件,不同的目录用空格分开 BACKUP_SRC="/you/wwwroot/666.zhuomu.xyz"
# 定义临时文件存放目录 BACKUP_DST="/home/typechoBackup/tmp"
# 设置MYSQL基本信息 MYSQL_SERVER="localhost" MYSQL_USER="user" MYSQL_PASS="passwd"
# 定义想要备份的数据库,多个数据库用空格分开 BACKUP_DATABASE="user"
# 定义文件前缀名 NOW=$(date +"%Y-%m-%d") TIME=$(date +"%Y-%m-%d-%H-%M-%S") OLD=$(date -d -7day +"%Y-%m-%d") # 备份网站数据文件 tar -zcvf $BACKUP_DST/$NOW-website.tar.gz $BACKUP_SRC mv $BACKUP_DST/$NOW-website.tar.gz $BACKUP_DST/$TIME-website.tar.gz
# 备份mysql数据库 mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --databases $BACKUP_DATABASE > $BACKUP_DST/$NOW-database.sql mv $BACKUP_DST/$NOW-database.sql $BACKUP_DST/$TIME-database.sql
# 使用rclone上传到WebDAV rclone copy -v --stats 15s --bwlimit 1M $BACKUP_DST/ --include "*.sql" --include "*.tar.gz" $WebDAV_PATH
# 删除本地的临时文件
rm -f $BACKUP_DST/*.sql $BACKUP_DST/*.tar.gz
# 删除7天前的备份 rclone delete $WebDAV_PATH/ --include "$OLD*"
|
[/collapse]
使用chmod指令赋予执行权限:
chmod +x /home/typechoBackup/backup.sh
|
创建自动备份任务并测试
使用 crontab 每天4点定时执行自动备份脚本:
复制以下内容粘贴并输入:wq
保存:
0 4 * * * /bin/bash /home/backup/backup.sh >/dev/null 2>&1
|
手动测试看看脚本是否正确运行:
bash /home/typechoBackup/backup.sh
|
时区设置为东八区:
timedatectl set-timezone Asia/Shanghai
|
重启定时任务:
重启系统日志:
最后观察下系统日志尾巴状态,是否时区已经调整成功:
关于crontab格式详细说明,感兴趣的可以查阅:
crontab 格式详解
或者使用在线生成工具生成需要的定时任务:online crontab
最后查看你的坚果云确认下运转是否正常。