我试图通过 rsync 守护进程同步一组远程文件,但生成的路径缺少初始路径元素。
$ rsync -HRavP ftp.ncbi.nih.gov::refseq/H_sapiens/README 2015-05-11/
receiving incremental file list
created directory 2015-05-11
H_sapiens/
H_sapiens/README
4,850 100% 4.63MB/s 0:00:00 (xfr#1, to-chk=0/2)
sent 51 bytes received 5,639 bytes 3,793.33 bytes/sec
total size is 4,850 speedup is 0.85
$ tree 2015-05-11/
2015-05-11/
└── H_sapiens
└── README
请注意,生成的树缺少远程路径的第一部分(“refseq”)。
我意识到我可以将远程路径的第一个元素附加到目标路径,但(对我来说)这似乎不太可能是 rsync 的预期行为。
值得注意的是,rsync -HRavP refseq/H_sapiens/README 2015-05-11/
(源是本地文件)在目标目录下正确创建了完整的相对路径。
答案1
使用 rsync 守护程序时,路径的第一部分不被视为文件夹,而更多地被视为存储库。 rsync 守护进程在其conf 文件中查找此存储库文件的完整路径,并且存储库名称从目标路径中删除。要获得您期望的行为,请跳过守护进程并仅使用 ssh。如果您需要使用“ssh-keygen”和“ssh-copy-id”绕过密码设置 ssh 密钥。