perl script 관련 질문있습니다.

gracesky의 이미지


perl로 로그 파일을 분석하는 툴을 만들고 있습니다. 로그 파일을 열어서 이미 쓰여진 로그를 분석하는 것은 쉬운데, 로그 파일에 무언가가 쓰여지는 것을 탐지해서 추가된 부분에 대해서 분석을 해주는 툴은 어떻게 만들어야 할 지 감이 안오네요. 예를 들자면 제가 만든 것은 다음과 같습니다.

#!usr/bin/perl

open(FD, "./Logfile")||die "open "./Logfile" fail\n";
while()
{
if($_ =~ /Warning/)
{
print " Warning occur!! \n";
}
}
close(FD);

1초마다 한 번씩 로그 파일을 열어서 실행해주도록 한다면 첫번째 Warning이 뜨면 알려주겠지만 성능상 무용지물에 가깝겠네요 --; Logfile에 write되는 문자열들을 추적하고 있다가 "Warning"이라는 문자열이 검색되면 알려주는 script는 어떻게 만들 수 있을까요?

평양선봉의 이미지

File::Tail 을 이용하시면 될것같습니다.
http://search.cpan.org/~mgrabnar/File-Tail-0.99.3/Tail.pm
----
웹페이지 : http://bzpalm.net/

----
웹페이지 : http://bzpalm.net/

gracesky의 이미지

앗 감사합니다.
저런게 있다니, 멋지네요. 문제는 일의 특성상 superuser 권한이 없는 서버에 가서 일하는 경우가 많아서 perl module은 못쓰고 있습니다 ㅠㅠ
저런 module 들은 소스를 공개하는지 궁금하네요. 안되면 소스를 뜯어보고 비슷하게 구현하던가 해야할 것 같아서요.

aero의 이미지

바퀴를 재발명하지 마시고 SEC ( http://www.estpak.ee/~risto/sec/ )을 써보세요.
이것은 Perl로 만들어져 있어서 Perl 정규식을 그대로 사용가능하며
패턴검색 뿐만 아니라 특정 time span내의 빈도검출, 관련있는 패턴의 연속발생등
로그파일들에서 상상가능한 거의 모든 종류의 패턴을 검색하고 처리할 수 있습니다.

SEC은 박사과정 논문의 결과로 나온 프로그램으로 어떤 로그검출 프로그램보다
정교하게 설계되었고 성능 또한 뛰어납니다.
그래서 로그처리하는 고가의 상용프로그램들에서도 알게 모르게 가져다 쓰고 있지요.

gracesky의 이미지

감사합니다~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.