我们如何使用 Rsysnc 将正在运行的容器中的日志传输到其他服务器?

我们如何使用 Rsysnc 将正在运行的容器中的日志传输到其他服务器?

我已经尝试将日志发布到主机(使用 docker run -v src:/des)现在我想将日志传输到其他服务器

我使用过的命令:

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

    rsync:无法执行 ssh:没有此文件或目录(2)rsync 错误:pipe.c(84) 处的 IPC 代码错误(代码 14)[发送方=3.0.9] rsync:writefd_unbuffered 无法将 4 个字节写入套接字 [发送方]:管道损坏(32)rsync 错误:io.c(1532) 处的 IPC 代码错误(代码 14)[发送方=3.0.9]

已经检查了源路径和目标路径,但仍然显示相同的内容。


  1. 如果主机服务器 1 可以与服务器 2 通信,那么在服务器 01 上运行的 Docker 容器应该能够与服务器 2 通信。(这个说法正确吗?)

  2. 有没有办法使用 Linux 实用程序来管理日志,而无需使用 Splunk 等其他工具

答案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,否则同步失败。

相关内容