Linux下定时备份站点, 并自动上传到OneDrive (二)

之前水了几篇相关的文章, 像切割nginx日志, 定时备份文件, rclone挂载OneDrive等等。 当时的想法是不依赖于各种面板, 纯命令行下实现想要的效果, 尽可能的利用好有限的存储空间, 方便以后分析或者存储备份相关文件。每个人都有自己的需求, 这里就随手记录下, 我自己需求实现的完整过程吧......

简单说明

本文不再依托于rclone, 由于只是自动上传到OneDrive, 故改用其它程序......备份脚本、切割日志脚本都是通用的, 需要自己修改里面的相关配置。

  • 系统: Debian9、10 (其它的系统自测)
  • 基础脚本来源: lnmp1.8
  • 自动上传OneDrive程序来源: 萌咖
  • 计划任务: corntab

*  本文部分内容不对游客开放, 不喜欢的可以又上角叉掉。

*  考虑到内容有点长, 所以分两篇水吧。

回顾

 

修改备份脚本(二)

正如开头说的, 每个人的需求不太一样, 所以这里就记录博主自己需求实现的具体过程。

目标

需求简单描述

  • 1.每天切割指定日志文件,最多保留30份。
  • 2.每天打包指定站点目录、指定日志切割目录、指定数据库备份到同一个新目录下,最多保留3份(对,本地3份足以)。
  • 3.每天将“2”中生成的新目录上传到OneDrive指定目录里

通过上一篇文章的修改, 切割和备份的脚本已经是能够正常使用了, 可是和想要实现的效果还差那么点。怎么办呢? 继续瞎改喽~

修改日志切割脚本

修改 log_files_dir 这一行, 添加一个新的路径, 参考如下:

log_files_dir=${log_files_path}cut-nginx-logs/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")

修改备份脚本

修改 Backup_Home 这一行,指定到一个 "可变" 路径,参考如下:

Backup_Home="/home/backup/$(date +"%Y-%m%d")/"
本内容需要登录后查看

到这里,还需要处理“备份文件保留的数量”以及“上传到OneDrive”里,别急,慢慢来。

 

将备份的文件自动上传到OneDrive(二)

那接下来就是使用脚本, 搭配程序自动上传到OneDrive里, 以及处理保留的文件数量了

创建自动化脚本

创建脚本

touch /opt/OneDriveUploader/UploadOneDrive.sh
#编辑,内容参考如下
nano /opt/OneDriveUploader/UploadOneDrive.sh

脚本内容

目标

  • 将/home/backup/y-md当天日期的目录上传到OneDrive里
  • 上传完成后,目录/home/backup/ 下仅保留最近的3份“y-md”目录
  • 上传完成后,目录/home/wwwlogs/cut-nginx-logs/ 下仅保留最近的30份“y/m”目录

将上面的目标通过脚本的形式, 搭配corntab定时执行去实现自动化, 随便写写, 将就看看吧:

此处内容需要回复后并刷新才能查看

定时任务

先使用命令:corntab -e ,然后添加下面的内容。如果路径不一样,记得修改一下再使用。

0 0 * * * /opt/lnmp-tools/cut_nginx_logs.sh
3 0 * * * /opt/lnmp-tools/backup.sh
30 0 * * * /opt/OneDriveUploader/UploadOneDrive.sh

效果嘛:

  • 每天0点0分,切割日志文件
  • 每天0点3分,打包站点目录、切割后的日志目录、数据库,到/home/backup/Y-md
  • 每天0点30分,通过程序将打包后的/home/backup/Y-md目录上传到OneDrive里
阅读剩余
THE END