我正在尝试运行一个简单的同步脚本从我的 CentOS 服务器将文件和文件夹复制到我的 Synology NAS 上已安装的 NFS 共享。 NFS共享已正确挂载到CentOS服务器。我可以从 CentOS 服务器创建文件并毫无问题地浏览它。我已将 NFS 共享安装在/mnt/nfs/synology
。
我要复制的目录位于~/resilio-sync/websites
. rsync 命令是rsync -avz ~/resilio-sync/websites /mnt/nfs/synology
如果我进行一次试运行,它会向我显示将要复制的内容。
sending incremental file list
websites/
websites/test.co.uk/
websites/test.co.uk/about.php
websites/test.co.uk/contact.php
websites/test.co.uk/dropbox_backup.sh
websites/test.co.uk/index.php
websites/test.co.uk/mailer.php
sent 6132 bytes received 973 bytes 14210.00 bytes/sec
total size is 29217828 speedup is 4112.29 (DRY RUN)
当我尝试真正运行它时,我得到了这个:
sending incremental file list
websites/
rsync: failed to set times on "/mnt/nfs/synology/websites": Operation not permitted (1)
websites/.sync/
rsync: recv_generator: mkdir "/mnt/nfs/synology/websites/.sync" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
websites/test.co.uk/
rsync: recv_generator: mkdir "/mnt/nfs/synology/websites/test.co.uk" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
sent 5196 bytes received 37 bytes 10466.00 bytes/sec
total size is 29217828 speedup is 5583.38
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]
我猜它告诉我它与权限相关,但奇怪的是,如果我不使用 rsync,我可以很好地写入源目录和目标目录。
我在这里缺少什么想法吗?
答案1
错误输出告诉您无法写入该目录/mnt/nfs/synology/websites
(即您无法在其中创建目录,甚至可能创建文件)。
试运行之所以有效,是因为它实际上并未尝试传输文件,因此没有遇到权限问题。
如果您正在使用,sudo rsync...
您会(几乎肯定)发现它sudo mkdir /mnt/nfs/synology/websites/test.co.uk
也会失败。
rsync
顺便说一句,如果您在 Synology NAS 上启用该服务并使用该服务而不是通过 NFS 传输,您将获得更高效的传输。
对于初学者来说,请注意,因为您正在使用rsync
从本地主机文件系统的一部分复制到主机文件系统的另一部分看起来像什么本地主机的文件系统,它不会使用其差分算法来仅传输对文件内容的更改。相反,它会查看文件大小和修改时间,如果它们不同,它将复制整个文件。
启用 Synology NASrsync
服务(如果可以的话,请rsync
关闭ssh
)将允许该工具在客户端-服务器模式下运行,在该模式下它可以检查并仅传输对文件的更改。