{{tag>[cli minio mc s3 object-storage]}} ====== mc (MinIO Client) ====== ''mc''는 local filesystem과 MinIO·Amazon S3 호환 object storage를 ''ls'', ''cp'', ''mirror'', ''find'' 같은 명령으로 다루는 MinIO Client이다. ''mc'' 설정에는 access key와 secret key가 저장될 수 있다. 실제 credential을 wiki, shell history, source repository에 기록하지 말고 최소 권한 계정과 안전한 secret 전달 방식을 사용한다. ===== Summary ===== * Alias 형식: ''ALIAS/BUCKET/PREFIX/OBJECT'' * 기본 설정 파일: Linux/macOS는 ''~/.mc/config.json'', Windows는 user profile 아래 ''.mc\config.json'' * 일부 Linux package는 Midnight Commander의 ''mc''와 이름 충돌을 피하려고 실행 파일을 ''mcli''로 설치한다. * MinIO Client와 MinIO Server는 별도로 release된다. 기능 호환성을 위해 release date가 가까운 client를 우선 사용한다. ===== Installation ===== ==== Debian / Ubuntu ==== MinIO가 제공하는 DEB package를 설치한다. 이 package의 실행 파일 이름은 ''mcli''이다. curl -O https://dl.min.io/client/mc/release/linux-amd64/mc.deb sudo apt install ./mc.deb mcli --version ARM64에서는 URL의 ''linux-amd64''를 ''linux-arm64''로 바꾼다. ''mc'' 이름이 필요하면 아래 standalone binary 방식을 사용한다. ==== RHEL / Fedora ==== MinIO가 제공하는 RPM package를 설치한다. package 설치 환경에서는 ''mcli'' 명령을 사용한다. sudo dnf install https://dl.min.io/client/mc/release/linux-amd64/mc.rpm mcli --version ARM64에서는 URL의 ''linux-amd64''를 ''linux-arm64''로 바꾼다. ==== Linux standalone binary ==== curl -O https://dl.min.io/client/mc/release/linux-amd64/mc curl -O https://dl.min.io/client/mc/release/linux-amd64/mc.sha256sum sha256sum -c mc.sha256sum chmod +x mc sudo install -m 0755 mc /usr/local/bin/mc mc --version ==== macOS ==== brew install minio/stable/mc mc --version ==== Windows ==== MinIO upstream은 공식 Windows binary를 제공한다. 공식 ''winget'' 설치 방법은 제공하지 않으므로 binary를 내려받고 신뢰할 수 있는 ''PATH'' directory에 둔다. Invoke-WebRequest -Uri "https://dl.min.io/client/mc/release/windows-amd64/mc.exe" -OutFile ".\mc.exe" .\mc.exe --version ==== Container ==== docker pull minio/mc docker run --rm minio/mc ls play 다른 endpoint를 등록하려면 interactive shell에서 ''mc alias set''을 실행한다. docker run --rm -it --entrypoint=/bin/sh minio/mc ===== Usage ===== mc [GLOBAL_FLAGS] COMMAND [COMMAND_FLAGS] [ARGUMENTS] * ''**mc** [GLOBAL_FLAGS] COMMAND [COMMAND_FLAGS] [ARGUMENTS]'' * package가 ''mcli''를 설치한 환경에서는 아래 모든 ''mc''를 ''mcli''로 바꾼다. ==== Common global options ==== * ''**--config-dir** DIRECTORY'', ''**-C** DIRECTORY'': configuration directory 지정. ''MC_CONFIG_DIR''로도 설정할 수 있다. * ''**--json**'': JSON Lines 형식으로 출력한다. * ''**--quiet**'', ''**-q**'': 일반 출력을 줄인다. * ''**--no-color**'': ANSI color를 끈다. * ''**--disable-pager**'', ''**--dp**'': pager 없이 raw stdout으로 출력한다. * ''**--debug**'': debug output을 표시한다. * ''**--resolve** HOST[:PORT]=IP'': command별 hostname 해석을 지정한다. * ''**--insecure**'': TLS certificate 검증을 끈다. production에서는 사용하지 않는다. * ''**--limit-upload** RATE'', ''**--limit-download** RATE'': transfer rate를 제한한다. * ''**--custom-header** KEY:VALUE'', ''**-H** KEY:VALUE'': HTTP header를 추가한다. * ''**--help**'', ''**-h**'': 도움말을 표시한다. * ''**--version**'': client version을 표시한다. ===== Commands ===== ==== Alias and connection ==== * ''**mc** **alias list** [ALIAS]'': 등록된 endpoint alias를 확인한다. * ''**mc** **alias set** ALIAS URL ACCESS_KEY SECRET_KEY'': S3-compatible endpoint와 credential을 등록하거나 갱신한다. * ''**mc** **alias remove** ALIAS'': 저장한 alias를 제거한다. * ''**mc** **ping** ALIAS'': endpoint connectivity를 연속 확인한다. * ''**mc** **ready** ALIAS'': cluster의 read/write readiness를 확인한다. mc alias set local https://minio.example.com "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY" mc alias list local mc admin info local Alias와 credential 저장 방식, certificate directory, environment variable은 [[minio:mc:config:ko|mc configuration]]을 참고한다. ==== Bucket ==== * ''**mc** **mb** ALIAS/BUCKET'': bucket을 만든다. * ''**mc** **ls** ALIAS'': bucket 목록을 표시한다. * ''**mc** **ls** ALIAS/BUCKET[/PREFIX]'': object 목록을 표시한다. * ''**mc** **du** ALIAS/BUCKET[/PREFIX]'': 사용량을 집계한다. * ''**mc** **rb** ALIAS/BUCKET'': 빈 bucket을 삭제한다. * ''**mc** **version enable** ALIAS/BUCKET'': bucket versioning을 활성화한다. * ''**mc** **version suspend** ALIAS/BUCKET'': 새 version 생성을 중지한다. * ''**mc** **version info** ALIAS/BUCKET'': versioning 상태를 확인한다. mc mb local/backups mc ls local mc version enable local/backups ''mc rb --force''와 ''mc rb --dangerous''는 bucket 또는 여러 bucket을 강제로 제거할 수 있다. 대상 alias와 bucket을 ''mc ls''로 확인한 뒤 사용한다. ==== Object and file ==== * ''**mc** **cp** SOURCE TARGET'': local/remote object를 복사한다. directory는 ''**--recursive**''를 사용한다. * ''**mc** **put** LOCAL_FILE ALIAS/BUCKET[/OBJECT]'': local file을 upload한다. * ''**mc** **get** ALIAS/BUCKET/OBJECT LOCAL_PATH'': object를 local에 저장한다. * ''**mc** **mv** SOURCE TARGET'': object를 이동한다. * ''**mc** **cat** ALIAS/BUCKET/OBJECT'': object 내용을 stdout으로 출력한다. * ''**mc** **stat** ALIAS/BUCKET/OBJECT'': object metadata를 확인한다. * ''**mc** **find** ALIAS/BUCKET[/PREFIX] [OPTIONS]'': 조건에 맞는 object를 찾는다. * ''**mc** **rm** ALIAS/BUCKET/OBJECT'': object를 삭제한다. mc cp report.pdf local/archive/ mc cp --recursive ./photos/ local/media/photos/ mc cp local/archive/report.pdf . mc --json ls local/archive/ mc stat local/archive/report.pdf ''mc rm --recursive --force''는 prefix 아래 object를 대량 삭제한다. versioned bucket에서는 delete marker와 version 처리도 확인하고, 먼저 ''mc ls --recursive''로 범위를 검증한다. ==== Synchronization ==== * ''**mc** **mirror** SOURCE TARGET'': source를 target에 mirror한다. * ''**mc** **diff** FIRST SECOND'': 두 path의 object name, size, date 차이를 표시한다. * ''**mc** **watch** ALIAS/BUCKET[/PREFIX]'': object event를 관찰한다. mc diff ./backup local/backups mc mirror --overwrite ./backup local/backups ''mc mirror --remove''는 source에 없는 target object를 삭제한다. 실행 전 ''mc diff''로 차이를 확인하고 backup/versioning 정책을 점검한다. ==== Presigned URL ==== * ''**mc** **share upload** **--expire** DURATION ALIAS/BUCKET/OBJECT'': upload용 temporary URL을 만든다. * ''**mc** **share download** **--expire** DURATION ALIAS/BUCKET/OBJECT'': download용 temporary URL을 만든다. * ''**mc** **share list** ALIAS/BUCKET[/PREFIX]'': 생성한 share URL을 나열한다. mc share upload --expire 1h local/incoming/report.pdf mc share download --expire 1h local/archive/report.pdf Presigned URL은 만료 전까지 credential처럼 작동할 수 있다. terminal output, chat, ticket, log에 불필요하게 남기지 않는다. ==== Anonymous access ==== * ''**mc** **anonymous get** ALIAS/BUCKET[/PREFIX]'': 현재 anonymous policy를 확인한다. * ''**mc** **anonymous set** POLICY ALIAS/BUCKET[/PREFIX]'': ''none'', ''private'', ''public'', ''download'', ''upload'' policy를 지정한다. mc anonymous get local/public-assets mc anonymous set download local/public-assets ''public'', ''download'', ''upload'' policy는 인증되지 않은 접근을 허용한다. 공개가 의도된 bucket/prefix인지 먼저 확인한다. ==== Administration ==== ''admin'' command는 MinIO Server 관리 API를 사용하므로 S3-compatible service 전반에 적용되지 않는다. * ''**mc** **admin info** ALIAS'': server/cluster 정보를 확인한다. * ''**mc** **admin trace** ALIAS'': API operation trace를 실시간 표시한다. * ''**mc** **admin logs** ALIAS [NODE]'': server log를 확인한다. * ''**mc** **admin user add** ALIAS USER SECRET_KEY'': built-in user를 만들거나 password를 갱신한다. * ''**mc** **admin user info** ALIAS USER'': user 정보를 확인한다. * ''**mc** **admin policy attach** ALIAS POLICY **--user** USER'': user에게 policy를 연결한다. mc admin info local mc admin user add local app-reader "$MINIO_NEW_USER_SECRET" mc admin policy attach local readonly --user app-reader mc admin user info local app-reader ===== Help ===== 현재 작업 환경에는 ''mc''가 설치되어 있지 않아 최신 ''mc --help'' live output은 수록하지 않았다. 설치된 환경에서 아래 명령으로 확인한다. mc --help mc COMMAND --help ++++ mc version --help (기존 기록) | NAME: mc version - manage bucket versioning USAGE: mc version COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...] COMMANDS: enable enable bucket versioning suspend suspend bucket versioning info show bucket versioning status FLAGS: --config-dir value, -C value path to configuration folder (default: "/home/master/.mc") [$MC_CONFIG_DIR] --quiet, -q disable progress bar display [$MC_QUIET] --disable-pager, --dp disable mc internal pager and print to raw stdout [$MC_DISABLE_PAGER] --no-color disable color theme [$MC_NO_COLOR] --json enable JSON lines formatted output [$MC_JSON] --debug enable debug output [$MC_DEBUG] --resolve value resolves HOST[:PORT] to an IP address. Example: minio.local:9000=10.10.75.1 [$MC_RESOLVE] --insecure disable SSL certificate verification [$MC_INSECURE] --limit-upload value limits uploads to a maximum rate in KiB/s, MiB/s, GiB/s. (default: unlimited) [$MC_LIMIT_UPLOAD] --limit-download value limits downloads to a maximum rate in KiB/s, MiB/s, GiB/s. (default: unlimited) [$MC_LIMIT_DOWNLOAD] --custom-header value, -H value add custom HTTP header to the request. 'key:value' format. --help, -h show help ++++ ===== Troubleshooting ===== ==== mc가 Midnight Commander를 실행함 ==== Linux package가 MinIO Client를 ''mcli''로 설치할 수 있다. 다음 명령으로 어느 executable이 실행되는지 확인한다. command -v mc command -v mcli mcli --version ==== TLS certificate error ==== 정상 CA chain을 구성하거나 조직 CA certificate를 ''~/.mc/certs/CAs/''에 추가한다. ''--insecure''는 certificate 검증을 비활성화하므로 임시 진단 외에는 사용하지 않는다. ==== Access Denied ==== * ''mc alias list ALIAS''로 endpoint가 맞는지 확인한다. * credential에 대상 bucket/prefix action 권한이 있는지 확인한다. * ''mc admin policy attach''는 MinIO가 관리하는 user/group용이다. external IdP user는 해당 IdP 정책 흐름을 사용한다. ==== Path-style endpoint가 필요함 ==== 일부 S3-compatible endpoint는 path-style lookup이 필요하다. mc alias set local https://s3.example.com "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY" --path on ===== Compatibility ===== * ''mc''는 filesystem, MinIO, Amazon S3와 S3-compatible service를 대상으로 한다. 제3자 service는 구현 차이로 일부 command/option이 동작하지 않을 수 있다. * ''mc admin''은 MinIO-specific 관리 command이다. * current client와 오래된 server 또는 그 반대 조합에서는 새 command가 지원되지 않을 수 있다. * DEB/RPM package의 ''mcli''와 standalone/Homebrew의 ''mc''는 같은 client 계열이므로 문서의 executable 이름만 바꾸어 사용한다. ===== Deprecated / Legacy ===== 기존 페이지에 기록된 다음 형식은 현재 공식 top-level command 목록과 일치하지 않거나 오타가 있어 보존만 한다. * ''mc presign put PATH'': upload URL은 ''mc share upload PATH''를 사용한다. * ''mc presign get PATH'': download URL은 ''mc share download PATH''를 사용한다. * ''mc anonymouse set AUTHORITY BUCKET'': 오타를 수정한 ''mc anonymous set POLICY ALIAS/BUCKET''을 사용한다. * 과거 기록의 ''admin info BUCKET'', ''admin trace BUCKET''에서 첫 대상은 bucket이 아니라 configured server ''ALIAS''이다. ===== See Also ===== * [[minio:mc:config:ko|mc configuration]] * [[https://github.com/minio/mc|MinIO Client source and quickstart]] * [[https://docs.min.io/aistor/reference/cli/|MinIO mc command reference]] * [[https://dl.min.io/client/mc/release/|MinIO Client downloads]] ===== History ===== * codex:: 2026-08-04 Migrated the existing page to a language head page and expanded installation, aliases, buckets, objects, synchronization, sharing, access control, administration, safety, and compatibility guidance. {{indexmenu>.#1|js}}