我一直在尝试整理备份,以便在还原文件时正确还原所有者/组和任何其他元数据.对于我的测试,我已经通过ssh从Ubuntu 9.10服务器(安装了rsync版本3.0.6,协议版本30)备份到OSX 10.6笔记本电脑或Ubuntu 9.10服务器.
使用以下命令(以root身份执行)完成备份:
# rsync -avz --fake-super /var/www/myfolder backupuser@remoteserver.com:/home/backups
执行此操作时不会报告任何错误.
# rsync -avz --fake-super backupuser@remoteserver.com:/home/backups/myfolder /tmp
rsync: Failed to write xattr user.rsync.%stat for "/tmp/myfolder/path/to/file": Operation not supported (95)
最初我认为这一定是因为我正在备份到OSX,所以我再次尝试备份到ubuntu服务器 – 只是在恢复文件时遇到同样的错误.我已经谷歌搜索并查看了rsync的联机帮助页,但没有找到任何帮助.
解决方法
你至少做了一件事.
首先,你在连接的错误一侧使用–fake-super.让我引用rsync手册页.
The –fake-super option only affects
the side where the option is used. To
affect the remote side of a
remote-shell connection,specify an
rsync path:rsync -av –rsync-path=”rsync –fake-super” /src/ host:/dest/
你正在做的是运行–fake-super在你已经root的连接一侧.
关于“未能写入xattr user.rsync.%stat for”的部分是因为与–fake-super一起使用的文件系统尚未使用标志user_xattr挂载.此挂载选项必须在您正在使用的连接一侧生效–fake-super,在您的原因中将是“remoteserver.com”.
总而言之,这些是您应该运行的命令:
# rsync -avz --rsync-path="rsync --fake-super" /var/www/myfolder backupuser@remoteserver.com:/home/backups # rsync -avz --rsync-path="rsync --fake-super" backupuser@remoteserver.com:/home/backups/myfolder /tmp
…使用mount选项user_xattr在remoteserver.com上生效