2013-05-07 91 views
0

我需要在某些遠程Solaris/Linux服務器上運行一些命令,並將它們的輸出收集到本地服務器上的日誌文件中。從遠程服務器收集日誌的最佳方法

目前,我正在使用一個簡單的Expect腳本,駐留在本地服務器上以觸發目標系統上的命令。我則期望腳本的輸出重定向到一個日誌文件,這樣,

/usr/local/bin/expect script.exp >> logfile.txt 

然而,這被證明爲服務器的連接波動的很多是非常不可靠,導致不完整的日誌,掛腳本。

有沒有更好更可靠的方法來完成這項任務?

+0

我認爲最好創建一個執行所有命令的腳本。這個腳本會將輸出打印在一個臨時文件中,然後你可以將'scp'或'sftp'到你的本地服務器上。 – fedorqui 2013-05-07 10:52:08

+0

是的,這個想法確實存在於我的腦海裏,但我擁有超過80個左右的遠程服務器,並且上傳到他們中的每一個都將非常繁瑣。而且,這些命令需要經常修改。因此,這對我來說可能不適用:/ – 2013-05-07 11:07:22

+1

創建一個腳本來部署腳本。定義一個存儲這些腳本及其輸出的目錄。使用基本循環,您可以在幾分鐘內更新腳本。如果您在所有服務器中遵循相同的規則,則它非常乾淨且易於維護。 – fedorqui 2013-05-07 11:11:22

回答

0

我已經實現fedorqui的回答,

  • 創建運行在目標服務器上所需要的命令的(外殼)腳本。
  • 將此腳本部署到所有服務器。
  • 通過期望從本地(中央)服務器執行此腳本。
  • 最終在成功完成後從每臺服務器單獨收集日誌,並對其進行處理。

該解決方案一直工作正常,沒有一個小故障,直到現在。

相關問題