minio的客户端mc使用
1、安装
MinIO客户端的发布与MinIO服务器是分开的。为了最佳功能和兼容性,请使用与您的MinIO服务器版本相近发布的MinIO客户端版本。 例如,与您的MinIO服务器版本同一天或之后发布的MinIO客户端版本。您可以安装一个比MinIO服务器版本更新的MinIO客户端版本。 然而,如果MinIO客户端版本与MinIO服务器版本相差太远,您可能会因为这些差异而看到更多的警告或错误。
# curl https://dl.min.io/client/mc/release/linux-amd64/mc --create-dirs -o /usr/local/bin/mc # 下载客户端二进制文件
# chmod +x /usr/local/bin/mc # 添加执行权限
# mc --autocompletion # mc自动补全
# mc --help # 查看帮助
# mc -v # 查看版本信息
可以查看多个层级的命令帮助,比如:
# mc alias --help
# mc alias set --help
2、连接上minio
# set +o history # mc alias set myminio http://localhost:9000 minio 123456
# 或者是 mc alias set myminio http://localhost:9000 ACCESS_KEY SECRET_KEY
(如果您省略了 ACCESS_KEY 和 SECRET_KEY ,该命令将提示您在命令行界面(CLI)中输入这些值。)
# set -o history
# mc admin info myminio # 测试新添加的 MinIO 部署的连接
配置文件
mc使用一个 JSON 格式的配置文件来存储 某些类型的信息,比如为每个配置的 S3 兼容服务 设置的 别名 。
对于 Linux 和 macOS,默认的配置文件位置是 ~/.mc/config.json 。
3、bucket
# mc mb myminio/mybucket02 # 创建bucket
# mc ls myminio # 列出bucket
# mc rb myminio/mybucket02 # 删除没有object的bucket
# mc rb myminio/mybucket02 --force # 强制删除bucket,即使含有文件
4、object
# echo "This is my test file!" > test01.txt
# mc cp test01.txt myminio/mybucket/test01.txt # 上传测试文件
# mkdir testdir # 创建测试目录
# echo "This is my test02 file!" > testdir/test02.txt
# mc cp testdir myminio/mybucket --recursive # 上传测试目录,且递归上传该目录下的所有文件
# mc ls myminio/mybucket # 查看minio存储
# mkdir download
# mc cp myminio/mybucket/test01.txt download/ # 下载文件
# mc cp myminio/mybucket/testdir download/ --recursive # 下载目录,且递归下载
# mc rm myminio/mybucket/test01.txt # 删除文件
# mc rm myminio/mybucket/testdir --recursive --force # 删除目录,即使包含文件
# mc ls myminio/mybucket # 查看minio存储
5、policy
# mc admin policy list myminio # 列出 MinIO 上的所有预设策略
# mc admin policy remove myminio listbucketsonly # 删除policy
# vim listbucketsonly.json # 编写新的策略规则
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
# mc admin policy create myminio listbucketsonly ./listbucketsonly.json # 创建一个新的policy
6、user
# mc admin user add myminio newuser # 创建用户
# mc admin user disable myminio newuser # 禁用用户
# mc admin user enable myminio newuser # 启用用户
# mc admin policy attach myminio listbucketsonly --user newuser # 给用户关联策略
# mc admin user list myminio # 列出用户
# mc admin user list myminio --json # 以json格式列出用户
# mc admin user info myminio newuser # 显示用户详细信息
# mc admin user remove myminio newuser # 删除用户
7、group
# mc admin group add myminio somegroup newuser # 创建用户组,并关联用户
# mc admin policy attach myminio listbucketsonly --group somegroup # 给用户组关联策略
# mc admin group remove myminio somegroup newuser # 从组中移除用户
# mc admin group list myminio # 列出用户组
# mc admin group enable myminio somegroup # 启用用户组
# mc admin group disable myminio somegroup # 禁用用户组
# mc admin group info myminio somegroup # 显示用户组信息
# mc admin group remove myminio somegroup # 删除用户组,只有当用户组为空,即用户组里不存在用户时,才可删除
8、config
# mc admin config export myminio #获取集群配置
# mc admin config export myminio > my-serverconfig #获取集群配置并重定向至文件
9、集群管理
# mc admin info --debug myminio # 显示debug调试
# mc admin info myminio --json # 指定显示json格式
# mc admin service restart myminio # 重启minio服务
10、命令快速参考
mc 命令:
mc admin 命令:
| Command | 描述 |
|---|---|
mc admin accesskey |
mc admin accesskey 命令及其子命令为 MinIO 部署上的内部管理用户创建和管理 Access Keys 。 |
mc admin cluster bucket |
mc admin cluster bucket 命令及其子命令提供了用于手动导入和导出 MinIO 存储桶元数据的工具。 |
mc admin cluster iam |
mc admin cluster iam 命令及其子命令提供了用于手动导入和导出 MinIO 身份和访问管理(IAM) 元数据的工具。 |
mc admin decommission |
mc admin decommission 命令启动了 MinIO 服务器池 的退役过程。 退役设计用于移除硬件不再足够或性能 不佳的服务器池。MinIO 会根据每个池中可用 的免费空间比例,自动将数据从退役的池迁移 到部署中的剩余池。 |
mc admin group |
mc admin group 命令用于在 MinIO 部署上管理组。 |
mc admin heal |
mc adminheal 命令扫描已损坏或损坏的对象并修复这些对象。 |
mc admin info |
mc admin info 命令显示有关 MinIO 服务器的信息。 对于分布式 MinIO 部署,mc admin info 命令 会显示部署中每个 MinIO 服务器的信息。 |
mc admin kms key |
mc admin kms key 命令通过 MinIO Key Encryption Service (KES) 执行加密密钥管理操作。 |
mc admin logs |
使用 mc admin logs 命令来显示 MinIO 服务器的日志。 |
mc admin policy |
mc admin policy 命令用于管理用于 MinIO Policy-Based Access Control (PBAC)的策略。 MinIO PBAC 使用与IAM兼容的策略JSON文档来定义访问MinIO服务器上资源的规则。 |
mc admin prometheus |
mc admin prometheus 命令及其子命令可访问 MinIO Prometheus 指标。 |
mc admin rebalance |
mc admin rebalance 命令允许在 MinIO 部署上启动、监控或停止重新平衡操作。 重新平衡会在部署中的所有存储池之间重新分配对象。 |
mc admin replicate |
mc admin replicate 命令用于创建和管理一组 MinIO 对等站点的 站点复制。 站点复制模拟了 active-active 的存储桶复制,但是它是针对多个 MinIO 部署的。 无论在哪里对 IAM 设置、存储桶或对象进行更改,只要这些更改跨越了站点复制组中的所有站点,这些更改都会在站点复制组中的所有站点上进行复制。 |
mc admin scanner |
mc admin scanner 命令提供有关 scanner 进程的信息。 |
mc admin service |
mc admin service 命令可以重新启动或解冻 MinIO 服务器。 .. |
mc admin trace |
mc admin trace 命令用于显示目标 MinIO 部署上发生的 API 操作。 |
mc admin update |
mc admin update 命令用于更新部署中的所有 MinIO 服务器。 该命令还支持使用私有镜像服务器,用于那些部署没有公共互联网访问的环境。 |
mc admin user |
mc admin user 命令及其子命令用于管理 MinIO用户。 |
11、生命周期管理
对象生命周期管理(ILM)是现代对象存储系统的核心功能之一,MinIO通过mc ilm命令提供了一套灵活的生命周期策略管理工具。
通过配置ILM规则,用户可以自动化管理存储桶中对象的生命周期,例如:
- 自动删除达到保留期限的旧数据
- 将热数据转换为冷存储类别
- 实现合规性数据保留策略
- 优化存储成本和管理效率
- 清理未完成的分段上传
注意:最新版的minio的web管理界面中存储桶部分没有显示有这个功能的了。
语法:
mc ilm <子命令> [参数] ALIAS/BUCKET
子命令:
- add:添加规则
mc ilm add - ls:列出规则
mc ilm ls - rm:删除规则
mc ilm rm - edit:编辑现有规则
mc ilm edit
关键参数:
| 参数 | 说明 |
|---|---|
--id |
指定规则的唯一标识符(自动生成可省略) |
--tags |
基于对象标签过滤 |
--prefix |
应用于指定前缀的对象 |
--expiry-days |
过期删除天数 |
--transition-days |
转换存储类别前的天数 |
--storage-class |
目标存储类别 |
--disable |
临时禁用规则而不删除 |
- 基础过期策略
# 删除30天前的日志文件
mc ilm add myminio/test-bucket \
--prefix "logs/" \
--expiry-days 30
- 分层存储
# 将文档7天后转为冷存储,90天后删除
mc ilm add myminio/documents \
--prefix "archives/" \
--transition-days 7 \
--storage-class "GLACIER" \
--expiry-days 90
- 基于标签的管理
# 删除标记为temp=true且超过15天的对象
mc ilm add myminio/uploads \
--tags "temp=true" \
--expiry-days 15
- 多层存储方案
# 热数据层:保持标准存储
# 温数据层:30天后转为低频访问
mc ilm add myminio/project-data \
--transition-days 30 \
--storage-class "INFREQUENT_ACCESS"
# 冷数据层:90天后归档
mc ilm add myminio/project-data \
--transition-days 90 \
--storage-class "GLACIER"
# 最终删除:365天后过期
mc ilm add myminio/project-data \
--expiry-days 365
查看生效的规则列表:
有多少规则就会显示多少规则。
$ mc ilm ls myminio/test-bucket
┌────────────────────────────────────────────────────────────────────────────────────────────┐
│ Expiration for latest version (Expiration) │
├──────────────────────┬─────────┬────────┬──────┬────────────────┬─────────────────────┤
│ ID │ STATUS │ PREFIX │ TAGS │ DAYS TO EXPIRE │ EXPIRE DELETEMARKER │
├──────────────────────┼─────────┼────────┼──────┼────────────────┼─────────────────────┤
│ cvj31kal96is9ae2vj2g │ Enabled │ logs/ │ - │ 30 │ false │
└──────────────────────┴─────────┴────────┴──────┴────────────────┴─────────────────────┘
# 删除生命周期
# mc ilm rm --id "<id>" <alias>/<bucket>
比如:mc ilm rm --id "cvj31kal96is9ae2vj2g" myminio/test-bucket
如果你是想用文档的方式显示出来的话可以这样:
$ mc ilm export myminio/test-bucket
{
"Rules": [
{
"Expiration": {
"Days": 30
},
"ID": "cvj31kal96is9ae2vj2g",
"Filter": {
"Prefix": "logs/"
},
"Status": "Enabled"
}
]
}
对于单个桶的规则设置不要超过100条。**
对高频访问桶设置凌晨执行窗口。
mc admin config set myminio ilm schedule_daily=00:00-04:00
对大桶启用分片处理
mc ilm bulk start myminio/large-bucket

浙公网安备 33010602011771号