[ 출처 : https://www.thinkit.or.kr/ ]
* awk : 일정한 형식의 문서의 데이터를 추출함.
# cat /var/log/maillog | grep LOGIN | awk '{print $1,$2,$3,$7,$9}'
- 원본의 $?번째 문자열을 골라 추출
Sep 22 14:38:27 ns1 postfix/submission/smtpd[389]: 69D87174012A: client=unknown[xx.xx.xx.xx], sasl_method=LOGIN, sasl_username=xx@xx.xx
- 결과
Sep 22 14:38:27 client=unknown[xx.xx.xx.xx] sasl_username=xx@xx.xx
# cat /var/log/maillog | grep LOGIN | awk '{print $9}'| awk '{arr[$1]+=1} END {for (i in arr) {print i "\t" ":" arr[i]}}'
- 결과
sasl_username=xx@xx.xx : 1
* sed : 입력 문자열을 변경 처리한다.
- 이메일 로그상의 이메일 주소만 추출
# cat /var/log/maillog | grep LOGIN | awk '{print $9}' | sed 's/sasl_username=//g'
- 결과
xx@xx.xx
두개를 합산하여 이메일 계정별 로그인 횟수 계산
# cat /var/log/maillog | grep LOGIN | awk '{print $9}'| sed 's/sasl_username=//g' | awk '{print $5}'| awk '{arr[$1]+=1} END {for (i in arr) {print i "\t" ":" arr[i]}}'
- 결과
xx@xx.xx : 5
xx@xx.xx : 1
** 이메일 로그상의 특정 문자 추출하여 비교대상 비교하기(처리번호추출)
May 9 03:22:45 ns1 postfix/qmgr[8151]: 763721740172: from=<xx@xx.com>
# /var/log/maillog* | grep "postfix/qmgr" |grep "from=<xx@xxx.com" | awk '{print $6}' | sed 's/.$//' > 1.txt
값 비교하여 거부(reject)된 대상만 보기
# grep -f 1.txt /var/log/maillog | grep "reject"
** 특정일에 SSHD 로그인 시도 IP별로 횟수 확인 하기
# cat /var/log/secure | grep "Feb 24"| grep "rhost=" | awk '{print $14}'|tr -d "rhost=" |sort |uniq -c