PHP+CMS+网站 / Linux · 2019年11月2号 0

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

很久前介绍过MinIO服务器,一个开源的轻量级对象存储服务,具体查看→传送门,用起来挺不错的,搭建也非常方便,而这里要说的其实是MinIO服务器是的一个客户端MinIO Client,主要的功能就是可以自动监听文件夹,然后实时同步到远程的MinIO服务器,也支持同步到Amazon S3、Google云存储,同样的安装十分简单,我们可以拿来同步备份博客或者其他数据文件。
安装
文档地址:https://docs.min.io/
基本上MinIO服务器和客户端支持在很多系统上安装,比如Windows、macOS等,这里主要说Linux。
1、安装MinIO Client

  1. wget https://dl.min.io/client/mc/release/linux-amd64/mc -P /usr/local/bin/
  2. chmod +x /usr/local/bin/mc

2、添加云存储

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云存储参数获取查看→传送门,Google云存储参数获取查看→https://cloud.google.com/storage/docs/migrating?hl=en#keys
基本上这里配置好了后,我们可以使用很多命令远程操作云存储上的文件了。
3、开始同步
先创建一个桶,名称为moerats,可自行修改,使用命令:
mc mb minio/moerats
接下来比如我要同步网站根目录/www/wwwroot/moe,使用命令:

#该命令只会同步文件,但本地修改或删除,云存储不会变化
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 7、Debian 8+、Ubuntu 16+。

#修改成你需要实时同步备份的文件夹
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为启动命令,默认为自行删除/修改也会同步,可自行修改参数。

启动并设置开机自启:

systemctl start minioc
systemctl enable minioc

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

https://docs.min.io/cn/minio-client-quickstart-guide.html