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 命令:

Command 描述
mc alias list mc alias remove mc alias set mc alias import mc alias export mc alias 命令为管理 mc 可以连接并对其运行操作的 S3 兼容主机列表提供了方便的界面。
mc anonymous get mc anonymous get-json mc anonymous links mc anonymous list mc anonymous set mc anonymous set-json mc anonymous 命令支持为桶及其内容设置或移除匿名 policies。 具有匿名策略的桶允许公共访问,客户端可以无需 authentication 执行策略授予的任何操作。
mc batch describe mc batch generate mc batch list mc batch start mc batch status The mc batch 命令允许你在 MinIO 部署上运行一个或多个作业任务。
mc cat mc cat 命令用于将一个文件或对象的内容连接到另一个文件 或对象中。您还可以使用该命令将指定文件或对象的内容 显示在 STDOUT 上。 cat 的功能与 cat 命令类似。
mc cp mc cp 命令用于将对象从一个MinIO部署复制到另一个MinIO 部署, 或者 从MinIO复制到本地文件系统。
mc diff mc diff 是 MinIO(mc 是一个命令行工具,用于与 MinIO 服务器 进行交互)的一个命令,用于比较两个文件系统目录或 MinIO 存储 桶。 mc diff 命令只列出那些缺失或在大小上不同的对象。 需要注意的是, mc diff 比较对象的内容。
mc du mc du 命令总结了存储桶和文件夹的磁盘使用情况。 您还可以对本地文件系统使用 du 命令,以产生类似于 du 命令的结果。
mc encrypt clear mc encrypt info mc encrypt set mc encrypt 命令用于设置、更新或禁用默认桶的服务器端加密(SSE)模式。 MinIO 自动使用指定的 SSE 模式对对象进行加密。
mc event add mc event ls mc event rm mc event 命令支持添加、删除和列出存储桶事件通知。
mc find mc find 命令支持在 MinIO 部署上搜索对象。 您还可以使用此命令在文件系统上搜索文件。
mc get mc get 命令从目标 S3 部署将对象下载到本地文件系统。
mc head mc head 命令显示对象的最初 n 行, 其中 n 是传递给命令的参数。
mc idp ldap accesskey mc idp ldap accesskey create-with-login mc idp ldap add mc idp ldap disable mc idp ldap enable mc idp ldap info mc idp ldap ls mc idp ldap policy mc idp ldap rm mc idp ldap update mc idp ldap 命令允许你管理用于第三方 Active Directory 或 LDAP 身份和访问管理(IAM)集成的配置
mc idp openid add mc idp openid disable mc idp openid enable mc idp openid info mc idp openid ls mc idp openid rm mc idp openid update mc idp openid 命令允许您管理第三方 OpenID 身份和访问管理 (IAM) 集成配置。
mc idp ldap policy attach mc idp ldap policy detach mc idp ldap policy entities mc idp ldap policy 命令展示了策略与相关组或用户之间的映射关系。
mc ilm restore mc ilm rule add mc ilm rule edit mc ilm rule export mc ilm rule import mc ilm rule ls mc ilm rule rm mc ilm tier add mc ilm tier check mc ilm tier info mc ilm tier ls mc ilm tier rm mc ilm tier update mc ilm 命令用于在 MinIO 部署上管理 对象生命周期管理规则 和分层。
mc legalhold clear mc legalhold info mc legalhold set mc legalhold 命令用于为对象(们)设置、移除或检索 对象合法保留(WORM) 设置。
mc license info mc license register mc license update mc license 命令用于与 MinIO SUBNET 的集群注册。 使用这些命令可注册部署、显示群集当前许可证信息或更新群集的许可证密钥。
mc ls mc ls 命令列出 MinIO 或另一个 S3 兼容服务上的存储桶和 对象。
mc mb mc mb 命令在指定的路径创建一个新的桶或 目录。
mc mirror mc mirror 命令用于将内容同步到 MinIO 部署,类似于 rsync 工具。 mc mirror 支持将文件系统、MinIO 部署和其他 S3 兼容主机作为同步源。
mc mv mc mv 命令可以将对象从源移动到目标,例如在不同的 MinIO 部署之间, 或者 在同一 MinIO 部署中的不同桶之间。 mc mv 命令还支持将对象在本地文件系统和 MinIO 之间移动。
mc od mc od 命令将本地文件分块并按指定的部分和部分大小复制到远程位置。 该命令输出了上传文件所花费的时间。
mc ping mc ping 命令执行对指定目标的存活检查。
mc pipe mc pipe 命令将内容从 STDIN 流式传输到目标对象。
mc put mc put 是 mc 命令行工具的一个命令,它用于将本地文件系统中的对象上传到目标 S3 部署中的桶。
mc rb mc rb 命令用于从 MinIO 其他 S3 兼容服务 中删除一个或多个桶。 要仅删除存储桶的内容,请改用 mc rm
mc ready mc ready 命令会检查群集的状态,以及群集是否有 法定人数。
mc replicate add mc replicate backlog mc replicate export mc replicate import mc replicate ls mc replicate resync mc replicate rm mc replicate status mc replicate update mc replicate 命令用于配置和管理 MinIO 部署的 服务器端存储桶复制,包括 活动-活动复制配置重新同步
mc retention clear mc retention info mc retention set mc retention 命令用于为存储桶中的一个或多个对象配置 写一次读多次(WORM)锁定 设置。 您还可以为存储桶设置默认的对象锁定设置,其中所有没有明确对象锁定设置的对象将继承存储桶的默认设置。
mc rm 使用 mc rm 命令 removes objects 从 MinIO 部署的桶中删除对象。 要完全删除一个存储桶,请使用 mc rb 命令。
mc share download mc share ls mc share upload 使用 mc share 命令来管理 MinIO 存储桶上对象的预签名 URL,用于下载和上传对象。
mc sql mc sql 命令为指定的 MinIO 部署中的对象提供了一个 S3 选择接口,用于执行 SQL 查询。
mc stat mc stat 命令显示 MinIO 数据桶中对象的信息,包括对象元数据. 您还可以使用它来检索桶元数据.
mc support callhome mc support diag mc support inspect mc support perf mc support profile mc support proxy mc support top api mc support top disk mc support top locks MinIO客户端的 mc support 命令提供了分析部署健康或性能以及运行诊断的工具。 您还可以上传生成的健康报告,以便 MinIO 工程团队进一步分析。
mc tag list mc tag remove mc tag set mc tag 命令用于向桶或对象添加、删除和列出标签。
mc tree mc tree 命令以树状格式列出 MinIO 桶中的所有前缀。 该命令可选地支持列出每个前缀内的所有对象, 包括桶的根目录。
mc undo mc undo 命令用于撤销由于对指定路径执行了 PUTDELETE 操作而引起的变化。
mc update mc update 命令会自动将 mc 二进制文件 更新到最新稳定版本。
mc version enable mc version info mc version suspend mc version 命令用于启用、禁用和检索 MinIO 存储桶的 版本控制 状态。
mc watch mc watch 命令用于监控指定 MinIO 存储桶或本地文件系统 路径上的事件。对于 S3 服务,应使用 mc event add 命令来配置 S3 兼容服务上的存储桶事件通知。

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管理界面中存储桶部分没有显示有这个功能的了。

官方文档地址:https://minio.org.cn/docs/minio/linux/administration/object-management/create-lifecycle-management-expiration-rule.html

语法:

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
posted @ 2025-05-28 17:59  哈喽哈喽111111  阅读(1386)  评论(0)    收藏  举报