Wie können wir die Protokolle mit Rsysnc vom laufenden Container auf einen anderen Server übertragen?

Wie können wir die Protokolle mit Rsysnc vom laufenden Container auf einen anderen Server übertragen?

Ich habe bereits versucht, die Protokolle auf dem Hostcomputer zu veröffentlichen (mit docker run -v src:/des). Jetzt möchte ich die Protokolle auf einen anderen Server übertragen

Befehle, die ich verwendet habe:

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

    rsync: SSH-Ausführung fehlgeschlagen: Keine solche Datei oder kein solches Verzeichnis vorhanden (2) rsync-Fehler: Fehler im IPC-Code (Code 14) bei pipe.c(84) [sender=3.0.9] rsync: writefd_unbuffered konnte 4 Bytes nicht in Socket schreiben [sender]: Defekte Pipe (32) rsync-Fehler: Fehler im IPC-Code (Code 14) bei io.c(1532) [sender=3.0.9]

Habe die Quell- und Zielpfade bereits überprüft, aber es steht immer noch das Gleiche da.


  1. Wenn Hostserver 1 mit Server 2 kommunizieren kann, sollte der Docker-Container, der auf Server 01 ausgeführt wird, mit Server 2 kommunizieren können. (Ist diese Aussage korrekt?)

  2. Gibt es eine Möglichkeit, die Linux-Dienstprogramme zu verwenden, mit denen wir die Protokolle verwalten können, ohne andere Tools wie Splunk zu verwenden?

Antwort1

Ihre Syntax ist falsch, deshalb erhalten Sie die Fehlermeldung:

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

Die korrekte Syntax lautet:

$ rsync  <options>  /source host:/dest

Z.B

$ rsync -avz /source host:/dest

Wenn Sie einen benutzerdefinierten Port für SSH angeben müssen, verwenden Sie hierfür Anführungszeichen. Nachfolgend ein Beispiel:

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

Überprüfen Sie außerdem den Eigentümer des Quellverzeichnisses. Es sollte sich um einen Benutzer handeln, der rsync ausführt, sonst schlägt die Synchronisierung fehl.

verwandte Informationen