如何将本地网站目录与远程主机上的 /home/public 同步?

如何将本地网站目录与远程主机上的 /home/public 同步?

我一直在使用Transmit.app将我的本地网站目录同步到/home/public我的远程网络主机。

然而,每当我对我的网站进行一个小的更改时,我都厌倦了以图形方式进行这种操作,单击 10-15 次。

我如何从命令行执行此操作?我可以通过 ssh 访问我的远程网络主机。我从未使用过rsync一些指针,它们可能会有所帮助。

答案1

rsync -avhe ssh --delete /home/user/dir/ [email protected]:dir/

非常简单直接。

希望您在开发过程中使用 git,那么您就可以使用它。

有关 rsync 的更多信息请参见此处:

http://www.linux.com/news/enterprise/storage/8200-back-up-like-an-expert-with-rsync

使用 git 部署:

http://philsturgeon.co.uk/news/2010/02/Deploying-websites-with-Git

答案2

像这样:

rsync -avh --delete /local/directory username@remotehost:/home/public

这将directory在 内创建。但是,如果您希望直接使用/home/public的内容,请使用类似的方法(请注意尾部斜杠):directory/home/public

rsync -avh --delete /local/directory/ username@remotehost:/home/public

查看man rsync更多选项。上面使用的选项:

  • --delete将删除远程主机上不存在的文件,因此请小心传输内容。
  • a用于“归档”,在大多数情况下应该有用
  • h将实现人类可读的文件大小

您可能需要使用一些其他选项:

  • --progress查看当前进展
  • --dry-run看看理论上会传输什么(但实际上并没有传输任何东西)

相关内容