2013-02-11 30 views
0

如何自动运行远程服务器上的某些命令?服务器命令行自动化(更新项目)

例如,我使用Windows机器。我运行蝙蝠文件。

  • 它编译资源(JS + CSS)
  • 提交代码到SVN
  • 通过SSH连接到服务器从SVN
  • 的更新服务器(使用存储在Windows上的SVN密码)
  • 运行一些SH-脚本
  • 重新启动守护进程

我如何可以自动远程TA SKS? (最后3个在远程服务器上运行)

+0

这是超级用户最好的回答 – 2013-02-11 23:53:22

+0

我认为有很多开发者自动处理这样的流程。 – DmitryR 2013-02-11 23:55:22

回答

2

所有你需要做的是在服务器上创建一个bash脚本来做到这一点。只需创建一个文件,复制每个运行的命令(每行1个命令)并保存该文件。然后当你连接到远程服务器,你可以简单地运行

sh /path/to/mybashfile 

它会运行所有这些命令。如果你在命令行中运行OpenSSH的客户端,你可以简单地做

ssh [email protected] "sh /path/to/mybashfile" 

,但我不知道你在Windows上使用什么客户端。我敢肯定你可以用腻子做类似的事情。

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

2

你的意思是自动化吗?就像每天跑步一样? 为此您安排它们。 因此,对于第一个项目,您可以按照批处理文件的方式进行操作。如果你有一台运行在远程服务器上的php服务器,你可以在那里创建一个php脚本来执行最后3个项目。 为此,您可以拥有一个像hxxp://myserver.com/update.php(或hxxp://myserver.com/update.php?password = 12345678以避免其他人执行它)的页面窗户会做这样的事情:

  • 编译资源(JS + CSS)
  • 提交代码SVN
  • 做出网址hxxp的请求://myserver.com/update.php将执行在服务器端保留项目

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

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

Ç

+0

不是每天,只有在需要的时候。问题是服务器脚本应该使用SVN而不需要存储密码。所以客户端应该给服务器提供登录/密码(POST,以避免日志),并且服务器脚本应该使用类似管道的东西来为SVN提供密码。 – DmitryR 2013-02-12 01:19:11