通过rsync-daemon复制linux设备文件失败

时间:2016-02-17 00:16:32

标签: linux rsync

我可以通过这种方式复制linux设备文件而不会出现任何错误:

rsync --recursive --links --perms --times --group --owner --devices --specials --xattrs --acls --stats /path/to/dev root@MACHINE:/path/to/bkps/

但我得到了很多错误

跳过非常规文件“dev / audio”

当我这样做时:

rsync --recursive --links --perms --times --group --owner --devices --specials --xattrs --acls --stats /path/to/dev  rsync://root@MACHINE/MODULE/

MACHINE 上的 rsync 在守护程序模式下运行,其 rsyncd.conf 包含以下配置:

lock file = /var/run/rsync.lock
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
strict modes = true
uid = UID_TO_SET
gid = GID_TO_SET
read only = no
list = yes

[MODULE]
path = /path/to/bkps/

上述命令行的唯一区别是目标路径:

根@ MACHINE:/路径/到/ bkps /

VS

的rsync://根@ MACHINE / MODULE /

有人可以帮我解决这个问题吗? 感谢

2 个答案:

答案 0 :(得分:1)

守护程序和模块必须是uid root才能使--owner--devices正常工作。从rsyncd.conf uidgid的价值来看,并不清楚。仅仅因为您的用户被命名为root并不意味着守护程序或模块以root权限运行。

此外,您可以替换以下参数:

--recursive --links --perms --times --group --owner --devices --specials

包含-a--archive,这是所有这些的别名。

答案 1 :(得分:1)

感谢Matt的投入,经过一些手工阅读和测试,我可以解决问题:

  • rsyncd.conf中的UID和GID指令指定了非特权,"正常"用户/组确实,因为我认为这些指令是设置复制数据的用户/组

  • 由于系统在启动时启动了rsync-daemon,我认为它仍以root身份运行