关于 ssh 上的 rsync 问题 - 如果远程主机上不存在目录,则创建目录

关于 ssh 上的 rsync 问题 - 如果远程主机上不存在目录,则创建目录

我想使用 rsync 通过 ssh 备份一些文件,我已经设法使用以下命令使其正常工作:

rsync --delete -avze ssh /home/malachi/www/site/ malachi@remote-host:~/backups/daily/sites/site/

如果远程主机上不存在 sites/site/ 目录,我该如何创建它?

在运行上述命令之前最好先放置以下内容吗?

ssh -l malachi remote-host mkdir -p ~/backups/daily/sites/site/

或者有更好的解决办法吗?

答案1

如果只向上一级,rsync 将创建目录。如果您 rsync 的是文件site夹而不是内容,您的命令会起作用吗?即:

rsync --delete -avze ssh /home/malachi/www/site \ 
malachi@remote-host:~/backups/daily/sites

这样,rsync 应该会在远程主机上创建文件夹,因为它只是您要复制的文件夹的sites上一级。请注意,这需要开关,它隐含在site--recursive-a在您的命令中。请参阅这篇文章了解详情。

极其复杂的方法如果您需要创建多级父目录,则可以这样做。

答案2

我最终选择了mkdir命令并构建脚本来处理备份过程

相关内容