[완료]INOTIFY 에 대한 질문

yshkorea의 이미지

파일시스템 모니터링에 대해 찾다가
inotify 란걸 알게됐는데요
그게 특정 linux os 에만 설치되어있다고 해서
inotify 직접 설치하려고 했는데 잘되지 않습니다.
[url=http://www-128.ibm.com/developerworks/kr/library/l-inotify.html#N10054]

그래서 우분투를 설치했는데 /dev/inotify 있나 봤더니 없네여 -_-
그래서 생각하길 제가 데스크탑으로 깔아서 그런가 해서
지금 설치하고있는데 없을거같은 느낌이..

inotify 설치되지 않은 os에서 설치하신분 있나요??
아니면 inotify 설치된 os 는 뭐가있죠??

superkkt의 이미지

커널 2.6.13 이상을 사용하는 배포판은 다 사용이 가능할겁니다. 그리고 링크 걸어주신 문서는 옛날 방법을 사용하는것 같네요. 거기 말고 아래 주소에 있는 글을 한번 읽어보세요.

http://www.linuxjournal.com/article/8478

그리고 inotify를 사용해서 만들어진 inotify-tools의 소스코드를 참조하면 실제로 어떻게 코딩을 하면 되는지 알 수 있습니다.

http://inotify-tools.sourceforge.net/

그런데 시작하시기 전에 한가지 주의하셔야 할 점이 있습니다. 저도 이 문제를 나중에서야 발견하고 포기했는데요. inotify로 특정 디렉토리에 대한 감시를 걸어놓으면 해당 디렉토리만 감시를 하고 recursive하게 하위 디렉토리를 감시하지 않습니다. 즉, application에서 하위 디렉토리를 모두 watch에 등록해야 하는데요.

문제는 watch queue가 한계가 있다는 사실입니다. 기본값은 8192로 알고 있는데, 이 값은 /proc에 있는 특정 파일의 값을 변경해서 조절이 가능하지만 이 값을 무턱대고 증가시키는건 좋은 해결 방법이 아닐듯 싶구요. 제작자는 inotify 자체에서는 recursive 기능을 제공할 생각이 없다고 하더군요.

저는 실시간 백업용 소프트웨어에 사용하려고 했었는데.. 제가 적용하려는 사이트가 워낙에 디렉토리 구조가 복잡한 곳이라 일단 보류 상태입니다.

======================
BLOG : http://superkkt.com

======================
BLOG : http://superkkt.com

yshkorea의 이미지

커널 2.6.13 이상이면 inotify 의 커널패치없이 바로 사용가능하다는거죠?
/include/sys에 헤더파일정도 추가해주면 되는겁니까?

inotify말고 fcheck라는 프로그램 받아서 해봤었는데 이프로그램도 recursive 하지 않더라구요.
그래서 inotify 찾고 있었는데, 감시할 디렉토리 설정하도록 해야겠네요..

그럼.. 전체 파일시스템을 모니터링 하는방법은 없는건가요??

===================================================

"yshkorea" 죽을만큼 노력했는가? 그만큼 간절했는가?

"yshkorea" 죽을만큼 노력했는가? 그만큼 간절했는가?

superkkt의 이미지

include/sys에 헤더 파일이 제공되어 있어야겠죠..^^;; 사용자가 추가하는게 아니구요. 어플리케이션에서 전체 파일시스템을 recursive하게 등록해서 감시하면 되겠지만, depth가 깊은 시스템에서는 queue overflow가 발생할테구요. 무작정 늘리자니 좋은 방법이 아닌것 같고.. 저도 계속 방법을 찾고 있는데 아직 답이 없네요.

======================
BLOG : http://superkkt.com

======================
BLOG : http://superkkt.com

yshkorea의 이미지

어찌어찌 프로그램 코딩했습니다.
어쨌든 기본기능은 돌아가게 만들었는데
아직 그파일수정을 누가 했느냐가 남아있네요
이부분은 다른질문으로 오리겠습니다. 감사합니다^^

===================================

"yshkorea" 죽을만큼 노력했는가? 그만큼 간절했는가?

"yshkorea" 죽을만큼 노력했는가? 그만큼 간절했는가?

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.