rsync的问题:你是如何同步的文件夹中的文件指向一个符号链接?

问题描述 投票:-3回答:1

我有相同的目录结构的两个Linux机器,我尝试同步在/home/inkjet 2个目录。其中一个目录是一个实际的目录,一个是符号链接到一个目录。该/home/inkjet文件夹看起来像这样在两台机器上:

ls -l /home/inkjet
drwxr-xr-x    2 root     root          1024 Aug 16 17:44 other
drwxrwxrwx    2 root     root          1024 Aug 17 06:21 bmps
lrwxrwxrwx    1 root     root            22 Aug 17 05:39 fnts -> /usr/local/inkjet/fnts

运行rsync --daemon该机具有以下/etc/rsyncd.conf

pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
port = 12000

[files]
path = /home/inkjet
comment = RSYNC FILES
read only = no
hosts allow = 192.168.4.1

如果我rsync的运行在客户端上-r --delete选项:

rsync -r --delete /home/inkjet/bmps /home/inkjet/fnts rsync://192.168.4.94:12000/files
skipping non-regular file "fnts"

/home/inkjet/bmps文件夹中工作正常,但因为它是一个符号链接/home/inkjet/fnts文件夹失败。如果我添加--copy-dirlinks--keep-dirlinks选项:

rsync -rkK --delete /home/inkjet/prds /home/inkjet/fnts rsync://192.168.4.94:12000/files
rsync: delete_file: unlink(fnts) failed: Permission denied (13)
could not make way for new directory: fnts

哪些选项是需要得到同步在/home/inkjet/fnts (->/usr/local/inkjet/fnts)文件(不创建另一个模块/usr/local/inkjet并在其上运行的rsync太)?

谢谢

rsync symlink
1个回答
0
投票

当你rsync目录,你应该随时添加一个尾随/。这部分是这样后续同步不会尝试创建一老一中一个新的目录,并部分地避免这个问题。

不幸的是同步多个目录时,所以你需要使用多个命令,这使得不同的含义:

rsync -rkK --delete /home/inkjet/fnts/ rsync://192.168.4.94:12000/files/fnts/
rsync -rkK --delete /home/inkjet/prds/ rsync://192.168.4.94:12000/files/prds/
© www.soinside.com 2019 - 2024. All rights reserved.