Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kaisargaming/13ecf096086ff5722ea94e18a740ffd5 to your computer and use it in GitHub Desktop.
Save kaisargaming/13ecf096086ff5722ea94e18a740ffd5 to your computer and use it in GitHub Desktop.
Monitor perubahan file system secara recursive di linux

Watcher.py untuk Monitoring File System secara recursive

Script python beserta contoh konfigurasinya dapat dipelajari melalui https://github.com/splitbrain/Watcher.git

$ cd ~/
$ git clone https://github.com/splitbrain/Watcher.git
$ cd Watcher
$ chmod +x watcher.py

Catatan konfigurasi

File konfigurasi watcher.ini dapat diletakkan di dalam folder /etc/ , berikut contoh isi dari file konfigurasi

[DEFAULT]
logfile=/tmp/watcher.log
pidfile=/tmp/watcher.pid

[dev]
watch=/path/ke/direktori/yang/dimonitor
events=create,delete,modify
excluded=
recursive=true
autoadd=true
command=chown -R www-data.www-data $watched

[konfig2]
watch=/path/ke/direktori/yang/dimonitor2
events=create,delete,modify
excluded=
recursive=true
autoadd=true
command=chown -R www-data.www-data $watched

Multiple target dapat didefinisikan melalui direktif yang terdapat setelah [Targetname]

Eksekusi script

Eksekusi script dapat dilakukan sebagai berikut;

$ ./watcher.py start

Memeriksa apakah script sudah berjalan dengan baik dapat dilakukan melalui file log yang terdapat di dalam /tmp

Service systemd untuk script terkait

Monitoring dapat dilakukan secara persistent melalu service systemd yang didefinisikan di file .service yang terdapat di dalam direktori /lib/systemd/system/.

  • Pindahkan script ke dalam /usr/bin/
  • Buat file .service didalam folder systemd
  • Sesuaikan definisi untuk service terkait
  • Reload daemon untuk systemctl
  • Enable service dan lakukan konfirmasi
$ cp watcher.py /usr/bin/
$ touch /lib/systemd/system/fs_watcher.service
$ vim /lib/systemd/system/fs_watcher.service
########
[Unit]
Description=Monitor File system changes recursively

[Service]
Type=simple
ExecStart=/usr/bin/python /usr/bin/watcher.py start
ExecStop=/usr/bin/python /usr/bin/watcher.py stop
ExecReload=/usr/bin/python /usr/bin/watcher.py restart
PIDFile=/tmp/watcher.pid
Restart=always

[Install]
WantedBy=multi-user.target
########
$ systemctl daemon-reload
$ systemctl enable fs_watcher
$ systemctl status fs_watcher
● fs_watcher.service - Monitor File system changes recursively
   Loaded: loaded (/lib/systemd/system/fs_watcher.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-07-09 04:13:31 UTC; 6min ago
 Main PID: 6536 (python)
    Tasks: 4
   Memory: 7.7M
      CPU: 369ms
   CGroup: /system.slice/fs_watcher.service
           └─6536 /usr/bin/python /usr/bin/watcher.py start

Jul 09 04:13:31 s2 systemd[1]: Started Monitor File system changes recursively.
Jul 09 04:13:32 s2 systemd[1]: fs_watcher.service: Supervising process 6536 which is not our child. 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment