【问题标题】:Eclipse auto-copy via SSH from one server to another upon save, PHP保存时,Eclipse 通过 SSH 从一台服务器自动复制到另一台服务器,PHP
【发布时间】:2017-12-06 00:31:11
【问题描述】:

我正在编写一个 PHP 应用程序,我们的团队设置了服务器,因此每次编辑文件时我都必须将代码复制到第二台服务器上。这自然与 DRY 概念背道而驰,简直是一件单调的琐事。

当我对文件进行更改并刷新网页以查看更改时,这两个服务器都必须更新,否则我可能会在服务器上看到旧版本还没有更新。所以我在开发这个应用程序时每天要复制/粘贴/保存数百次!

我正在使用 Eclipse Luna 4.4.1。在远程系统资源管理器中,系统类型为“仅 SSH”。服务器 2 也是如此。

我希望有某种功能,每次我在服务器 1 上保存 sample.php 时,相同的文件 sample.php 将自动更新并在服务器 2 上使用相同的代码保存。我不想要除了将文件保存在服务器 1 上之外,还必须做任何其他事情;之后,我希望服务器 2 上的文件能够自动更新。

两台服务器都在 nginx 操作系统上运行。

我已经在 SE 上阅读了很多关于此的内容,但许多问题/答案已有 5 年以上的历史,我想知道今天是否有最佳方法来做到这一点。我在 Java 方面没有太多经验,但我很乐意以任何可行的方式来做这件事。任何插件或其他方式都会很棒。

【问题讨论】:

  • 什么服务器操作系统?我可以考虑许多基于操作系统的选项
  • 我会使用deployer,如果你想使用 1 个命令,你可以推送到 n* 主机。或者任何类型的任意普通任务,可以同时保存登录到多个服务器。
  • 嗨@nogad,感谢您的提问。我们在 nginx 服务器上运行。我将编辑帖子以添加它。
  • 嗨@LawrenceCherone,我已经编辑了这篇文章以包含更多信息。您认为部署程序在我的情况下仍然可以工作吗?如果是这样,您会建议我调查部署者的哪个方面?
  • 你会想要改变你的流程。您应该使用 git 或其他 VCS!一旦到位,您将进行更改,运行部署程序。您将创建一个部署配方,将您的本地更改提交到 VCS,然后登录到您的服务器并执行 git pull。未正确部署代码的问题是您无法回滚。想象一下,您已经更改/添加了一个数据库列,然后您通过 FTP 更改您的更改。然后您会遇到 db 错误,使用部署程序您甚至可以迁移您的本地模式并将其导入到所有服务器中,然后再更改代码。当事情变糟时,只需运行 dep rollback, pheeww

标签: php eclipse ssh


【解决方案1】:

查看通过 ssh 运行 rsync,并将其放在 cron 上,以便根据需要定期运行更新。

这是我运行以复制数据库备份的 rsync 过程的示例(文件的类型/内容在此几乎无关紧要):

 rsync -ar -e "ssh -l <username>" <local_path_of_files_to_watch> hostname:<target_path_where_files_land>

这就是我的命令从远程系统中 rsync 数据库的样子,该远程系统监控无线电流量并将解码的消息记录到每日日志文件中:

rsync -av --remove-source-files --progress --stats -e "ssh -l stratdb" 192.168.0.23:/var/log/stratux.sqlite.*.gz /Users/stratdb/sqlite-dbs/.  

如果您希望此进程无需定义密码即可运行,您需要使用共享密钥设置 .ssh 以允许从服务器 1 -> 服务器 2 无密码登录此进程(理想情况下,这是由用户完成的)在两台服务器上都具有有限的功能)。

如果您需要真正强大且高度可配置的解决方案,您可以使用一些持续部署过程来进行构建和复制等(例如 Jenkins)......但如果您只需要从一个强制复制文件使用单个简单命令(临时)或自动将服务器连接到另一个服务器。我将研究 rsync

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2021-06-22
    相关资源
    最近更新 更多