2013-10-07 1 views
0

내 회사 로그에서 Linux 로그를 모니터링하고 로그에서 정보를 가져 와서 회사에서 수행하는 작업에 대한 파일을 처리하고 싶습니다.오늘 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 : 해당 파일이나 디렉토리가 없습니다. [2013년 7월 10일 9시 43분 7초] md5sum이 한창 ...

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으로 보내고 GW2을 ...

은 gzip :/syslog3/2013 년/20,131,006분의 10-GW2 : 그런 파일이나 디렉토리가 [2013년 7월 10일 9시 43분 7초] 마무리하지

나는 문제가 perl 시간다는 것을 알고있다, 만약 내가 오늘 리눅스 로그를 구문 분석 해요 (07/10/2013). 스크립트를 실행 한 후. 나는 그 문제를 발견했다. 내 스크립트가 어제 ([today-1]/10/2013) 리눅스 파일을 파서로 파서하기 때문에. 나는 어제 로그와 그 작업을 분석하려고합니다.

내 문제는 오늘 로그 리눅스 파일을 구문 분석하기 위해 perl 시간을 변경하는 것입니다.

누구든지 도와주세요. 왜냐하면 나는 펄 프로그래밍의 기초가 없기 때문이다. 읽어 주셔서 감사합니다 ... :)

답변

0

귀하의 Perl 스크립트에는 모두 오늘 날짜가 걸리고 어제 결과가되는 Add_Delta_Days(Today(), -1)이 있습니다. 대신 오늘 일자를 사용하려면 Today()으로 변경할 수 있습니다.

+0

고맙습니다. 스크립트를 변경하려고합니다. –

+0

감사합니다. ruakh. 내 문제가 해결되었습니다 :) –

+0

@AsongSoekamti : 오신 것을 환영합니다! – ruakh

관련 문제