명령줄 도구
Entry, Professional, Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다.
자체 관리형 배포에서는 Mattermost 서버가 설치된 디렉터리에서 시스템을 구성할 수 있는 mattermost 명령을 사용할 수 있습니다. Mattermost 명령줄 인터페이스(CLI)의 개요는 Santos가 쓴 이 글을 참고하세요.
Mattermost v6.0부터 대부분의 CLI 명령은 mmctl 명령줄 도구의 동등한 명령으로 대체되었습니다. 다만 mattermost import 명령, mattermost export 명령과 관련 하위 명령은 Mattermost v6.0 이후로도 계속 제공되며 완전히 지원됩니다.
이러한 mattermost 명령은 다음 기능을 포함합니다.
컴플라이언스 내보내기
- 데이터 내보내기
- 내보내기 작업 예약
데이터베이스
- 데이터베이스 초기화, 마이그레이션 실행, 커스텀 기본값 로드
- 적용되지 않은 마이그레이션에 대해 데이터베이스 스키마 마이그레이션
- 데이터베이스를 초기 상태로 재설정
- 가장 최근에 적용된 버전 번호 반환
- 데이터베이스 마이그레이션 롤백
서버 운영
- Mattermost 작업 서버 시작
- Mattermost 서버 실행
- Mattermost 버전 정보 표시
CLI 사용
Mattermost에서 사용
CLI 명령을 실행하려면 Mattermost 루트 디렉터리에 있어야 합니다. Mattermost를 기본 설정으로 설치했다면 루트 디렉터리는 /opt/mattermost입니다. 표준 설치 절차를 따랐다면 명령을 mattermost 사용자로 실행해야 합니다. 실행 파일 이름은 mattermost이며 /opt/mattermost/bin 디렉터리에 있습니다.
예를 들어 기본 설치 환경에서 Mattermost 버전을 확인하려면 다음과 같이 실행합니다.
cd /opt/mattermost/
sudo -u mattermost bin/mattermost version
- Mattermost 바이너리는 반드시
mattermost사용자로 실행하세요. 예를 들어root사용자로 실행하면 권한 문제가 생길 수 있습니다. 바이너리는 CLI 명령을 실행할 때 플러그인을 초기화하고 여러 파일에 접근하기 때문입니다. 서버를root로 실행하면 플러그인과 파일의 소유권이 덮어써지거나 그 밖의 권한 오류가 발생할 수 있습니다. - 구성을 데이터베이스에 저장하는 Mattermost 설치 환경에서 CLI 명령을 실행할 때는 다음과 같이 데이터베이스 연결 문자열을 전달해야 할 수 있습니다.
bin/mattermost --config="postgres://mmuser:mostest@localhost:5432/mattermost_test?sslmode=disable\u0026connect_timeout=10"
GitLab Omnibus에서 사용
GitLab Omnibus에서는 CLI 명령을 실행할 때 /opt/gitlab/embedded/service/mattermost 디렉터리에 있어야 합니다. 또한 명령을 mattermost 사용자로 실행하고 구성 파일의 위치를 지정해야 합니다. 실행 파일은 /opt/gitlab/embedded/bin/mattermost입니다.
예를 들어 GitLab Omnibus에서 Mattermost 버전을 확인하려면 다음과 같이 실행합니다.
cd /opt/gitlab/embedded/service/mattermost
sudo /opt/gitlab/embedded/bin/chpst -e /opt/gitlab/etc/mattermost/env -P -U mattermost:mattermost -u mattermost:mattermost /opt/gitlab/embedded/bin/mattermost version
이 문서의 예시 명령은 Mattermost 기본 설치 환경을 기준으로 합니다. GitLab Omnibus에서 동작하도록 명령을 수정해야 합니다.
Docker 설치 환경에서 사용
Docker 설치 환경에서는 /mattermost/bin 디렉터리가 PATH에 추가되어 있으므로 docker exec 명령으로 CLI를 바로 사용할 수 있습니다. docker-compose.yml로 Mattermost를 설치했다면 컨테이너 이름이 mattermostdocker_app_1일 수 있습니다.
예를 들어 Docker 설치 환경에서 Mattermost 버전을 확인하려면 다음과 같이 실행합니다.
docker exec -it <your-mattermost-container-name> mattermost version
Docker Preview에서 사용
위 Docker 설치 환경 설명과 아래의 명령 레퍼런스는 Mattermost docker preview 이미지에도 동일하게 적용됩니다.
- CLI는 단일 노드에서 실행되므로 고가용성 환경이 클러스터의 모든 노드에 작업을 반영하기 위해 사용하는 메커니즘을 우회합니다. 따라서 고가용성 환경에서 CLI 명령을 실행할 때 구성 설정을 변경하는 작업은 서버 재시작이 필요합니다.
- CLI 명령의 인자는 순서에 따라 의미가 달라집니다.
- 특수 문자(
!,|,(,),\,',")를 사용하는 경우 인자 전체를 작은따옴표로 감싸거나 개별 문자를 이스케이프해야 합니다.
mattermost CLI 명령
설명
Mattermost 인스턴스와 사용자를 구성·관리하는 명령입니다.
옵션
-c, --config {string} Configuration file to use. (default "config.json")
--disableconfigwatch {boolean} When true, the config.json file will not be reloaded automatically when another process changes it (default "false")
하위 명령
mattermost db- 데이터베이스 명령mattermost export- 컴플라이언스 내보내기 명령mattermost help- CLI 전체 문서 생성mattermost import- 레거시 가져오기 명령mattermost jobserver- Mattermost 작업 서버 시작mattermost server- Mattermost 서버 실행mattermost version- 버전 정보 표시
mattermost db
설명
데이터베이스 관련 명령입니다.
하위 명령
mattermost db downgrade- 데이터베이스 마이그레이션을 롤백합니다. 롤백 대상 업데이트 플랜 또는 쉼표로 구분한 버전 번호가 필요합니다.mattermost db init- 데이터베이스를 초기화하고 마이그레이션을 실행하며 커스텀 기본값을 로드합니다.mattermost db migrate- 적용되지 않은 마이그레이션에 대해 데이터베이스 스키마를 마이그레이션합니다.mattermost db reset- 데이터베이스를 초기 상태로 재설정합니다.mattermost db version- 가장 최근에 적용된 버전 번호를 반환합니다.
옵션
-h, --help help for db
-c, --config string Configuration file to use
mattermost db downgrade
설명
데이터베이스 마이그레이션을 롤백합니다. 롤백 대상 업데이트 플랜 또는 쉼표로 구분한 버전 번호가 필요합니다.
형식
mattermost db downgrade
예시
mattermost db downgrade 99,100,101
옵션
--<plan-file> string Runs the rollback migrations defined in the plan file.
mattermost db init
설명
주어진 데이터 소스 이름(DSN)에 대해 데이터베이스를 초기화하고, 마이그레이션을 실행하며, 지정된 경우 커스텀 기본값을 로드합니다.
형식
mattermost db init
예시
config 플래그로 DSN을 전달합니다.
mattermost db init --config postgres://localhost/mattermost
MM_CONFIG 환경 변수를 사용하려면 다음 명령을 실행합니다.
MM_CONFIG=postgres://localhost/mattermost mattermost db init
데이터베이스에 로드할 커스텀 기본값 파일을 지정하려면 다음 명령을 실행합니다.
MM_CUSTOM_DEFAULTS_PATH=custom.json MM_CONFIG=postgres://localhost/mattermost mattermost db init
mattermost db migrate
설명
적용되지 않은 마이그레이션이 있으면 데이터베이스 스키마를 마이그레이션합니다.
하위 명령
mattermost db downgrade- 데이터베이스 마이그레이션을 롤백합니다.
형식
mattermost db migrate
예시
mattermost db migrate
옵션
--auto-recover bool If the migration plan receives an error during migrations, this command will try to rollback migrations already applied within the plan. Not recommended without reviewing migration plan by combining --save-plan and --dry-run options.
--save-plan bool Saves the plan for the migration into the file store so that it can be used for reviewing the plan or for downgrading.
--dry-run bool Does not apply the migrations, but it validates how the migration would run based on the given conditions.
mattermost db reset
설명
데이터베이스를 초기 상태로 재설정합니다. 애플리케이션 서버는 시작하지 않습니다. 스토어 계층만 시작하고 migrations 테이블을 제외한 테이블을 비웁니다.
형식
mattermost db reset
예시
bin/mattermost db reset
mattermost db version
설명
가장 최근에 적용된 버전 번호를 반환합니다.
형식
mattermost db version
mattermost export
Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다.
설명
컴플라이언스 목적의 데이터 내보내기와 여러 Mattermost 인스턴스 병합을 위한 명령입니다.
하위 명령
mattermost export actiance- Mattermost v10.5부터 사용 중단되었으며mattermost export schedule로 대체되었습니다.mattermost export csv- Mattermost v10.5부터 사용 중단되었습니다.mattermost export global-relay-zip- Mattermost v10.5부터 사용 중단되었습니다.mattermost export schedule- 컴플라이언스 내보내기 작업을 예약합니다.mattermost export bulk- Mattermost 대량 가져오기 형식과 호환되는 파일로 데이터를 내보냅니다.mmctl export명령으로 대체되어 사용 중단되었습니다.
mattermost export actiance
Mattermost v10.5부터 이 명령은 사용 중단되었습니다. 향후 버전에서 mmctl 명령줄 도구에 추가될 예정입니다. 그때까지는 mattermost export schedule을 사용하세요.
mattermost export csv
Mattermost v10.5부터 이 명령은 사용 중단되었습니다. 향후 버전에서 mmctl 명령줄 도구에 추가될 예정입니다.
mattermost export global-relay-zip
Mattermost v10.5부터 이 명령은 사용 중단되었습니다. 향후 버전에서 mmctl 명령줄 도구에 추가될 예정입니다.
mattermost export schedule
설명
서드파티 아카이브 시스템으로 가져오기에 적합한 형식으로 내보내기 작업을 예약합니다.
형식
mattermost export schedule
예시
bin/mattermost export schedule --exportFrom=1513102632
옵션
--exportFrom string Unix timestamp (seconds since epoch, UTC) to export data from.
--timeoutSeconds string Set how long the export should run for before timing out.
mattermost export bulk
Mattermost v6.0부터 이 명령은 사용 중단되었으며, Mattermost에서 데이터를 내보내는 지원 방식은 mmctl export 명령입니다.
mattermost help
설명
Mattermost 명령줄 도구의 전체 문서를 Markdown 형식으로 생성합니다.
형식
mattermost help {outputdir}
mattermost import
설명
Mattermost로 데이터를 가져옵니다.
하위 명령
mattermost import bulk- Mattermost 대량 가져오기 파일을 가져옵니다.mmctl import명령으로 대체되어 사용 중단되었습니다.mattermost import slack- Slack에서 팀을 가져옵니다.
mattermost import bulk
Mattermost v6.0부터 이 명령은 사용 중단되었으며, Mattermost로 데이터를 가져오는 지원 방식은 mmctl import 명령입니다.
mattermost import slack
Slack 데이터를 Mattermost로 가져오는 권장 방식은 mmctl import 명령 문서를 참고하세요.
설명
Slack 내보내기 zip 파일에서 팀을 가져옵니다.
형식
mattermost import slack {team} {file}
예시
bin/mattermost import slack myteam slack_export.zip
mattermost jobserver
설명
Mattermost 작업 서버를 시작합니다.
형식
mattermost jobserver
예시
bin/mattermost jobserver
mattermost server
설명
Mattermost 서버를 실행합니다.
형식
mattermost server
mattermost version
Mattermost v6.5부터 이 CLI 명령은 더 이상 데이터베이스와 상호작용하지 않습니다. 스키마 마이그레이션을 실행하는 mattermost db migrate CLI 명령이 새로 도입되었습니다.
설명
Mattermost 버전 정보를 표시합니다.
형식
mattermost version
문제 해결
명령을 실행하면 멈춘 채 완료되지 않습니다
Bleve 검색 인덱싱을 사용 중이라면 System Console > Experimental > Bleve(시스템 콘솔 > 실험 기능 > Bleve)에서 일시적으로 비활성화한 뒤 명령을 다시 실행하세요. 새 mmctl 명령줄 도구를 사용하는 방법도 있습니다.
Bleve는 여러 프로세스가 동일한 인덱스를 열고 조작하는 것을 지원하지 않습니다. 따라서 Mattermost 서버가 실행 중인 상태에서 CLI를 실행하면 인덱스를 열 때 잠금이 발생합니다.
Bleve 검색 인덱싱을 사용하지 않는데도 문제가 있다면 문제 해결 포럼에 편하게 문의해 주세요.