我有一台带有 2 个目录的服务器:1 个是开发站点,另一个是实时站点。
我希望在开发网站上工作,并使用一个简单的命令简单地移动并覆盖实时网站上已更新的任何文件。
我知道有 git,并且我对此有一些了解,但我想知道是否有更直接的途径。
有什么建议吗?是否有一个 Linux 命令可以比较两个目录并将新文件从一个目录复制到另一个目录,同时以递归方式维护目录等?
谢谢。
答案1
基本上,rsync
这是你的工具,只要你能找到一个渠道来运行它。
假设我可以从 devbox ssh 到 prodbox,我可能会按照你的建议同步站点目录
devbox% rsync -avl -e ssh /opt/site/ prodbox:/opt/site/
rsync
还有许多其他您可能想要使用的标志,用于删除目标上不存在的源文件、复制条件等;有关详细信息,请查看手册页。
编辑:鉴于你的评论(公平地说,我认为你确实解释了,我只是没有注意到),这让生活变得更加轻松。尝试
box% rsync -avl /home/sites/devfolder/ /home/sites/livefolder/
答案2
我想补充一点,如果您想“覆盖实时网站上已更新的任何文件”,您应该使用 rsync 的“-u”命令行开关。