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

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

简单说明

本文不再依托于rclone, 由于只是自动上传到OneDrive, 故改用其它程序, 直接Go程序调用微软官方的API不香吗......同时, 备份脚本、切割日志脚本都是通用的, 需要自己修改里面的相关配置。

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

 

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

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

创建脚本

创建相关脚本, 如果你和我一样已经部署lnmp, 那么直接到lnmp的 tools子目录 下, cp 复制相关文件到其它位置就可以了。(当然直接改着用也不是不行, 只不过不推荐这么做, 记得之前的某种操作直接使得脚本文件内容回归到初始状态, 至今咱也不晓得为啥...)

#创建目录, 路径可以自行替换
mkdir /opt/lnmp-tools
 
#复制需要的两个脚本到该目录下
#博主下载的是lnmp1.8-full, 位置在/root下,根据自己的实际路径来替换, 参考如下:
cp -r /root/lnmp1.8-full/tools/cut-nginx-log.sh /root/lnmp1.8-full/tools/backup.sh /opt/lnmp-tools
 若是没有部署lnmp, 那么直接touch创建相关文件即可, 内容参考如下:
此处内容需要回复后并刷新才能查看

修改备份脚本(一)

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

修改日志切割脚本

这边就简单记录一下了, 也没啥主要

log_files_path  填写你需要被切割的log根路径, lnmp下默认是/home/wwwlogs

log_files_dir  这里是最终切割完的日志文件存放的位置, 默认是上一步中的路径下的"年份"文件夹

log_files_name  log根路径下需要备份的文件名, 注意, 这里不需要填写后缀

nginx_sbin  nginx程序的路径

save_days  保存的天数

至此, 你可以使用该脚本去切割nginx日志文件, 命令如下
#具体看你的cut_nginx_logs.sh路径
bash /opt/lnmp-tools/cut_nginx_logs.sh

修改备份脚本

存储位置

本内容需要登录后查看

数据库备份

本内容需要登录后查看

被备份文件(夹)路径

本内容需要登录后查看

不备份FTP

Enable_FTP 备份FTP文件夹的开关, 如果你和我一样不需要备份FTP, 那么直接改为 1 即可, 下方的信息不用管。 否则, 请保持默认, 并修改下方的FTP_Host、FTP_Username、FTP_Password、FTP_Dir相关信息。

至此, 备份脚本已经可以使用了。命令如下
#具体看你的cut_nginx_logs.sh路径
bash /opt/lnmp-tools/backup.sh

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

部署程序

虽然是两年前的程序,  但完全够用了, 。

类似的还有很多, 选择一个适合自己的程序就ok, 这里就简单记录下, 若需要更详细的内容请移步: 传送门

功能

  • 支持国际商业版, 个人版、家庭版, 世纪互联版。
  • 支持上传文件和文件夹到指定目录,并保持上传前的目录结构。
  • 支持命令参数使用, 方便外部程序调用。
  • 支持自定义上传分块大小。
  • 支持多线程上传(多文件同时上传)。
  • 支持根据文件大小动态调整重试次数。
  • 支持跳过网盘中已存在的同名文件。

1 下载

#x64
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/amd64/linux/OneDriveUploader -P /usr/local/bin/
#x86
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/i386/linux/OneDriveUploader -P /usr/local/bin/

#arm
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/arm/linux/OneDriveUploader -P /usr/local/bin/

2 赋予权限

chmod +x /usr/local/bin/OneDriveUploader

3 授权

选择对应的版本, 进行授权, 具体请看下方 "初始化配置文件"。

本内容需要登录后查看

4 初始化配置文件

# 国际商业版
OneDriveUploader -a "url"
# 个人版、家庭版
OneDriveUploader -ms -a "url"
# 世纪互联
OneDriveUploader -cn -a "url"

# 在浏览器地址栏中获取以 http://loaclhost 开头的整个url内容
# 将获取的完整url内容替换命令中的 url 三个字母
# 每次产生的 url 只能用一次, 重试请重新获取 url
# 此操作将会自动初始化的配置文件
# 提示 Init config file: '/path/to/auth.json' 则成功

使用示例

# 一些示例:
# 将同目录下的 mm00.jpg 文件上传到 OneDrive 网盘根目录
OneDriveUploader -s "mm00.jpg"

# 将同目录下的 mm00.jpg 文件上传到 OneDrive 网盘根目录,并改名为 mm01.jpg
OneDriveUploader -s "mm00.jpg" -n "mm01.jpg"

# 将同目录下的 Download 文件夹上传到 OneDrive 网盘根目录
OneDriveUploader -s "Download" 

# 将同目录下的 Download 文件夹上传到 OneDrive 网盘Test目录中
OneDriveUploader -s "Download" -r "Test"

# 将同目录下的 Download 文件夹上传到 OneDrive 网盘Test目录中, 使用 10 线程
OneDriveUploader -t 10 -s "Download" -r "Test"

# 将同目录下的 Download 文件夹上传到 OneDrive 网盘Test目录中, 使用 15 线程, 并设置分块大小为 20M
OneDriveUploader -t 15 -b 20 -s "Download" -r "Test"

# 将同目录下的 Download 文件夹上传到 OneDrive 网盘Test目录中, 使用配置文件中的线程参数和分块大小参数
OneDriveUploader -f -c "/urs/local/auth.json" -s "Download" -r "Test"

# 将同目录下的 Download 文件夹上传到 OneDrive 网盘Test目录中, 使用配置文件中的线程参数和分块大小参数,并跳过上传网盘中已存在的同名文件
OneDriveUploader -f -c "/urs/local/auth.json" -skip -s "Download" -r "Test"

下一篇

阅读剩余
THE END