我正在编写一个脚本,我想上传单个文件并自动生成文件夹结构,如 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/