Mas*_*son 3 permissions centos nfs rsync
我正在尝试从 CentOS 服务器运行一个简单的rsync脚本,以将文件和文件夹复制到 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)
Run Code Online (Sandbox Code Playgroud)
当我尝试真正运行它时,我得到了这个:
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]
Run Code Online (Sandbox Code Playgroud)
我猜它告诉我它与权限有关,但奇怪的是,如果我不使用 rsync,我可以很好地写入源目录和目标目录。
任何想法我在这里缺少什么?
错误输出告诉您无法写入该目录/mnt/nfs/synology/websites(即您无法在其中创建目录 - 甚至可能是文件)。
试运行之所以有效,是因为它实际上并没有尝试传输文件,因此没有遇到权限问题。
如果您正在使用,sudo rsync...您(几乎可以肯定)会发现它sudo mkdir /mnt/nfs/synology/websites/test.co.uk也失败了。
顺便提一下,如果您rsync在 Synology NAS 上启用该服务并使用它而不是跨 NFS 传输,您将获得更高效的传输。
对于初学者来说,要知道,因为你使用rsync从本地主机的文件系统的一个部分复制到另一部分看起来像本地主机的文件系统,它不会使用它的差分算法仅传输文件的更改内容。相反,它将查看文件大小和修改时间,如果它们不同,它将完整复制文件。
启用Synology网络rsync服务(或rsync以上ssh,如果你能)将允许该工具在客户端-服务器模式,它可以检查和转让只更改的文件运行。