MinIO-MC-Client-Base-1

MinIO MC 命令行基础操作

原作者:运维君莫笑

链接:https://www.zhihu.com/people/xue-wu-zhi-jing-29-11

一、客户端操作 MinIO Client(mc)

官方文档:https://docs.min.io/docs/minio-admin-complete-guide.html

MinIO Client (mc) 为 UNIX 命令(如 ls、cat、cp、mirror、diff、find 等)提供了现代替代方案。它支持文件系统和兼容 Amazon S3 的云存储服务(AWS Signature v2 和 v4)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
alias       set, remove and list aliases in configuration file
ls list buckets and objects
mb make a bucket
rb remove a bucket
cp copy objects
mirror synchronize object(s) to a remote site
cat display object contents
head display first 'n' lines of an object
pipe stream STDIN to an object
share generate URL for temporary access to an object
find search for objects
sql run sql queries on objects
stat show object metadata
mv move objects
tree list buckets and objects in a tree format
du summarize disk usage recursively
retention set retention for object(s)
legalhold set legal hold for object(s)
diff list differences in object name, size, and date between two buckets
rm remove objects
encrypt manage bucket encryption config
event manage object notifications
watch listen for object notification events
undo undo PUT/DELETE operations
policy manage anonymous access to buckets and objects
tag manage tags for bucket(s) and object(s)
ilm manage bucket lifecycle
version manage bucket versioning
replicate configure server side bucket replication
admin manage MinIO servers
update update mc to latest release

1) mc Shell 自动补全

如果您使用的是 bash、zsh 或 fish。Shell 补全默认嵌入在 mc,安装自动补全使用 `mc --autocompletion`。重新启动 shell,mc 将自动完成命令,如下所示。
1
2
3
4
5
# 安装
mc --autocompletion

# 重启shell,即退出shell,重新连接即可
# 下图为输入 mc 后,使用 tab 键提示出来的信息

2) 查看 mc 版本

1
mc -version

3) 列出 minio 的所有存储桶

1
2
3
4
mc ls minio

# json格式
mc --json ls minio

4) 创建桶

mb 命令在对象存储上创建一个新存储桶。在文件系统上,它的行为类似于 mkdir -p 命令。Bucket 相当于文件系统中的驱动器或挂载点,不应被视为文件夹。MinIO 对每个用户创建的存储桶数量没有任何限制。
1
2
3
4
5
6
7
8
9
10
# 添加 MinIO 存储服务

cd /opt/bigdata/minio
./mc config host add minio http://192.168.1.11:19001 admin admin123456

# 在自己部署的 minio 创建新存储桶
mc mb minio/mybucket2

# 查看所有桶
mc ls minio

web 访问:http://192.168.1.11:19001

5) 复制文件到 MinIO

cp 命令将数据从一个或多个源复制到目标。

1
2
3
4
5
6
7
8
# 生成一个测试文件
echo "hello world" > wget-log

# 复制到 mybucket 中
mc cp wget-log minio/mybucket

# 查看
mc ls wget-log minio/mybucket

6) 日常使用

您可以添加 shell 别名来覆盖您常用的 Unix 工具。

1
2
3
4
5
6
7
alias ls='mc ls'
alias cp='mc cp'
alias cat='mc cat'
alias mkdir='mc mb'
alias pipe='mc pipe'
alias find='mc find'
alias tree='mc tree'

7) MinIO 管理员操作

MinIO Client (mc) 提供 admin 子命令来对 MinIO 部署执行管理任务。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
service              restart and stop all MinIO servers
update update all MinIO servers
info display MinIO server information
user manage users
group manage groups
policy manage policies defined in the MinIO server
replicate manage MinIO site replication
config manage MinIO server configuration
decommission, decom manage MinIO server pool decommissioning
heal heal disks, buckets and objects on MinIO server
prometheus manages prometheus config
kms perform KMS management operations
bucket manage buckets defined in the MinIO server
tier manage remote tier targets for ILM transition
top provide top like statistics for MinIO
trace show http trace for MinIO server
console show console logs for MinIO server

1. 查看集群信息

1
2
3
4
5
mc admin info minio

# 为了方便使用,可以设置别名
alias minfo='mc admin info'
minfo minio

2. 全局选项

1、选项 [–debug]

【示例】显示 info 命令的详细调试输出
1
mc admin info --debug minio

2、选项 [–json]

JSON 选项启用 JSON 行格式的可解析输出。

【示例】MinIO 服务器信息

1
mc admin --json info minio

3. 命令 service- 重启和停止所有 MinIO 服务器

service 命令提供了一种重新启动和停止所有 MinIO 服务器的方法。
【示例】

1
mc admin service restart minio

4. 命令 policy- 管理预设策略

policy 添加、删除、列出策略、获取策略信息以及为 MinIO 服务器上的用户设置策略的命令。
1
2
3
4
5
6
7
8
9
10
11
12
NAME:
mc admin policy - manage policies

FLAGS:
--help, -h show help

COMMANDS:
add add new policy
remove remove policy
list list all policies
info show info on a policy
set set IAM policy on a user or group

1、【示例】列出 MinIO 上的所有预设策略

1
mc admin policy list minio

