如何使用rsync

如何使用rsync

我正在编写一个脚本,我想上传单个文件并自动生成文件夹结构,如 mkdir -p,但我无法让 rsync 2.6.9(两者)配合。

看起来 rsync 仅创建了一层文件夹,否则会出错。

我正在尝试重现方便的ncftpput -C -R -m remote-host local-path-name remote-path-name操作(ncftp 的递归模式;复制整个目录树 + 尝试在复制之前创建远程目标目录。)。

可能的?

我的尝试:

rsync -av -e ssh /home/gitrepos/www/board/httpdocs/B/C/delete_snippet.processor.php [email protected]:/var/www/vhosts/testboard.org/httpdocs/B/C/delete_snippet.processor.php

返回:

rsync:push_dir#3“/var/www/vhosts/testboard.org/httpdocs/B/C”失败:没有此文件或目录 (2)

rsync -av -e ssh /home/gitrepos/www/board/httpdocs/B/C/delete_snippet.processor.php [email protected]:/var/www/vhosts/testboard.org/httpdocs/

有效,创建 httpdocs,但没有 B/C 结构。

rsync -advR -e ssh -v /home/gitrepos/www/board/httpdocs/B/C/delete_snippet.processor.php [email protected]:/var/www/vhosts/testboard.org/httpdocs/

有效但在服务器上重新创建整个 /home/gitrepos... 结构。

权限设置为 777 并归用户所有。

感谢帮助。

答案1

如果您使用的是 rsync 2.6.7 或更高版本,则可以尝试 httpdocs 后面的点斜杠方法来限制目录。试试这个:

rsync -advR -e ssh -v /home/gitrepos/www/board/httpdocs/./B/C/delete_snippet.processor.php [email protected]:/var/www/vhosts/testboard.org/httpdocs/

相关内容