Linux VPS使用MinIO Client客户端实时同步备份文件

说明:博主很久前介绍过MinIO服务器,一个开源的轻量级对象存储服务,具体查看→传送门,用起来挺不错的,搭建也非常方便,而这里要说的其实是MinIO服务器是的一个客户端MinIO Client,主要的功能就是可以自动监听文件夹,然后实时同步到远程的MinIO服务器,也支持同步到Amazon S3Google云存储,同样的安装十分简单,我们可以拿来同步备份博客或者其他数据文件。

安装

文档地址:https://docs.min.io/

基本上MinIO服务器和客户端支持在很多系统上安装,比如WindowsmacOS等,这里主要说Linux

1、安装MinIO Client

代码语言:javascript
复制
wget https://dl.min.io/client/mc/release/linux-amd64/mc -P /usr/local/bin/
chmod +x /usr/local/bin/mc

2、添加云存储

代码语言:javascript
复制
#MinIO云存储,添加前需要在另一台服务器安装MinIO服务,教程查看https://www.moerats.com/archives/643/
mc config host add minio <Endpoint> <AccessKey> <SecretKey> S3v4

#Amazon S3云存储
mc config host add s3 https://s3.amazonaws.com <ALIAS> <Endpoint> <AccessKeyID> <SecretAccessKey> S3v4

#Google云存储
mc config host add gcs https://storage.googleapis.com <AccessKeyID> <SecretAccessKey> S3v2

这里只说MinIO云存储,Amazon S3云存储参数获取查看→传送门

基本上这里配置好了后,我们可以使用很多命令远程操作云存储上的文件了。

3、开始同步
先创建一个桶,名称为moerats,可自行修改,使用命令:

代码语言:javascript
复制
mc mb minio/moerats

接下来比如我要同步网站根目录/www/wwwroot/www.moerats.com,使用命令:

代码语言:javascript
复制
#该命令只会同步文件,但本地修改或删除,云存储不会变化
mc mirror -w /www/wwwroot/www.moerats.com minio/moerats

#该命令同步文件后,本地修改文件,会自行在云存储进行相应的修改
mc mirror -w --overwrite /www/wwwroot/www.moerats.com minio/moerats

#该命令同步文件后,本地修改/删除文件,会自行在云存储进行相应的修改/删除
mc mirror -w --overwrite --remove /www/wwwroot/www.moerats.com minio/moerats

这里加了--remove参数后,首次会强行让远程存储桶和本地文件一模一样,意味着会清空你的远程存储桶。

运行命令后你会发现远程MinIO云存储里的MOERATS就会出现你网站根目录所有文件了,以后根目录新增文件都会实时同步进去。

当然这里我们也可以同时实时备份多个文件夹到多个存储桶,自行修改名称就行了。

4、开机自启
新建systemd配置文件,适用CentOS 7Debian 8+Ubuntu 16+

代码语言:javascript
复制
#修改成你需要实时同步备份的文件夹
backup="/www/wwwroot/www.moerats.com"
#修改成你要备份到的存储桶
bucket="moerats"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/minioc.service <<EOF
[Unit]
Description=minioc
After=network.target

[Service]
Type=simple
ExecStart=(command -v mc) mirror -w --overwrite --remove {backup} minio/${bucket}
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

ExecStart为启动命令,默认为自行删除/修改也会同步,可自行修改参数。

启动并设置开机自启:

代码语言:javascript
复制
systemctl start minioc
systemctl enable minioc

该同步为单向的,只能本地影响到远程存储,远程的修改/删除则不会同步到本地,最后MinIO Client客户端的功能其实挺多的,想了解更多的可以查看文档→传送门。