
Ich muss jede Stunde einige Protokolldateien auf einen Protokollspeicher übertragen, auf den alle Benutzer zugreifen können. Dazu verwende ich rsync. Das Problem tritt jedoch auf, wenn die Protokolldatei rotiert und automatisch komprimiert wird. rsync erkennt, dass eine neue Datei vorhanden ist, und überträgt sie ebenfalls. Das bedeutet, dass ich auf dem Zielserver Folgendes habe:
example.log.2014-01-17--00
Und
example.log.2014-01-17--00.gz
Dies ist die gleiche Protokolldatei, jedoch mit gzip -9 komprimiert.
dies ist meine rsync-Zeile, sie ist in ein Skript eingefügt:
rsync -rvzt --include "*/" --include "$pattern" --exclude "*" $directory [email protected]:/home/user/directory/$subdir/$basefilename
Es wird stündlich von einer Crontab ausgeführt und überträgt alle Dateien, die einem $pattern und $directory entsprechen, die in einer Datei enthalten sind, die die Pfade und Muster enthält, die ich übertragen möchte.
Meine Frage lautet also, ob es eine Rsync-Option gibt, die ich noch nicht gesehen habe, oder ob es eine Möglichkeit gibt, dies zu tun und wie.
Dank im Voraus.
Antwort1
Haben Sie über die Verwendung der rsyslog-Weiterleitung [1] nachgedacht?
Außerdem scheint es aus [2] so, als ob das Hinzufügen von --exclude '*.gz'
Ihr Problem beheben sollte. Warum tun Sie das --exclude '*'
? Ich würde das so interpretieren, dass jede Datei von der Synchronisierung ausgeschlossen ist.
[1]http://www.rsyslog.com/storing-and-forwarding-remote-messages/
[2]http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/