쉘스크립트 질문
글쓴이: tjddbs8424 / 작성시간: 토, 2018/06/02 - 6:17오후
#!/bin/bash
while true ; do
cat fast.log | sed -e 's/\[[^]]*\]//g' -e 's/\(^[^ ]*\)\s*\([^{]*\)\(.*$\)/\1 \3 \2/g' | \
while read time proto src dir dst rule; do
timea=$time
protoa=$(tr -d '{}' <<< $proto)
srca=$src
dsta=$dst
rulea=$rule
echo "time=$time proto=$(tr -d '{}' <<< $proto) src=$src dst=$dst rule=$rule"
mysql -u root -pXXXX -D kim -e "insert into attacklog(time,Protocol,src,dst,rule) values('$timea','$protoa','$srca','$dst','$rule');"
#;
done
done
이쉘프로그램은 로그를 파싱하여 필요한 부분만 뽑아내어 DB 에 넣어주는 쉘인데 while 문으로 무한루프를 걸어 if 문으로 파일크기를 체크하여 추가 된 부분만 자동적으로 db에 넣고 싶습니다 쉽게말해 이 쉘 프로그램만 백그라운드로 돌려놓으면 로그추가시 자동적으로 계속 db에 넣고싶습니다 if 문을 어떻게 넣어야할까요ㅠㅠ
Forums:
cat 대신 입력을 tail -f 의 결과로부터
cat 대신 입력을 tail -f 의 결과로부터 받으시는것은 어떠세요?
---
http://coolengineer.com
댓글 달기