繼續監控網頁伺服器並下載新新增的文件

繼續監控網頁伺服器並下載新新增的文件

持續監控網頁伺服器(HTTP)並使用 min 下載新新增的檔案的最佳方法是什麼?延遲(最好延遲 < 1 分鐘)?

答案1

監控

首先,為了監控我建議您使用納吉奧斯,核心原始碼是免費的,但是如果你需要GUI,你應該付費,但是花那麼多錢是值得的。

您也可以使用伊辛加,PRTG,或任何更適合你的。

Collectd(Collection Daemon)也是一個免費的監控工具,您可以yum在 RHEL 衍生產品或apt-get基於 Debian 的衍生產品上下載使用。你可以閱讀這張紙如果你想使用 Collectd。

任務每 x < 1 分鐘運行一次

對於問題的第二部分,每次 x 一次執行一項工作,其中 x 定期少於一分鐘,正如您所知,您不能使用 Cronjobs,因為您可以使用以下解釋的一些技巧吉爾斯 在這個問題中做你想做的事。

最好有一個滿足您需求的腳本,並永遠運行它,甚至在啟動時運行它(如果需要)。您可以使用如下所示的簡單語法:

while true; do yourJob; sleep someTime; done

或者,您甚至可以根據需要使用一些更複雜的腳本。

也可以使用watch指令。例如:

watch -n1  command

它會運行你的command每一秒,直到永遠。

watch正如您可能已經猜到的那樣,如果您只需要每 x 次運行一個簡單的腳本(少於一分鐘)而不是複雜的腳本,那麼您也可以執行 shell 腳本。

這是你的選擇。

答案2

這取決於幾個因素。

如果您可以控制 Web 伺服器,最簡單的方法是安裝一個(RESTful?)服務,提供自上次檢查或下載以來變更的檔案數量。這最大限度地減少了客戶端和伺服器上的資料傳輸和負載。更重要的是,如果可以直接追蹤伺服器上檔案的上傳/修改,例如在上傳腳本中而不是依賴檔案系統。

如果是後者,我會研究一些文件監控解決方案,例如famd.

如果您無法控制伺服器,則必須先進行修改才能下載它們。最簡單的事情是使用一些網路鏡像諸如 w3mir 之類的實用程序,因為它們已經負責檢查/提供 ETag 和 Last-Modified / If-Modified-Since 標頭。這意味著您必須發出更少的調用,因此能夠更頻繁地運行該實用程式。

至於如何要運行該實用程序,取決於它運行的位置。您可以在 Unix 機器上使用 cron 作業,或者只是循環運行它。

但是,如果您選擇前者,我們建議您安裝某種信號量,以防止鏡像程序在前一個實例終止之前啟動。它可以很簡單,只需建立一個鎖定檔案:

if [ -r /tmp/mirror.lock ]; then
    echo "lock file found" | logger -t webmirror
    exit 0
fi
touch /tmp/mirror.lock
...whatever...
rm /tmp/mirror.lock

但是您還必須收到catch任何可能終止腳本的訊號,否則在出現臨時錯誤的情況下,鎖定檔案可能會保留在那裡,並阻止所有其他實例運行,即使在錯誤解決後也是如此。

或者,您可以驗證鎖定檔案是否不早於某個合理的數量,如果是,則將其刪除,或者驗證找到了多少個腳本實例ps(通常是當前的一個;如果更多,則當前的實例最好abort),並且完全不使用鎖定檔案。

答案3

您可以curl在 cron 作業中執行一個簡單的命令,但我建議您開始使用具有 Web 監視功能的監視解決方案。其中有很多是免費的,只需谷歌“開源網路監控解決方案”,你就會得到很多!

答案4

正如 FarazX 所說,有幾種監控解決方案,例如 Nagios,潘朵拉FMS,...但也許這些工具對於您的目的來說太大了。也許Uptime機器人對你來說就夠了。

查看建議並選擇最適合您的方案,但請記住,具有更多選項的監控解決方案可為您的環境提供更多可能性。

相關內容