0

我想监控我的 linux 日志并从日志中提取信息以处理我在公司工作的员工活动的文件。

#!/bin/bash

#if [[ -z "$1" ]]; then
#       echo "Error: usage: autoParseMD5EncZip [device_id]"
#else
        yearCalc=`perl -e 'use Date::Calc qw(Today Add_Delta_Days); my ($y)=Add_Delta_Days(Today(), -1); print "$y"'`
        monthCalc=`perl -e 'use Date::Calc qw(Today Add_Delta_Days); my ($y,$m)=Add_Delta_Days(Today(), -1); if ($m<=9) {$m = "0".$m;} print "$m"'`
        prefixCalc=`perl -e 'use Date::Calc qw(Today Add_Delta_Days); my ($y, $m, $d)=Add_Delta_Days(Today(), -1); if ($m<=9) {$m = "0".$m;} if ($d<=9) {$d = "0".$d;} print "$y$m$d"'`
        secaudit=`perl -e 'use Date::Calc qw(Today Add_Delta_Days); my ($y, $m, $d)=Add_Delta_Days(Today(), -1); if ($m<=9) {$m = "0".$m;} if ($d<=9) {$d = "0".$d;} print "$d-$m-$y"'`

        pathSource="/syslog"
        pathDest="/syslog3/secaudit"

        #echo "ls -als /syslog/$yearCalc/$monthCalc/$prefixCalc-$1.gz"i
        nowTgl=$(date +%d/%m/%Y\ %H:%M:%S)
        echo "[$nowTgl] Parsing gw1 ..."
        logParser.app $pathSource/$yearCalc/$monthCalc/$prefixCalc-gw1 $pathDest/IDMOB-$secaudit.csv
        nowTgl=$(date +%d/%m/%Y\ %H:%M:%S)
        echo "[$nowTgl] Parsing gw2 ..."
        logParser.app $pathSource/$yearCalc/$monthCalc/$prefixCalc-gw2 $pathDest/IDMOB-$secaudit.csv
        nowTgl=$(date +%d/%m/%Y\ %H:%M:%S)
        echo "[$nowTgl] Encrypt gpg"
        gpg --batch -e -r IndoMobile --keyring /root/.gnupg/pubring.gpg -o $pathDest/IDMOB-$secaudit.csv.gpg $pathDest/IDMOB-$secaudit.csv
        nowTgl=$(date +%d/%m/%Y\ %H:%M:%S)
        #rm -f $pathDest/IDMOB-$secaudit.csv
        nowTgl=$(date +%d/%m/%Y\ %H:%M:%S)
        echo "[$nowTgl] bzip-ing ..."
        bzip2 $pathDest/IDMOB-$secaudit.csv.gpg
        nowTgl=$(date +%d/%m/%Y\ %H:%M:%S)
        echo "[$nowTgl] md5sum-ing ..."
        md5sum $pathDest/IDMOB-$secaudit.csv.gpg.bz2 > $pathDest/IDMOB-$secaudit.md5
        nowTgl=$(date +%d/%m/%Y\ %H:%M:%S)
        echo "[$nowTgl] gzip-ing gw1 ..."
        gzip /syslog/$yearCalc/$monthCalc/$prefixCalc-gw1
        nowTgl=$(date +%d/%m/%Y\ %H:%M:%S)
        echo "[$nowTgl] gzip-ing gw2 ..."
        gzip /syslog/$yearCalc/$monthCalc/$prefixCalc-gw2
        nowTgl=$(date +%d/%m/%Y\ %H:%M:%S)
        echo "[$nowTgl] FINISH"
        echo " "
        echo "----------------------------------"
        echo " "
        echo " "
#fi

如果我今天要解析日志 linux。在白天它也使用上面的脚本。我会发现这个问题:

bzip2:无法打开输入文件 /syslog3/secaudit/IDMOB-06-10-2013.csv.gpg:没有这样的文件或目录。[07/10/2013 09:43:07] md5sum-ing ...

md5sum: /syslog3/secaudit/IDMOB-06-10-2013.csv.gpg.bz2: 没有这样的文件或目录 [07/10/2013 09:43:07] gzip-ing gw1 ...

gzip:/syslog3/2013/10/20131006-gw1:没有这样的文件或目录 [07/10/2013 09:43:07] gzip-ing gw2 ...

gzip:/syslog3/2013/10/20131006-gw2:没有这样的文件或目录 [07/10/2013 09:43:07] 完成

我知道问题出在 perl 时间,如果我今天(07/10/2013)解析 linux 日志。在我运行我的脚本之后。我发现了那个问题。因为我的脚本昨天([today-1]/10/2013)只是解析器记录了 linux 文件。我尝试在今天解析昨天的日志及其工作。

我的问题是更改 perl 时间,以便今天解析日志 linux 文件。

任何人请帮助我。因为我没有基本的 perl 编程。感谢您阅读它... :)

4

1 回答 1

0

您的 Perl 脚本都有Add_Delta_Days(Today(), -1),它采用今天的日期并减去一天,得到昨天。如果您想改用今天的日期,只需将其更改为Today().

于 2013-10-07T04:23:48.017 回答