背景
我准备在自己的服务器上部署一个postgresql数据库,需要定时备份。准备用 定时任务 + pg_dump + oss 实现.
OSS相当于一种高级的云盘,一般是给部署在云服务器里的服务用的。
这里是介绍https://www.aliyun.com/product/oss。开发者应该学习一下,反正便宜。
安装和配置
使用sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash来安装。
配置
这里有个小坑。它提示你输入设置信息时,设置的顺序是随机的...
- 文件储存位置和中/英文 这个很简单
- endpoint: 从Aliyun 对象储存-Bucket列表-BUCKET_NAME-访问端口表格 里有。注意它要的是Endpoint不是bucker域名。例如
oss-cn-zhangjiakou.aliyuncs.com. - accessKeyID和accessKeySecret: 这里有 ram.console.aliyun.com/manage/ak
- stsToken 使用STS临时授权账号访问OSS时需要配置该项,否则置空即可。
基础使用方式
列出所有bucket
➜ ~ ossutil ls
CreationTime Region StorageClass BucketName
2023-04-02 13:49:29 +0800 CST oss-cn-zhangjiakou Standard oss://database-dumps
2021-05-13 14:29:28 +0800 CST oss-cn-zhangjiakou Standard oss://xyc-learn-oss
Bucket Number is: 2
打印文本文件内容
这个bucket里存放数据库备份
0.081879(s) elapsed
下载文件
ossutils cp 命令,用起来和linux cp命令差不多。
➜ ~ ossutil cp oss://database-dumps/数据库备份.txt 数据库备份.txt
Succeed: Total num: 1, size: 38. OK num: 1(download 1 objects).
average speed 0(byte/s)
0.149411(s) elapsed
➜ ~ ls
deployment.yml linux-amd64 mw-nodeport.yml projects scripts 数据库备份.txt
➜ ~ cat 数据库备份.txt
这个bucket里存放数据库备份
上传
类似于下载,只要换一下参数位置。
➜ ~ echo abcdef > lines.txt
➜ ~ ossutil cp lines.txt oss://database-dumps/lines.txt
Succeed: Total num: 1, size: 7. OK num: 1(upload 1 files).
average speed 0(byte/s)
0.145156(s) elapsed
总结
ossutils 这个工具是符合我的预期的。一会我将利用ossutil cp命令来把pg_dump出来的文件上传到OSS,来实现备份。