由于意外丢失了更新多年的网站的数据,遗憾之余也意识到不管服务器厂商看起来多靠谱,自己备份数据都是非常重要的。下面就分享一个我自用的非常简单的备份方案,可以轻松备份数据到多个云存储厂商。
https://github.com/abenoseimei/cbe/releases/tag/v1.0.0
先在这里选择合适的二进制文件下载安装到你的服务器,比如我是 64位 amd 的 linux 服务器,那就在服务器运行命令
(如果没有你适配的版本,或者不想用现成的,可以用这个项目的源码自己编译,后续会更新具体操作步骤)
wget https://github.com/abenoseimei/cbe/releases/download/v1.0.0/cbe-v100-linux-amd64
mv cbe-v100-linux-amd64 /usr/bin/cbe
chmod +x /usr/bin/cbe
这样就安装完成了,怎么使用呢?命令格式是这样
cbe -c /etc/cbe.yaml -m aliyunoss -f /root/bak.tar.gz
-c, -m, -f 后边跟的参数分别是:配置文件路径,云存储模式,要上传的本地文件
当然光这样不行,还需要一个配置文件,格式是像这样:
https://github.com/abenoseimei/cbe/blob/main/cbe.yaml
新建一模一样的配置文件,填写好后放到一个固定的位置,比如 /etc/cbe.yaml
下边具体说说各个云储存模式的配置方法(用哪个就配哪个,都用就都配置):
1. aliyunoss (阿里云 OSS),进入阿里云 RAM 访问控制,创建一个用户,创建的时候要勾选 OpenAPI 调用访问,之后把 AccessKey ID 和 AccessKey Secret 记下填到 cbe.yaml 配置文件里,然后进入阿里云对象存储 OSS,进入你要用来上传备份的 Bucket(还没有的话新建一个,存储类型选标准存储),找 权限控制-> Bucket 授权策略,新增授权把刚才添加的子账号选进去,授权 “读/写” 就够了。在 Bucket 概览里可以找到 Endpoint (外网访问),这个填到配置文件里。阿里云 OSS 资源包现在价格是 40G 每年 9 元,建议先买他个十年。
2. tencentcos (腾讯云 COS),进入腾讯云 CAM 访问管理,创建一个用户,新建 API 密钥,把 SecretId 和 SecretKey 记下填到我们的配置文件里,然后进入腾讯云对象存储,进入你要用来上传备份的 Bucket(还没有的话新建一个),找 权限管理 -> 存储桶访问权限,用户权限里添加刚才创建的子账号,授予数据读取和写入权限。然后在这个桶的概览里找到 “访问域名”,这个就是 bucketUrl,填到配置文件里。腾讯云 COS 资源包,买那个深度归档存储容量包,10G 每年 1.2 元,这个最便宜,建议多买点。
3. googlecs (谷歌云存储),在谷歌云面板顶部搜索框里输入 IAM 找到 IAM & Admin 进入,找到 Service Accounts -> Create service account,新建服务账号,授权 Cloud Storage -> Storage Object Admin,创建之后 KEYS -> ADD KEY -> Create new key,选 json,就可以下载到一个文件,这个上传到你的服务器之后,把具体路径地址填到 cbe.yaml 配置文件里的 credential。projectID 和 bucketName 就是谷歌云的 project ID 和要上传备份用的桶名字。谷歌云存储有免费的 5G 存储空间,注意建桶的时候要选对,选 single region 的美国区域。
4. googledrive(Google Drive),我们可以利用共享跳过 OAuth 验证,这样配置简单很多。同样也是新建服务账号,角色权限给基本的 Basic -> Viewer,创建 KEY 并下载 json,然后 Google Drive 里新建一个文件夹,共享给刚才新建的服务号,权限是 Editor。把刚才下载的 json 传到服务器上,路径地址填到 cbe.yaml 里 googledrive -> credential。运行命令 cbe -c /etc/cbe.yaml -m googledrivelist 可以看到刚才共享的文件夹名字,后边括号里的那串东西是它的 ID,把它复制填到配置文件里的 parent 即可。
这样就可以配合 bash 和 crontab,实现自由的自动备份,或者你有其他软件或脚本,想直接调用这个命令,都很方便,具体的改天抽空更新。
https://github.com/abenoseimei/cbe/releases/tag/v1.0.0
先在这里选择合适的二进制文件下载安装到你的服务器,比如我是 64位 amd 的 linux 服务器,那就在服务器运行命令
(如果没有你适配的版本,或者不想用现成的,可以用这个项目的源码自己编译,后续会更新具体操作步骤)
wget https://github.com/abenoseimei/cbe/releases/download/v1.0.0/cbe-v100-linux-amd64
mv cbe-v100-linux-amd64 /usr/bin/cbe
chmod +x /usr/bin/cbe
这样就安装完成了,怎么使用呢?命令格式是这样
cbe -c /etc/cbe.yaml -m aliyunoss -f /root/bak.tar.gz
-c, -m, -f 后边跟的参数分别是:配置文件路径,云存储模式,要上传的本地文件
当然光这样不行,还需要一个配置文件,格式是像这样:
https://github.com/abenoseimei/cbe/blob/main/cbe.yaml
新建一模一样的配置文件,填写好后放到一个固定的位置,比如 /etc/cbe.yaml
下边具体说说各个云储存模式的配置方法(用哪个就配哪个,都用就都配置):
1. aliyunoss (阿里云 OSS),进入阿里云 RAM 访问控制,创建一个用户,创建的时候要勾选 OpenAPI 调用访问,之后把 AccessKey ID 和 AccessKey Secret 记下填到 cbe.yaml 配置文件里,然后进入阿里云对象存储 OSS,进入你要用来上传备份的 Bucket(还没有的话新建一个,存储类型选标准存储),找 权限控制-> Bucket 授权策略,新增授权把刚才添加的子账号选进去,授权 “读/写” 就够了。在 Bucket 概览里可以找到 Endpoint (外网访问),这个填到配置文件里。阿里云 OSS 资源包现在价格是 40G 每年 9 元,建议先买他个十年。
2. tencentcos (腾讯云 COS),进入腾讯云 CAM 访问管理,创建一个用户,新建 API 密钥,把 SecretId 和 SecretKey 记下填到我们的配置文件里,然后进入腾讯云对象存储,进入你要用来上传备份的 Bucket(还没有的话新建一个),找 权限管理 -> 存储桶访问权限,用户权限里添加刚才创建的子账号,授予数据读取和写入权限。然后在这个桶的概览里找到 “访问域名”,这个就是 bucketUrl,填到配置文件里。腾讯云 COS 资源包,买那个深度归档存储容量包,10G 每年 1.2 元,这个最便宜,建议多买点。
3. googlecs (谷歌云存储),在谷歌云面板顶部搜索框里输入 IAM 找到 IAM & Admin 进入,找到 Service Accounts -> Create service account,新建服务账号,授权 Cloud Storage -> Storage Object Admin,创建之后 KEYS -> ADD KEY -> Create new key,选 json,就可以下载到一个文件,这个上传到你的服务器之后,把具体路径地址填到 cbe.yaml 配置文件里的 credential。projectID 和 bucketName 就是谷歌云的 project ID 和要上传备份用的桶名字。谷歌云存储有免费的 5G 存储空间,注意建桶的时候要选对,选 single region 的美国区域。
4. googledrive(Google Drive),我们可以利用共享跳过 OAuth 验证,这样配置简单很多。同样也是新建服务账号,角色权限给基本的 Basic -> Viewer,创建 KEY 并下载 json,然后 Google Drive 里新建一个文件夹,共享给刚才新建的服务号,权限是 Editor。把刚才下载的 json 传到服务器上,路径地址填到 cbe.yaml 里 googledrive -> credential。运行命令 cbe -c /etc/cbe.yaml -m googledrivelist 可以看到刚才共享的文件夹名字,后边括号里的那串东西是它的 ID,把它复制填到配置文件里的 parent 即可。
这样就可以配合 bash 和 crontab,实现自由的自动备份,或者你有其他软件或脚本,想直接调用这个命令,都很方便,具体的改天抽空更新。