Meines Erachtens ist es falsch, siehe Wiki:
Das per exclude bezeichnete Verzeichnis /temp/ ist kein absoluter Pfad, sondern wird relativ zur sogenannten "Wurzel des Transfers" interpretiert.
… sowie den dortigen Hinweiskasten. Das heißt, Du würdest mit --exclude=/home/user/.cache/
das Verzeichnis /home/user/home/user/.cache/
ausschließen, also mit doppeltem /home/user
.
M.E. müsste der Befehl so lauten:
| rsync -au -e --exclude=/.cache/ "ssh -i /home/user/.ssh/backup_key" /home/user/ pi@192.168.0.14:/media/backup
|
Siehe auch das erste Beispiel nach dem Hinweiskasten.
Probier den Befehl einfach mal aus, ggf. mit einem Testverzeichnis statt gleich Deinem echten /home/user
.
edit: Ob der abschließende Slash im Exclude wichtig ist oder nicht, weiß ich aus dem Stegreif nicht (beim Quellpfad hingegen entscheidet er, ob das letzte Verzeichnis im Pfad selbst oder nur sein Inhalt kopiert wird). Aber da die meisten Beispiele im Netz eines setzen, würde ich dem ohne weitere Recherche einfach mal folgen. Der allgemeinen Bash-Logik folgend könnte er bezeichnen, ob Verzeichnisse (mit Slash) oder Dateien gemeint sind, aber das ist nur eine Vermutung. Wenn ich mehr Zeit habe, könnte ich das mal nachschauen – auch für mich selbst als Auffrischung. 😉