如何自動運行遠程服務器上的某些命令?服務器命令行自動化(更新項目)
例如,我使用Windows機器。我運行蝙蝠文件。
- 它編譯資源(JS + CSS)
- 提交代碼到SVN
- 通過SSH連接到服務器從SVN
- 的更新服務器(使用存儲在Windows上的SVN密碼)
- 運行一些SH-腳本
- 重新啓動守護進程
我如何可以自動遠程TA SKS? (最後3個在遠程服務器上運行)
如何自動運行遠程服務器上的某些命令?服務器命令行自動化(更新項目)
例如,我使用Windows機器。我運行蝙蝠文件。
我如何可以自動遠程TA SKS? (最後3個在遠程服務器上運行)
所有你需要做的是在服務器上創建一個bash腳本來做到這一點。只需創建一個文件,複製每個運行的命令(每行1個命令)並保存該文件。然後當你連接到遠程服務器,你可以簡單地運行
sh /path/to/mybashfile
它會運行所有這些命令。如果你在命令行中運行OpenSSH的客戶端,你可以簡單地做
ssh [email protected] "sh /path/to/mybashfile"
,但我不知道你在Windows上使用什麼客戶端。我敢肯定你可以用膩子做類似的事情。
如果你想更自動化這個,你可以創建一個bash腳本來檢查版本庫的最新版本,如果它比當前安裝的版本更新,請運行這些命令。然後,您可以創建一個cron作業,在N分鐘後運行該bash腳本。
你的意思是自動化嗎?就像每天跑步一樣? 爲此您安排它們。 因此,對於第一個項目,您可以按照批處理文件的方式進行操作。如果你有一臺運行在遠程服務器上的php服務器,你可以在那裏創建一個php腳本來執行最後3個項目。 爲此,您可以擁有一個像hxxp://myserver.com/update.php(或hxxp://myserver.com/update.php?password = 12345678以避免其他人執行它)的頁面窗戶會做這樣的事情:
使用php,您可以使用exec('.sh file')執行.sh命令。
希望這會有所幫助,如果您遇到問題,我可以爲您提供php腳本。
Ç
不是每天,只有在需要的時候。問題是服務器腳本應該使用SVN而不需要存儲密碼。所以客戶端應該給服務器提供登錄/密碼(POST,以避免日誌),並且服務器腳本應該使用類似管道的東西來爲SVN提供密碼。 – DmitryR 2013-02-12 01:19:11
這是超級用戶最好的回答 – 2013-02-11 23:53:22
我認爲有很多開發者自動處理這樣的流程。 – DmitryR 2013-02-11 23:55:22