我有相同的目录结构的两个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
目录,你应该随时添加一个尾随/
。这部分是这样后续同步不会尝试创建一老一中一个新的目录,并部分地避免这个问题。
不幸的是同步多个目录时,所以你需要使用多个命令,这使得不同的含义:
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/