[英]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.