我正在尝试在 Synology DS 的 Hyper Backup 中定义一个 RSync 备份作业,以将我的文件从 Synology DS 备份到运行 Ubunut 14.04 的 Linux 服务器。
这是我的 rsync.conf 文件的副本
use chroot = true
read only = false
uid = rsync-user
gid = rsync-user
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
[MyBackup]
path = /data/backup
comment = Backup directory
auth users = mysyncuser
secrets file = /etc/rsyncd.secrets
“rsync-user”是Linux服务器上具有登录功能的本地用户:
rsync-user:x:10001:10001::/home/rsync-user:/bin/bash
并且是“/data/backup”的所有者
问题是,一旦我在 Synology DS 中触发备份,服务器就无法在“/data/backup”下创建“BackupFolder”文件夹并显示以下消息:
2016/08/10 17:36:37 [29598] rsync on MyBackup/BackupFolder/synobkpinfo.db from [email protected] (217.250.xxx.xx)
2016/08/10 17:36:37 [29598] building file list
2016/08/10 17:36:37 [29598] rsync: change_dir "/BackupFolder" (in MyBackup) failed: No such file or directory (2)
2016/08/10 19:36:38 [29599] connect from pD9FXXXXX.dip0.t-ipconnect.de (217.250.xxx.xx)
2016/08/10 17:36:38 [29599] rsync on MyBackup/BackupFolder from [email protected] (217.250.xxx.xx)
2016/08/10 17:36:38 [29599] building file list
2016/08/10 17:36:38 [29599] rsync: link_stat "/BackupFolder" (in MyBackup) failed: No such file or directory (2)
2016/08/10 17:36:38 [29599] sent 101 bytes received 26 bytes total size 0
如果我将 uid 部分更改为 root,则一切都会正常运行:
uid = root
非常感谢您的帮助。
答案1
您使用 chroot 配置 rsync。用户 rsync-user 的主目录为 /home/rsync-user,并且只能访问该目录(启用 chroot 时)。在用户主目录中将符号链接添加到 /data/backup 目录:
ln -s /data/backup /home/rsync-user/backup
并更改path
为/home/rsync-user/backup
我认为日志文件 /var/log/rsyncd.log 必须以同样的方式更改。
答案2
这条线看起来不对
2016/08/10 17:36:37 [29598] rsync: change_dir "/BackupFolder" (in MyBackup) failed: No such file or directory (2)
我在您的日志中没有看到任何可能已创建的内容/BackupFolder
,但 rsync 确实尝试输入它。我不确定为什么会发生这种情况,但也许您应该调查一下。也许尝试提前创建“BackupFolder”并为其设置适当的所有权。