
Docker에서 ejabberd 20.12를 시작한 후 로그에는 현재 실행 중인 구성을 가져오려면 ejabberdctl dump-config를 실행해야 한다고 알려줍니다.
2021-01-15 01:32:21.039034+00:00 [warning] Listening option 'certfile' of module ejabberd_c2s is deprecated and was automatically appended to global 'certfiles' option. Please adjust your configuration file accordingly. Hint: run `ejabberdctl dump-config` command to view current configuration as it is seen by ejabberd.
실행하면 docker exec -it ejabberd bin/ejabberdctl dump-config
인수가 1개 더 필요하다는 메시지가 나타납니다.
Error: the command "dump-config" requires 1 more argument.
문서를 확인할 시간입니다... 잠깐만요. ejabberdctl dump-config가 언급된 정보를 온라인에서 찾는 것은 불가능합니다. dump_config에 대한 일부 API 정보가 있지만 이것이 CLI로 어떻게 변환되는지 잘 모르겠습니다.
출력 파일을 지정하여 추가 인수가 무엇인지 추측하려고 했지만 파일에 아무 것도 기록되지 않았습니다. 나만 그런 걸까요 아니면 ejabberd 문서가 부족한 걸까요?
답변1
자세한 내용은 다음에서 확인하실 수 있습니다.https://docs.ejabberd.im/developer/ejabberd-api/admin-api/#dump-config 그리고
$ ejabberdctl help dump-config
Command Name: dump_config
Arguments: out::string
Returns: res::rescode
Tags: config
Description: Dump configuration in YAML format as seen by ejabberd
예를 들면 다음과 같습니다.
$ ejabberdctl dump-config $HOME/eja.yml
$ head $HOME/eja.yml
hosts:
- "localhost"
- "192.168.1.23"
loglevel: info
certfiles:
- "/etc/ejabberd/pem-5.pem"
...
출력 파일을 지정하여 추가 인수가 무엇인지 추측하려고 했지만 파일에 아무 것도 기록되지 않았습니다.
ejabberdctl 또는 기타 ejabberd API 명령에 대한 인수에 경로를 지정할 때 항상 /etc/ejabberd/something.txt
.
와 같은 상대 경로만 지정하면 something.txt
ejabberd의 작업 디렉토리에 생성됩니다. 아마도 해당 디렉토리는 ejabberdctl 스크립트를 실행하는 위치가 아닐 것입니다.