שומר על שינויים או שינויים בתיקיות ובקבצים

fswatch הוא צופה שינויי קבצים צלב-פלטפורמה שמקבל התראות כאשר תוכן הקבצים או הספריות המצויינות משתנה או משונה.

הוא מבצע ארבעה סוגי צפין במערכות הפעלה שונות כגון:

  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).

תכונות של fswatch

  1. תומך ב-OS-ספציפי API
  2. מאפשר צפייה רקורסיבית בספריות
  3. מבצע סינון נתיב באמצעות ביטויים רגולריים כוללים ומוחקים
  4. תומך בפורמט רשומה הניתן להתאמה
  5. בנוסף, הוא תומך באירועי ריקוד תקופתיים

איך להתקין fswatch במערכות Linux

למרבית הצער, חבילת fswatch אינה זמינה להתקנה ממאגרי המערכת הברירת מחדל באף אחת מההפצות של Linux. הדרך היחידה להתקין את הגרסה האחרונה של fswatch היא לבנות מתוך קובץ מקור כפי שמוצג בהוראות ההתקנה הבאות.

ראשית, עליכם להוריד את קובץ ה-tarball האחרון של fswatch באמצעות הפקודה 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) מותקנים במערכת, לפני שתכינו את fswatch מהמקור. אם לא, התקינו אותם באמצעות הפקודה הבאה בהתאם להפצות 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 format:

$ 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

למידע נוסף ושימוש, בקר במאגר הגיטהאב של 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/