说明
1.该文章说明了如何使用oss保存备份文件并定期删除
2.使用oss是因为价格低廉,并且服务器的存储空间有限,备份文件按日期不断叠加,容易撑爆服务器存储空间,所以直接上传到oss上保存
3.在上传到oss的基础上,通过oss生命周期管理的方式来删除准备保存周期外的备份文件
用到的工具
oss命令行工具 ossutil
操作步骤
1.在服务器上准备sqlserver或mysql备份文件若干或其他备份文件
2.准备阿里云OSS存储,并添加访问access key
此处参考oss文档:/document_detail/31817.html?spm=a2c4g.11186623.6.544.6c7e1c7afkpQMv
3.完成步骤2后创建一个用于保存数据库存储的bucket
注意读写权限由于不是公共访问的,将读写权限设置为 私有
3.在完成以上步骤后下载ossutil工具并完成相关的配置
参考:/document_detail/50452.html?spm=a2c4g.11186623.6.703.12516dd73Ok8wh
./ossutil64 config请输入配置文件名,文件名可以带路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径): 未输入配置文件路径,将使用默认配置文件:/home/user/.ossutilconfig。 对于下述配置,回车将跳过相关配置项的设置,配置项的具体含义,请使用"help config"命令查看。请输入语言(CH/EN,默认为:CH,该配置项将在此次config命令成功结束后生效):CH请输入endpoint:http://oss-cn-请输入accessKeyID:yourAccessKeyID请输入accessKeySecret:yourAccessKeySecret请输入stsToken:
endpoint:填写Bucket所在地域的域名信息,可参见访问域名和数据中心。accessKeyID:查看方式请参见创建AccessKey。accessKeySecret:查看方式请参见创建AccessKey。stsToken:非必配项,若采用STS临时授权方式访问OSS需要配置该项,否则置空即可。stsToken生成方式参见临时访问凭证。
4.在服务器上编写脚本上传文件
以windows服务器为例,linux服务器同理
@echo offD:\program\ossutil64\ossutil64.exe cp -r -f -u D:\database oss://db-zhangjiakou/database@IF NOT %ERRORLEVEL% == 0 EXIT /b %ERRORLEVEL%del D:\database\*.* /s /q
说明:
第一行为关闭输出
第二行为上传命令,参数 -u 会自动忽略已上传的文件
第三行和第四行为判断如果没有错误说明上传成功,删除本地的备份文件
5.通过设置windows任务计划程序,或者linux 定时任务crontab
设置为每天或者定时周期运行脚本即可
6.通过基础设置-生命周期设置来设置文件的生命周期,达到自动删除文件的目的
红框中的为需要配置的选项。
删除文件配置有两种方式:一种是按照文件名字进行匹配,另外一种是对整个bucket进行配置(针对所有文件)
文件名匹配说明:
比如有
/db/test.bak
/db/test1.bak
/db/test2.bak
文件名字匹配是对整个名字,包含了路径名的。
比如 匹配 /db/ 上面三个都能够被匹配到。
如果是/db/test2.bak 则最后一个才能被匹配到。
清除策略一般按照 过期天数进行设置,就是按照上传文件日期到设置的天数区间,超过这个时间的就会自动删除。(注意:删除不是即时的,24小时内生效)