목차

Systemd 를 이용한 디렉토리/파일 모니터링 이벤트

Systemd의 기능에는 특정 디렉토리/파일에 대해 생성/변경을 모니터링하고 이벤트가 발생하면 트리거를 발생시키는 기능을 사용할 수 있다.
해당 기능은 [Path] 유닛을 통해서 제어 가능하다.

기능구현

$ systemctl --user cat 123* *.path
# /home/stew/.config/systemd/user/123@.service
[Service]
Type=oneshot
ExecStart=/bin/echo %I

# /home/stew/.config/systemd/user/abc.path
[Path]
PathChanged=/a/b/c
Unit=123@-a-b-c.service

# /home/stew/.config/systemd/user/foobar.path
[Path]
PathChanged=/foo/bar
Unit=123@-foo-bar.service

# /home/stew/.config/systemd/user/xyz.path
[Path]
PathChanged=/x/y/z
Unit=123@-x-y-z.service

툴 이용

비슷한 기능을 하는 툴로는 incrontab이라는게 있다. incrontab 을 사용하면 파일 혹은 디렉토리의 생성, 이동, 변경, 삭제 등 다양한 상황에 맞추어 정해진 스크립트를 실행하는 작업을 훨씬 편하게 할 수 있다
단점은 레드햇 계열은 기본 패키지에 포함되어있지 않고 데비안 계열에서만 기본으로 포함되어있다.

참조링크