2014-04-03 35 views
0

我需要每晚清理磁盤,並且要安排停機時間。是的,我知道在啓動之前讓單個代理進行清理的能力,但我需要做一些非常專業化的清理,所以我需要停機。只是爲了澄清 - 我需要安排代理停工。謝謝。有沒有辦法在TeamCity中設置夜間計劃停機維護時間?

+0

你想要清理什麼?它是在TeamCity目錄還是代理的其他位置? – psych

+0

當我們的硬盤驅動器開始充滿時,我手動禁用所有構建代理並運行powershell腳本(手動)清除目錄。 – user3495534

回答

0

在Team City 8中,它位於管理:構建歷史清理。

它可以讓你安排它應該運行的時間以及它應該清理的內容。

+0

問題是針對代理,而不是服務器。 – psych

+0

該選項適用於單個構建代理 - 不是系統範圍的關閉。 – user3495534

1

Teamcity不直接提供此功能,但您可以使用REST API在維護期間禁用代理。這樣,如果在維護期間安排任何構建,它將保持在隊列中,直到維護完成或在另一個代理上執行(如果可用)。

禁用就可以運行

curl -v --basic --user USERNAME:PASSWORD --request PUT "http://teamcity/httpAuth/app/rest/agents/id:3/enabled" --data false --header "Content-Type: text/plain" 

並啓用

curl -v --basic --user USERNAME:PASSWORD --request PUT "http://teamcity/httpAuth/app/rest/agents/id:3/enabled" --data true --header "Content-Type: text/plain" 

欲瞭解更多信息請參閱本discussion

+0

問題是,我有代理已經運行,我不能禁用它們。而REST API是一個手動過程。我真正需要的是能夠創建從凌晨2點到凌晨4點的維護時段,這將阻止任何代理運行 - 讓代理每小時以2AM運行,並在凌晨3點運行PowerShell腳本來清​​理所有驅動器。 – user3495534

+0

如果您的代理整天都在運行一項工作,那麼使用某個任務計劃程序而不是CI服務器可能會更好。無論如何,如果你想要一個內置函數,它不存在。任何解決方案都需要一定程度的腳本。順便說一句,你可以禁用正在運行的代理。任務將正常完成。 – Mehran

+0

很高興知道我可以在運行時禁用代理。所以,現在我想到了更多 - 是否有辦法在給定時間「自動禁用」所有代理?然後,我可以設置一個cron作業,讓我的powershell在自動禁用後運行。 – user3495534

相關問題