使用visual studio for web为asp.net开发时,当您将网站部署到web服务器时,它会巧妙地检查哪些文件已更改,并只上传这些文件,这真的很方便。此外,如果您从源中删除了一些文件,它也会检测到这一点,并从web服务器中删除这些文件,因为它们不再需要。
我开始使用LAMP堆栈进行开发,并想知道如何以类似的方式部署到web服务器。
我尝试使用Filezilla并将源文件复制/粘贴到web服务器上,如果有类似的文件,您可以选择以下选项:
-覆盖-如果源更新则覆盖-如果大小不同则覆盖-如果大小不同或来源更新,则覆盖
"如果源更新则覆盖"是可行的,但它只检查修改日期,而不检查文件的内容。此外,上述方法不会从web服务器中删除从源中删除的文件。
Filezilla有更好的方法吗?(或者可能使用其他程序?)
谢谢。
您可以使用rsync来实现这一点。
当您想推出更改时,您可以在生产服务器上执行类似的操作。
rysnc -av user@<developmentIp>:/web/root/* /production/web/root/
图案为rsync --flags [user@host:]/source/dir [user@host:]/destination/dir
你只需要user@host远程主机的东西。用户必须具有对主机的ssh访问权限。
一些小建议。
该命令可以从源或目标运行。我发现从目的地运行命令更好,因为权限问题(即从远程读取和写入本地)
先做一些测试,我总是把目录里的东西搞混;我需要结尾斜线吗,我应该用星号吗。。。
阅读手册页,有很多可用的选项可能会有所帮助(
--delete
、--exclude
、-a
)