2、【示例】在 MinIO 上添加新策略 “listbucketsonly”

策略来自 /tmp/listbucketsonly.json。当此策略应用于用户时,该用户只能列出顶层存储桶,但不能列出其他任何内容,没有前缀,没有对象。
首先使用以下信息创建 json 文件 /tmp/listbucketsonly.json。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"Version": "2023-03-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
1
2
3
4
5
# 将策略作为 "listbucketsonly" 添加到策略数据库
mc admin policy create minio listbucketsonly /tmp/listbucketsonly.json

# 删除 MinIO 上的策略 "listbucketsonly"
mc admin policy remove minio listbucketsonly

3、【示例】在用户或组上设置标准策略。’writeonly’

1
2
3
4
5
6
7
8
9
10
11
# 添加一个新用户 "sevattal",密码 "sevattal12356"
mc admin user add minio sevattal sevattal123456

# 给用户添加策略
mc admin policy attach minio writeonly --user sevattal

# 添加组 "somegroup",把用户 "sevattal" 添加到组
mc admin group add minio somegroup sevattal

# 给组添加策略
mc admin group add minio writeonly --group somegroup

5. 命令 user 管理用户

1、【示例】在 MinIO 上添加一个新用户 “sevattal”

1
2
# 添加一个新用户 "sevattal",密码"sevattal123456"
mc admin user add minio sevattal sevattal123456

2、【示例】在 MinIO 上禁用用户 “sevattal”

1
mc admin user disable minio sevattal

3、【示例】在 MinIO 上启用用户 “sevattal”

1
mc admin user enable minio sevattal

4、【示例】在 MinIO 上删除用户 “sevattal”

1
mc admin user remove minio sevattal

5、【示例】列出 MinIO 上的所有用户
mc admin user list –json minio

6、【示例】显示用户信息

1
mc admin user info minio sevattal

6. 命令 group 管理组

group 在 MinIO 服务器上添加、删除、信息、列出、启用、禁用组的命令。

1、【示例】将用户添加到 MinIO 上的组 “somegroup”

1
2
# 如果组不存在,则创建组。
mc admin group add minio somegroup sevattal

2、【示例】从 MinIO 上的组 “somegroup” 中删除用户

1
mc admin group remove minio somegroup sevattal

3、【示例】在 MinIO 上删除一个组 “somegroup”

1
2
# 仅在给定组为空时有效,非空组无法删除
mc admin group remove minio somegroup

4、【示例】在 MinIO 上获取组 “somegroup” 的信息

1
2
3
4
5
# 添加组
mc admin group add minio somegroup sevattal

# 获取组的信息
mc admin group info minio somegroup

5、【示例】列出 MinIO 上的所有组

1
mc admin group list minio

6、【示例】在 MinIO 上启用组 “somegroup”

1
mc admin group enable minio somegroup

7、【示例】在 MinIO 上禁用组 “somegroup”

1
mc admin group disable minio somegroup

7. 命令 config 管理服务器配置

config 命令来管理 MinIO 服务器配置。

1、【示例】获取 “etcd” 子系统配置 (这个是需要你配置 etcd 环境的)

1
2
# 通过引入第三方组件 etcd,在不动原有集群的基础上实现动态扩展方案
mc admin config get minio etcd

2、【示例】在 “etcd” 子系统上设置特定设置

1
2
3
mc admin config set minio etcd endpoints=http://[hostname|ip]:2379

mc admin service restart minio

注:若你配置完后,web 端界面无法访问,说明你 etcd 的环境没有配置,可以 通过 export 配置文件后,删除 etcd 的配置信息,再 import 配置文件解决该问题,etcd 的配置在后续文章中体现。

3、【示例】获取 MinIO 服务器/集群的整个服务器配置

1
mc admin config export minio > /tmp/my-serverconfig

4、【示例】设置 MinIO 服务器/集群的整个服务器配置

1
mc admin config import minio < /tmp/my-serverconfig
这里列出了常用的命令,想了解更多,可以查看官方文档:https://docs.min.io/docs/minio-admin-complete-guide.html

MinIO Client(mc)操作还是非常简单的,但是更多的使用还是通过程序去调用 api 接口的,后续会讲解
Contents
  1. 1. MinIO MC 命令行基础操作
    1. 1.1. 一、客户端操作 MinIO Client(mc)
      1. 1.1.1. 1) mc Shell 自动补全
      2. 1.1.2. 2) 查看 mc 版本
      3. 1.1.3. 3) 列出 minio 的所有存储桶
      4. 1.1.4. 4) 创建桶
      5. 1.1.5. 5) 复制文件到 MinIO
      6. 1.1.6. 6) 日常使用
      7. 1.1.7. 7) MinIO 管理员操作
        1. 1.1.7.1. 1. 查看集群信息
        2. 1.1.7.2. 2. 全局选项
        3. 1.1.7.3. 3. 命令 service- 重启和停止所有 MinIO 服务器
        4. 1.1.7.4. 4. 命令 policy- 管理预设策略
        5. 1.1.7.5. 5. 命令 user 管理用户
        6. 1.1.7.6. 6. 命令 group 管理组
        7. 1.1.7.7. 7. 命令 config 管理服务器配置
|