0

如何自动在远程服务器上运行一些命令?

例如我使用windows机器。我运行 bat 文件。

  • 它编译资源(js + css)
  • 向 SVN 提交代码
  • 通过 ssh 连接到服务器
  • 从该服务器上的 SVN 更新(使用我存储在 Windows 上的 SVN 密码)
  • 运行一些 sh ​​脚本
  • 重启守护进程

如何自动化远程任务?(最后 3 个在远程服务器上运行)

4

2 回答 2

2

你的意思是自动化?喜欢每天跑步吗?为此,您安排他们。因此,对于前两个项目,您可以按照您提到的那样通过批处理文件来完成。如果你有一个在远程服务器上运行的 php 服务器,你可以在那里创建一个 php 脚本来执行最后 3 个项目。为此,您可以在 Windows 中创建一个类似 hxxp://myserver.com/update.php 的页面(或 hxxp://myserver.com/update.php?password=12345678 以避免其他人执行它)您的批处理文件会做类似的事情:

  • 编译资源(js + css)
  • 向 SVN 提交代码
  • 向 url hxxp://myserver.com/update.php 发出请求,该请求将在服务器端执行剩余项目

使用 php,您可以使用 exec('.sh file') 执行 .sh 命令。

希望这会有所帮助,如果您遇到问题,我可以为您提供 php 脚本。

C

于 2013-02-12T00:14:17.697 回答
2

您需要做的就是在服务器上创建一个 bash 脚本来执行此操作。只需创建一个文件,复制您运行的每个命令(每行 1 个命令)并保存文件。然后,当您连接到远程服务器时,您可以简单地运行

sh /path/to/mybashfile

它将运行所有这些命令。如果您从命令行运行 openssh 客户端,您可以简单地执行

ssh user@server "sh /path/to/mybashfile"

但我不确定您在 Windows 上使用的是什么客户端。我很确定你可以用腻子做类似的事情。

如果您想进一步自动化,您可以创建一个 bash 脚本来检查存储库的最新版本,如果它比当前安装的版本更新,请运行这些命令。然后,您可以创建一个 cron 作业,每 N 分钟运行一次该 bash 脚本。

于 2013-02-12T00:25:18.830 回答