Linux下定时备份站点, 并自动上传到OneDrive (一)
之前水了几篇相关的文章, 像切割nginx日志, 定时备份文件, rclone挂载OneDrive等等。 当时的想法是不依赖于各种面板, 纯命令行下实现想要的效果, 尽可能的利用好有限的存储空间, 方便以后分析或者存储备份相关文件。每个人都有自己的需求, 这里就随手记录下, 我自己需求实现的完整过程吧......
简单说明
本文不再依托于rclone, 由于只是自动上传到OneDrive, 故改用其它程序, 直接Go程序调用微软官方的API不香吗......同时, 备份脚本、切割日志脚本都是通用的, 需要自己修改里面的相关配置。
* 本文部分内容不对游客开放, 不喜欢的可以又上角叉掉。
* 考虑到内容有点长, 所以分两篇水吧。
创建脚本
创建相关脚本, 如果你和我一样已经部署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
修改备份脚本(一)
正如开头说的, 每个人的需求不太一样, 所以这里就记录我自己的需求实现的具体过程。
修改日志切割脚本
这边就简单记录一下了, 也没啥主要
log_files_path
填写你需要被切割的log根路径, lnmp下默认是/home/wwwlogs
log_files_dir
这里是最终切割完的日志文件存放的位置, 默认是上一步中的路径下的"年份"文件夹
log_files_name
log根路径下需要备份的文件名, 注意, 这里不需要填写后缀
nginx_sbin
nginx程序的路径
save_days
保存的天数
#具体看你的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"