[서버]operate_flowd.pl

programming 2005. 9. 29. 07:30 |

Cisco NetFlow export data를 저장하는 방법을 찾는 도중에
FLOWD(http://www.mindrot.org/flowd.html)라는 프로그램을 찾았다. 이것을 이용하여
export되는 데이터를 하나의 파일에 저장을 하는데 하나의 파일보다는 날짜별로 분리해서 파일을 저장하는 것이 좋을듯 하여
하나의 펄스크립트를 작성해봤다. 끼적..끼적..
#!/usr/bin/perl
#작성자: 한상구(sghan@ans.co.kr)
#작성일: 2005년9월29일
#목적: Cisco의 Netflow데이터를 수집하는 flowd를 이용하는데 날짜별로 파일을
# 만들어서 저장하기 위함.
#

# 로그파일이름을 날짜별로 만들도록 flowd.conf파일을 생성하여 하루마다 flowd
# 데몬이 재구동되는 프로세스 구성..
$config_file = “/usr/local/etc/flowd.conf”; #FLOWD의 구성파일 위치

open(CONFFILE, “>$config_file”) || die “$config_file 이 존재하지 않습니다: $!”;

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
# localtime함수는 문맥에 따라서 다른 내용을 반환.
# 스칼라문맥: $timestr = localtime; “Wed May 1 2:38:17 2002″ 스트링을 반환.
# 목록문맥: @timestruct = localtime; (17, 38, 21, 1, 4, 102, 3, 120,0)
# (초,분,시,날짜,월-1,년-1900,요일,1월1일1부터의날수-1,일광절약시간)반환
$r_year = $year + 1900;
$r_mon = $mon + 1;
print CONFFILE “###작성일:\t $r_year 년 $r_mon 월 $mday 일 $hour:$min\n”;
print CONFFILE “logfile \”/home/_flowd/flowd_$r_year$r_mon$mday\”\n”;
print CONFFILE “pidfile \”/var/run/flowd.pid\”\n”;
print CONFFILE “listen on 143.248.240.113:12345\n”;
print CONFFILE “store ALL\n”;
close(CONFFILE);

$flowd_pid = `cat /var/run/flowd.pid`;
kill ‘HUP’, $flowd_pid;

Posted by salgunamu
: