rsyncs Beziehung zu speziellen Dateien


8

Ich versuche, einige vorhandene Sicherungen von einem System auf ein anderes zu übertragen. Das ältere Sicherungssystem scheint es geschafft zu haben, spezielle Dateien wie / dev / hda, / dev / tty0 und / dev / null zu sichern, die so aussehen, als wären sie als Teil eines Betriebssystem-Erstellungsprozesses erstellt worden.

Also habe ich versucht, rsyncsie auf die neue Maschine zu bringen, aber ich bekomme immer wieder eine Tonne Nachrichten wie:

Überspringen einer nicht regulären Datei "machineX / latest / home / machineX / build / image / rh62 / dev / agpgart"

Der Befehl, den ich benutzte, war:

rsync -avz /oldbackups/machineX/ newbackups:~/machineX/

SO VIEL ICH WEISS:

-a (Archiv) soll bedeuten -rlptgoD

-D soll bedeuten --specials --devices

Ich habe die Dateien überprüft:

$ ls -la machineX/latest/home/machineX/build/image/rh62/dev/agpgart 
crw-rw-r-- 1 500 500 10, 175 Feb  4  2000 machineX/latest/home/machineX/build/image/rh62/dev/agpgart
$ file machineX/latest/home/machineX/build/image/rh62/dev/agpgart
machineX/latest/home/machineX/build/image/rh62/dev/agpgart: character special

Das sind also spezielle Dateien, die vom --specialSwitch abgedeckt werden sollen , nein?

Warum werden diese Dateien immer noch übersprungen?


Als Referenz verwende ich rsync mit folgenden Details:

$ rsync --version
rsync  version 3.0.9  protocol version 30
Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes

Antworten:


8

Es ist nicht so, --specialdass die Geräte "synchronisiert" werden sollten, es ist der --devicesindirekte Schalter. Dafür steht auf der manSeite:

--devices
       This option causes rsync to transfer character and block  device
       files  to  the  remote  system  to recreate these devices.  This
       option has no effect if the receiving rsync is not  run  as  the
       super-user (see also the --super and --fake-super options).

und Sie scheinen sich nicht als Root auf dem Remote-System anzumelden, wodurch die Option keine Auswirkung hat.


Genau richtig. - Super war das, wonach ich gesucht habe. Es wäre schöner, wenn die Fehlermeldung so etwas wie "Überspringen aufgrund von Remote-Berechtigungen" oder ähnliches wäre.
Tu-Reinstate Monica-dor duh

@tudor Dass es nicht funktioniert, macht Sinn, aber ich stimme zu, dass der angegebene Grund zu allgemein ist. Vielleicht haben Sie ein Sommerferienprojekt (oder einen Winterurlaub, abhängig von Ihrer Hemisphäre) gefunden, um einen Patch für das Projekt bereitzustellen ;-).
Anthon

Es scheint, dass die einzige Bedingung darin besteht, dass es sich nicht um eine reguläre Datei handelt. "if (! IS_REG (file-> mode))" github.com/AndyA/rsync/blob/… Der vorherige Abschnitt prüft auf Amroot. Bedeutet dies, dass jeder Fehler ab dieser Klausel "... und Sie" sein sollte. bist nicht root auf der entfernten Seite. "? :-p
tu-Reinstate Monica-dor duh

@tudor Ich bin nicht 100% sicher, dass Sie es einfach ersetzen sollten, sondern es dort noch einmal testen und der Nachricht "(und Ihr nicht root)" hinzufügen, wenn Sie es nicht sind, wäre informativ und es ist unwahrscheinlich, dass etwas kaputt geht. Das Original-Repo befindet sich übrigens auf der Website samba.org.
Anthon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.