디렉토리에 트리거를 넣는 방법


25

디렉토리를 스캔하고 그 파일에 대한 유지 관리를 수행하는 스크립트가 있습니다. 다른 프로세스는 디렉토리에 파일을 작성합니다 (하루에 10-30 개의 파일).

스크립트는 매일 cron 작업을 통해 호출됩니다. 필요한 것은 이벤트에서 스크립트를 트리거하는 것입니다 (매번 디렉토리에 새 파일이 생성 될 때마다). 나는 cron 작업의 빈도를 높이기보다는 이것을 선호합니다.

어떻게해야합니까? 설치할 명령이나 프로그램이 있습니까?

도움을 주셔서 감사합니다.

답변:


23

협상

inoticoming은 Linux의 inotify 프레임 워크를 사용하여 디렉토리를 감시하고 특정 이름의 파일이 배치되면 조치를 트리거하는 데몬입니다.

예를 들어 디렉토리에 업로드 된 .changes 파일을 기다렸다가 reprepro를 호출하여 리포지토리에 저장하는 데 사용할 수 있습니다.

인크 론

incron은 "inotify cron"시스템입니다. 일반 cron처럼 작동하지만 시간 이벤트 대신 파일 시스템 이벤트로 구동됩니다. 이 패키지는 "incrond"라는 데몬 (크론과 유사)과 테이블 조작자 "incrontab"(예 : "crontab")의 두 가지 프로그램을 제공합니다.

incron은 Linux 커널 inotify syscall을 사용합니다.

cron과 마찬가지로 각 사용자는 고유 한 incron 테이블을 편집 할 수 있습니다.


2
예를 들어 주시겠습니까? 매뉴얼 페이지에 대한 링크는 내가위한 하나를 찾을 수 없습니다, 너무 환영 incron, inoticoming하나는 여기 .
Lekensteyn

incron를 들어 incrond, incrontab 및 incron.conf의 맨 페이지를 참조
플로리안 Diesch

2
답변을보고 싶은 방식으로 수정했습니다. 패키지 설명에서 복사했습니다. 앞으로 프로그램 이름을
지정할

4

작은 프로그램도 있습니다 iwatch- 매뉴얼 페이지를 참조하십시오 (이 페이지는 Ubuntu 정확한 (12.04) 용이며 다른 우분투 버전에 대한 링크가 있습니다).

iwatch 폴더를 재귀 적으로보고 (예 : 하위 폴더도) 파일 ​​/ 디렉토리 이벤트에 대한 응답으로 이메일을 보낼 수 있습니다.


3

알아야 할 또 다른 유틸리티는 fileschanged( man page here )이며, 선택한 파일 또는 디렉토리에서 파일 시스템 이벤트를 모니터링 할 수 있습니다 (예 : 다음 명령).

fileschanged -s created -t1 $PWD

파일 작성 이벤트에 대해 현재 디렉토리를 모니터하여 작성된 파일 이름을 stdout1 초 제한 시간으로 작성해야합니다 .

fileschanged(할 수있는 재귀 적 폴더를 볼 수있는 iwatch다른 답변에서 언급 한 바와 같이), 달리 incroninoticoming.


2

inotify를 매뉴얼 페이지 위치

파이썬 스크립트를 선호한다면 pyinotify 를 사용할 수 있습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.