fswatch – يراقب تغييرات وتعديلات الملفات والمجلدات في Linux

مراقبة التغييرات في الملفات هو برنامج يعمل عبر منصات مختلفة، يراقب تغييرات الملفات أو الدلائل المحددة ويصدر تنبيهات عند تعديل محتواها.

يقوم بتنفيذ أربعة أنواع من المراقبات على أنظمة التشغيل المختلفة مثل:

  1. A monitor build on the File System Events API of Apple OS X.
  2. A monitor based on kqueue, a notification interface present in FreeBSD 4.1 also supported on many *BSD systems, OS X inclusive.
  3. A monitor based on File Events Notification API of the Solaris kernel plus its spin-offs.
  4. A monitor based on inotify, a kernel subsystem that shows file system modifications to apps.
  5. A monitor based on ReadDirectoryChangesW, a Windows API that records alters to a directory.
  6. A monitor that regularly check that status of file system, keeps file modification times in memory, and manually determine file system changes (which works anywhere, where stat can be used).

ميزات برنامج مراقبة التغييرات في الملفات

  1. يدعم العديد من واجهات برمجة التطبيقات الخاصة بأنظمة التشغيل
  2. يسمح بمراقبة الدلائل بشكل متكرر
  3. يقوم بتصفية المسارات باستخدام تعابير منتظمة للتضمين والتستثناء
  4. يدعم تنسيق سجل قابل للتخصيص
  5. بالإضافة إلى ذلك، يدعم الأحداث الخمول الدورية

كيفية تثبيت برنامج مراقبة التغييرات في الملفات في أنظمة Linux

للأسف، حزمة مراقبة التغييرات في الملفات غير متاحة للتثبيت من مستودعات النظام الافتراضية في أي توزيعة Linux. الطريقة الوحيدة لتثبيت الإصدار الأحدث من مراقبة التغييرات في الملفات هي بناءه من ملف المصدر كما هو موضح في تعليمات التثبيت التالية.

قم أولاً بالحصول على أحدث ملف مضغوط لـ مراقبة التغييرات في الملفات باستخدام الأمر wget التالي وثبته كما هو موضح:

$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz
$ tar -xvzf fswatch-1.9.3.tar.gz
$ cd fswatch-1.9.3
$ ./configure
$ make
$ sudo make install 

ملاحظة: تأكد من توفر GNU GCC (مترجم C و C++) وأدوات التطوير (build-essential على Debian/Ubuntu) على النظام قبل تجميع مراقبة التغييرات في الملفات من المصدر. إذا لم يكن مثبتًا، قم بتثبيته باستخدام الأمر التالي على توزيعات Linux الخاصة بك.

# yum group install 'Development Tools'		[On CentOS/RHEL]
# dnf group install 'Development Tools'		[On Fedora 22+ Versions]
$ sudo apt-get install build-essential          [On Debian/Ubuntu Versions]

على توزيعات Debian/Ubuntu، قد تحصل على الخطأ التالي أثناء تنفيذ أمر fswatch.

fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory

لإصلاحه، تحتاج إلى تنفيذ الأمر أدناه، وهذا سيساعد في تحديث الروابط والذاكرة المؤقتة للمكتبات الديناميكية قبل أن تتمكن من استخدام fswatch.

$ sudo ldconfig

كيف يمكنني استخدام fswatch على نظام Linux؟

الصيغة العامة لتشغيل fswatch هي:

$ fswatch [option] [path]

على Linux، من المستحسن استخدام المراقب الافتراضي inotify، يمكنك عرض المراقبين المتاحين باستخدام الخيار -M أو - list-monitors:

$ fswatch -M
$ fswatch --list-monitors
fswatch – List Monitors

الأمر أدناه يمكنك مراقبة التغييرات في الدليل الحالي (/home/tecmint)، مع تسليم الأحداث إلى الإخراج القياسي كل 4 ثوانٍ.

الخيار -l أو –-latency يسمح لك بتعيين التأخير بالثواني، حيث يكون الافتراضي 1 ثانية.

$ fswatch -l 4 . 

الأمر التالي يراقب التغييرات في ملف /var/log/auth.log كل 5 ثوانٍ:

$ fswatch -l 5 /var/log/auth.log

استخدام الخيار -t أو --timestamp يطبع الطابع الزمني لكل حدث، لطباعة الوقت بتنسيق UTC، استخدم الخيار -u أو --utf-time. يمكنك أيضًا تنسيق الوقت باستخدام الخيار -f أو --format-time:

$ fswatch --timestamp /var/log/auth.log

بعد ذلك، -x أو --event-flags يخبر fswatch بطباعة علامات الحدث بجانب مسار الحدث. يمكنك استخدام الخيار –event-field-seperator لطباعة الأحداث باستخدام الفاصل المحدد.

$ fswatch --events-flags ~ /var/log/auth.log

لطباعة القيمة الرقمية لحدث يشير إلى التغييرات في دليل المنزل الخاص بك وملف /var/log/auth.log، استخدم الخيار -n أو --numeric كما هو موضح أدناه:

$ fswatch --numeric ~ /var/log/auth.log 

ربما يمكنك الاطلاع على صفحة الرجل لـ fswatch للحصول على خيارات الاستخدام المفصلة والمعلومات:

$ man fswatch

لمزيد من المعلومات والاستخدام، قم بزيارة مستودع GitHub لـ fswatch: https://github.com/emcrisostomo/fswatch

في هذه المقالة، غطينا أداة سطر الأوامر البسيطة لمساعدة مستخدمي Linux في الحصول على إشعار عند تعديل محتويات الملفات المحددة أو التسلسل الهرمي للدليل.

I hope all went well with the installation, if that is not the case for you, make an effort to reach us via the feedback form below. In addition, in case you have used it before, you may want to offer us some thoughts about your experience with fswatch.

Source:
https://www.tecmint.com/fswatch-monitors-files-and-directory-changes-modifications-in-linux/