Rsysnc를 사용하여 실행 중인 컨테이너의 로그를 다른 서버로 어떻게 전송할 수 있습니까?

Rsysnc를 사용하여 실행 중인 컨테이너의 로그를 다른 서버로 어떻게 전송할 수 있습니까?

이미 호스트 시스템에 로그를 게시하려고 시도했습니다(docker run -v src:/des 사용). 이제 로그를 다른 서버로 전송하려고 합니다.

내가 사용한 명령 :

  • rsync -u -avze ssh 소스/* example.com:/des/logs

    rsync: ssh 실행 실패: 해당 파일 또는 디렉터리 없음 (2) rsync 오류: Pipe.c(84)의 IPC 코드(코드 14)에 오류가 있습니다. [sender=3.0.9] rsync: writefd_unbuffered가 소켓에 4바이트를 쓰지 못했습니다. [발신자]: 깨진 파이프(32) rsync 오류: io.c(1532)의 IPC 코드(코드 14)에 오류가 있습니다. [sender=3.0.9]

원본 및 대상 경로를 이미 확인했지만 여전히 동일합니다.


  1. 호스트 서버 1이 서버 2와 통신할 수 있다면 서버 01 위에서 실행되는 Docker 컨테이너는 서버 2와 통신할 수 있어야 합니다. (올바른 설명인가요?)

  2. Splunk와 같은 다른 도구를 사용하지 않고도 로그를 관리할 수 있는 Linux 유틸리티를 사용할 수 있는 방법이 있습니까?

답변1

구문이 잘못되어 오류 메시지가 표시됩니다.

“No such file or directory (2) rsync error”

올바른 구문은 다음과 같습니다.

$ rsync  <options>  /source host:/dest

예:

$ rsync -avz /source host:/dest

SSH에 대한 사용자 정의 포트를 지정해야 하는 경우 이에 대해 따옴표를 사용하십시오. 예는 아래와 같습니다.

$ rsync -e "ssh -p port"  <options> /source host:/dest

또한 소스 디렉터리의 소유권을 확인하세요. rsync를 수행하는 사용자여야 하며 그렇지 않으면 동기화에 실패합니다.

관련 정보