linux教程 | 如何在 Linux Web 服務器上快速跟蹤 PDF 訪問
是否可以跟蹤您網站的用戶點擊下載 PDF 或 JPG 等二進制文件的次數?對的,這是可能的。這簡單嗎?我原本不這么認為。我錯了。
這個故事開始于我在我的Bootstrap IT 網站上優(yōu)化我的新書的登陸頁面,保持最新:你不能錯過的所有重大技術趨勢的背景資料。
我想提供對本書示例章節(jié)的 PDF 文件的訪問。但我也想知道有多少人實際下載了它。
現(xiàn)在讓我們退后一步。Google Analytics是一項免費服務,它使用插入到您的 HTML 文件中的代碼片段來收集和顯示有關您的文件被訪問頻率的數據。
Google Analytics 的魔力和問題在于可以透露多少有關用戶的信息。我在 Keeping Up 書中討論了與該服務相關的一些隱私問題。我還提到了我自己在自己的網站上使用該服務時至少感到有點內疚。
無論如何,谷歌分析本身并不能告訴你很多關于你的基于網絡的 PDF 是如何被使用的。當然,有一些技巧可以解決這個問題。
傳統(tǒng)方法包括設置Google 跟蹤代碼管理器、自定義您使用的請求 URL 的語法,或者,如果您的網站使用 WordPress 軟件,則使用Monster Insights 插件。這些都可以工作,但需要相當陡峭的學習曲線。
但我是 Linux 系統(tǒng)管理員。而且,正如我經常提醒我周圍的人一樣,最好的系統(tǒng)管理員是懶惰的。學習曲線?這聽起來有點像工作。不會發(fā)生在我的手表上。
所以這是交易。顯然,我的 Web 服務器運行 Linux。而且,在底層,HTTP 流量由 Apache 處理。這意味著在我的網站上發(fā)生的所有事情都將由 Apache 記錄。
一切。只需要從我的本地工作站運行一行 Bash,就可以讓我了解我的 PDF 示例章節(jié)的內容:

讓我們分解一下。引號 (?cd /var/log/apache2
) 中的兩個命令中的第一個會將我們移動到 Linux 服務器上的 /var/log/apache2/ 目錄,Apache 將在該目錄中寫入其日志。那不是火箭科學。
該目錄中將有多個感興趣的文件。這是因為與常規(guī)訪問和錯誤相關的消息被保存到不同的文件中,并且因為文件輪換策略意味著這些文件中的任何一個都可能有多個版本。因此,我將使用grep
在所有未壓縮文件中搜索該KeepingUpSampleChapter
字符串。KeepingUpSampleChapter
當然,它是 PDF 文件名的一部分。
然后我將該命令通過管道傳輸到 SSH,SSH 將連接到我的遠程服務器并執(zhí)行該命令。這是成功運行后單個條目的外觀(出于隱私考慮,我刪除了請求者的 IP 地址):

我們可以看到:
- 出現(xiàn)條目的日志文件 (?
other_vhosts_access.log.1
) - 請求者的 IP 地址(已編輯)
- 時間戳告訴我們文件被訪問的確切時間
- 文件在服務器文件系統(tǒng)上的相對位置 (?
/davidclinton/KeepingUpSampleChapter.pdf
) - 發(fā)出請求的 URL (?
https://bootstrap-it.com/davidclinton/keeping-up/
) - 以及用戶正在運行的瀏覽器
這是很多信息。如果我們只是想知道文件被下載了多少次,我們可以簡單地將輸出通過管道傳遞給wc
命令,該命令將告訴我們關于輸出的三件事:行數、單詞數和包含的字符數。該命令如下所示:

這種方法有一個可能的限制。如果您的網站很忙,日志文件會頻繁翻轉,通常一天超過一次。默認情況下,第一次翻轉后,文件使用gz
算法壓縮,無法讀取grep
。
該zgrep
命令處理此類文件不會有任何問題,但該過程最終可能需要很長時間。您可能會考慮編寫一個簡單的自定義腳本來解壓縮每個gz
文件,然后grep
對其內容進行常規(guī)運行。那將是你的項目。
在我的bootstrap-it.com上以書籍、課程和文章的形式提供了更多的管理優(yōu)勢。
原文:https://www.freecodecamp.org/news/quickly-track-pdf-access-linux-web-server/