Wie kann ich rsync dazu bringen, fehlende Dateien zu ignorieren?

9

Ich führe einen Befehl wie den folgenden auf mehreren verschiedenen Systemen aus:

$ rsync -a -v [email protected]:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/.

Manchmal existiert * .log nicht und das ist in Ordnung, aber rsync generiert den folgenden Fehler:

receiving file list ... rsync: link_stat "/path/to/first/*.log" failed: No such file or directory (2)
done

Gibt es eine Möglichkeit, das zu unterdrücken? Der einzige Weg, den ich mir vorstellen kann, ist die Verwendung von Einschluss- und Ausschlussfiltern, die mir nur als PITA erscheinen. Vielen Dank!

Joe Casadonte
quelle

Antworten:

10

Ich denke, die Antwort auf die Frage lässt sich am besten in dieser Antwort beschreiben:

https://stackoverflow.com/a/27637277/1236128

--ignore-missing-args

Leider haben nur spätere Versionen diese Funktionalität. Ich verwende RHEL 7 mit rsync 3.0.9, das diese Option nicht zu haben scheint.

Jonathan Komar
quelle
2

Zur Verdeutlichung möchten Sie den Fehler nur nicht "sehen"? In diesem Fall könnten Sie einfach die Standardfehlerausgabe umleiten, aber möglicherweise fehlt Ihnen ein schwerwiegenderer Fehler, den Sie möglicherweise kennen möchten.

Beispiel für die Umleitungsfehlerausgabe

rsync -a -v [email protected]:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/ 2>/dev/null

Wenn Sie stattdessen nur den Fehler in einer nicht vorhandenen Datei übersehen möchten, den rsync * .log-Filter nicht ändern können und die Verwendung von Includes vermeiden möchten, können Sie ihn in ein Skript einbinden, um basierend auf dem fortzufahren Bedingung.

Skriptbeispiel

#!/bin/sh
# Script to Handle Rsync based on Log File Existence
if [ "$(ls -A /path/to/first/*.log > /dev/null > 2&1)" ]; then
     # Log Exists Use This Rsync
    rsync -a -v [email protected]:'/path/to/first/*.log path/to/second.txt' /dest/folder/0007/
else
    # Log Does Not Exist Use This Rsync
    rsync -a -v [email protected]:'path/to/second.txt' /dest/folder/0007/
fi

Hoffe ich war etwas Hilfe.

krondor
quelle