簡體   English   中英

檢查旋轉日志文件的Perl腳本

[英]Perl script that checks rotated log files

有一個運行多個網站且配置了每日日志文件輪換的Web服務器。

任務:創建一個perl腳本,該腳本檢查源目錄中的當前日志文件列表,並將其與另一個目錄中的輪轉日志文件列表進行比較。 如果昨天的日志未循環,則腳本必須打印日志文件的名稱。

源目錄示例:

ls -l /var/log/httpd/logs/*log
-rw-r--r-- 1 root root 0 May 20 00:01 /var/log/httpd/logs/access.log
-rw-r--r-- 1 root root 483652 May 20 12:54 /var/log/httpd/logs/othersite.com_80-access.log
-rw-r--r-- 1 root root 305 May 20 11:51 /var/log/httpd/logs/othersite.com_80-error.log
-rw-r--r-- 1 root root 0 May 20 00:01 /var/log/httpd/logs/error.log
-rw-r--r-- 1 root root 46222 May 20 12:45 /var/log/httpd/logs/www.site.com_8880-access.log
-rw-r--r-- 1 root root 0 May 20 00:01 /var/log/httpd/logs/www.site.com_8880-error.log

帶有旋轉日志的目錄:

ls -l /var/log/httpd/logs/completed/|grep 2014-05-19
-rw-r--r-- 1 root root 20 May 20 00:01 access.log.2014-05-19.gz
-rw-r--r-- 1 root root 107244 May 20 00:01 othersite.com_80-access.log.2014-05-19.gz
-rw-r--r-- 1 root root 9991 May 20 00:01 www.site.com_8880-access.log.2014-05-19.gz
-rw-r--r-- 1 root root 20 May 20 00:01 www.site.com_8880-error.log.2014-05-19.gz

在這種情況下,昨天的兩個日志文件不存在\\未輪換:

-rw-r--r-- 1 root root 483652 May 20 12:54 /var/log/httpd/logs/othersite.com_80-access.log
-rw-r--r-- 1 root root 305 May 20 11:51 /var/log/httpd/logs/othersite.com_80-error.log

期待任何建議!

在源目錄上進行glob <>並放入哈希鍵。 您將日志或日期的大小放在哈希值中。 然后轉到目標目錄並執行相同的操作-讀取文件,並在循環時檢查哈希中是否包含文件。 您還可以比較大小和日期。 如果沒有,請復制它。

暫無
暫無

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

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