Как перенести логи из работающего контейнера на другой сервер с помощью Rsysnc?

Как перенести логи из работающего контейнера на другой сервер с помощью Rsysnc?

Я уже пробовал публиковать логи на хост-машине (используя docker run -v src:/des), теперь я хочу перенести логи на другой сервер.

Команды, которые я использовал:

  • rsync -u -avze ssh источник/* example.com:/des/logs

    rsync: Не удалось выполнить ssh: Такого файла или каталога нет (2) Ошибка rsync: ошибка в коде IPC (код 14) в pipe.c(84) [отправитель=3.0.9] rsync: writefd_unbuffered не удалось записать 4 байта в сокет [отправитель]: Сломанный канал (32) Ошибка rsync: ошибка в коде IPC (код 14) в io.c(1532) [отправитель=3.0.9]

Уже проверил исходный и конечный пути, но результат тот же.


  1. Если хост-сервер 1 может взаимодействовать с сервером 2, то контейнер Docker, работающий поверх сервера 01, должен иметь возможность взаимодействовать с сервером 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, в противном случае синхронизация не будет выполнена.

Связанный контент