web-dev-qa-db-ja.com

rsyncと特別なファイルとの関係

あるシステムから別のシステムに既存のバックアップを転送しようとしています。古いバックアップシステムは、/ dev/hda、/ dev/tty0、/ dev/nullなど、OSビルドプロセスの一部として作成されたように見える特別なファイルをバックアップできたようです。

それで私はそれらを新しいマシンにrsyncしようとしましたが、次のような大量のメッセージを受け取り続けます:

非正規ファイル「machineX/latest/home/machineX/build/image/rh62/dev/agpgart」をスキップする

私が使用していたコマンドは次のとおりです。

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

私の知る限り:

-a(アーカイブ)は-rlptgoDを意味するはずです

-D--specials--devicesを意味するはずです

私はファイルをチェックしました:

$ 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

つまり、これらは--specialスイッチでカバーする必要のある特別なファイルです。

なぜこれらのファイルをスキップしているのですか?


参考までに、私はこれらの詳細でrsyncを使用しています:

$ 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

そうではない --specialデバイスを同期する必要があります。それは--devices間接スイッチ。そのため、manページには次のように書かれています。

--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).

また、リモートシステムにrootとしてログインしていないようです。そのため、このオプションは効果がありません。

8
Anthon