在 BASH 中我想不出一个好的方法来做到这一点,但我只想查看过去 30 天在 /var/log/messages* 中的条目。对我来说,问题是如何仅使用月份和日期来做到这一点。例如:
Sep 2 14:26:13 <SOME ENTRY>
Sep 4 14:26:13 <SOME ENTRY>
Sep 9 14:26:13 <SOME ENTRY>
Sep 14 14:26:13 <SOME ENTRY>
etc..
有任何想法吗 ?帮助!哈哈
我认为这很接近。这将为您提供截至 8 月初的条目排序列表(最近的第一个)。根据你运行它的时间,它会给你大约 60 天而不是 30 天。平均而言,我想它会给你大约 45 天。另一个缺点是你需要调整grep
管道末端的语句随着日期的推进。
sort -k1Mr -k2nr <file> | grep -E "Aug|Sep"
有点晚了,但是……
egrep "^$(date '+%b %e' -2d)" /var/log/messages
for (( i=0; i<=${MAXSEARCHDAYS}; i++)) ;do
egrep $(date --date "now -${i} days" +%b) ${USBFOUND} | grep $(date --date "now -${i} days" +%e) >> ${TEMPFILE}
done
sort -k1,1M -k2,2n ${TEMPFILE} | uniq >> ${LOGFILE}