簡體   English   中英

返回鏈接到服務器上具有目錄列表的最新文件?

[英]Return link to the newest file on server with directory listing?

我想制作一個irssi腳本,該腳本將注意到服務器上的新文件,但是首先我需要Perl中的腳本,該腳本將返回服務器上的最新文件(帶有目錄列表的Apache 2.2.16),並且在下一個腳本運行后(如果有)沒有較新的文件,則上一個返回null,或者如果服務器上有新文件,則返回指向該文件的鏈接。 謝謝你的幫助。

  • 在變量$start_time記住腳本的開始時間

    稍后,您將需要以某種持久方式(緩存,文件,持久會話數據,數據庫/ DBM文件)存儲“上次運行時間”。

  • 讓腳本生成所需文件列表glob()如果只是給定目錄中的文件,則使用glob()如果在目錄結構中是遞歸的,則使用File::Find

  • 對於每個文件,可以通過stat調用找到其創建或修改(無論您要哪個)時間戳。

  • 使用stat數據查找最新文件。 如果您使用glob列出文件,請通過掃描列表來完成; 如果File::Find ,則將其作為回調的一部分來進行,以記住“到目前為止所看到的”文件

  • 檢索“上次運行時間”持久數據

  • 如果找到的最后一個文件晚於“上次運行時間”,則返回指向該文件的鏈接。 如果不是,則返回null

  • 將腳本的開始時間( $start_time )作為新值“上次運行時間”保存到您選擇撕裂它的任何位置。


更新

如果文件列表不是本地的(例如,在Web服務器上),則需要使用包含目錄列表的適當HTML頁面抓取(例如使用WWW::Mechanize glob來替換glob步驟以列出文件(以及時間戳的statWWW::Mechanize檢索頁面和HTML::TwigHTML::Parser來解析HTML並檢索文件名和時間戳。還有專門用於讀取HTML表格內容的模塊,如果CPAN有一個模塊可以讀取,專門分析列出HTML的Apaches文件。


更新2

看起來我的預感是正確的,並且有一個可能的模塊來解析mod_autoindex的HTML輸出: File::Listing::apachelibwww-perl發行版的一部分)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM