2013-02-11 47 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