2016-09-16 74 views
1

我正在嘗試編寫一個bash腳本來獲取特定單詞的當天daemon.logs,並通過郵件發送給我。這是我的腳本發送所有日誌,但我只想要一天的日誌。例如今天是16/09/16我希望所有的日誌都是16/09/16。如果有人能幫助我,我真的很感激。Bash腳本獲取當日日誌

#!/bin/bash 

    EMAIL="[email protected]" 
    DIR="/var/log/daemon.log" 
    FILTER="named.*denied|named.*transfer" 


    egrep "$FILTER" "$DIR" | mail -s "DNS Query and Transfers on $(date +%F)" $EMAIL 

回答

0

我假設日期存儲在日誌行的開頭,如YYYY/MM/DD。只要擴展egrep模式:

egrep "^$(date +%Y/%m/%d).+$FILTER" | .... 
+0

感謝您的回答,我真的很感激它,我試過但不起作用。這裏是一個日誌行的例子:9月16日00:08:19樺木命名[31524]:客戶端85.159.233.131#29007:查詢(緩存)'cpsc.gov/ANY/IN'denied – jake

+0

仔細閱讀我的文章:我說*我假設日期存儲在日誌行的開頭,如YYYY/MM/DD *。你說你的行以* Sep 16 00:08:19開頭,樺木命名爲.... *,與你在帖子中陳述的是不同的**。很明顯,如果你的線條看起來不一樣,你必須相應地調整正則表達式模式。垃圾進垃圾出... – user1934428