我可以通过这种方式复制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 /
有人可以帮我解决这个问题吗? 感谢
答案 0 :(得分:1)
守护程序和模块必须是uid root才能使--owner
或--devices
正常工作。从rsyncd.conf
uid
和gid
的价值来看,并不清楚。仅仅因为您的用户被命名为root并不意味着守护程序或模块以root权限运行。
此外,您可以替换以下参数:
--recursive --links --perms --times --group --owner --devices --specials
包含-a
或--archive
,这是所有这些的别名。
答案 1 :(得分:1)
感谢Matt的投入,经过一些手工阅读和测试,我可以解决问题:
rsyncd.conf中的UID和GID指令指定了非特权,"正常"用户/组确实,因为我认为这些指令是设置复制数据的用户/组
由于系统在启动时启动了rsync-daemon,我认为它仍以root身份运行