2009-10-29 50 views
7

出於安全原因(我是開發人員),我沒有命令行訪問我們的生產服務器的日誌文件寫入。我可以,但通過HTTP訪問這些日誌文件。是否有一種「tail -f」方式的工具可以「跟隨」僅使用HTTP的純文本文件?下面的日誌文件通過http

回答

6

如果HTTP服務器接受返回資源部分的請求,則可以執行此操作。例如,如果一個HTTP請求中包含標頭:

範圍:字節= -500

的響應將包含最後500個字節的資源的。你可以獲取它,然後將其解析成行,等等。我不知道任何現成的客戶會爲你做這件事 - 我會寫一個腳本來完成這項工作。

您可以使用Hurl來試驗標題(來自公開可用的資源)。

+0

+1這非常有幫助。我曾想過使用HEAD方法希望獲得資源的大小,以查看是否添加了新的東西。再加上一個特定範圍的GET,我可能會做些什麼。謝謝! – kurosch 2009-11-02 18:08:58

0

您可以使用PsExec在遠程計算機上執行命令。 窗口的tail命令可以在http://tailforwin32.sourceforge.net/

如果必須是HTTP,那麼可以輕鬆實現輕量級Web服務。 例如,從第0行到第200行讀取指定文件內的文本。

+0

我無法遠程執行任何操作,這會讓安全人員中風。我希望在我嘗試自己滾動之前就已經有了一些東西。 – kurosch 2009-10-29 21:50:45

1

你可以使用小java工具通過Http使用Apche HTTP庫來讀取日誌文件。

HttpClient client = HttpClientBuilder.create().build(); 
    HttpGet request = new HttpGet(uri); 
    HttpResponse response = client.execute(request); 
    BufferedReader rd = new BufferedReader(new InputStreamReader(
      response.getEntity().getContent())); 
    String s = ""; 
    while ((s = rd.readLine()) != null) { 
     //Process the line 
    }