| incrontab(5) | مستندات incron | incrontab(5) |
نام (NAME)
incrontab - جداول برای دیمن inotify cron (incrond)
توضیحات (DESCRIPTION)
یک پرونده incrontab حاوی دستورالعملهایی برای دیمن incrond(8) به شکل کلی: «اجرای این دستور هنگام وقوع این رویدادهای فایلی» است. دو دسته جدول وجود دارد: جداول سیستمی (با دسترسیهای root) و جداول کاربری (با دسترسیهای کاربر).
جداول سیستمی (بهطور پیشفرض) در مسیر /etc/incron.d قرار دارند و میتوانند هر نامی داشته باشند. هر جدول سیستمی بهصورت جداگانه در داخل incron وجود دارد و پایشهای آنها هرگز با یکدیگر تداخل ندارند.
هر کاربر جدول اختصاصی خود را دارد، و دستورات موجود در هر incrontab با دسترسی کاربری که مالک آن است اجرا خواهند شد. کاربران سیستمی (مانند apache، postfix، nobody و غیره) نیز میتوانند incrontab اختصاصی خود را داشته باشند.
پروندههای incrontab هنگام راهاندازی دیمن incrond(8) و پس از هرگونه تغییر خوانده میشوند (پروندههای incrontab در زمان اجرای incrond متصل و قلاب میشوند).
خطوط خالی و خطوطی که با علامت هش (#) آغاز میشوند نادیده گرفته میشوند. قالب کلی خطوط به شرح زیر است:
<path> <mask> <command>
که در آن path یک مسیر مطلق در سامانه پرونده، mask یک ماسک رویداد (به صورت نمادین یا عددی) و command یک پرونده اجرایی (یا یک اسکریپت) به همراه آرگومانهای آن است. نمادهای ماسک رویداد در زیر توضیح داده شدهاند. پرونده اجرایی را میتوان به صورت یک مسیر مطلق یا تنها نام آن مشخص کرد (مسیرهای متغیر PATH بررسی میشوند).
لطفاً به یاد داشته باشید که هر مسیر تنها یک بار در هر جدول میتواند تکرار شود (در غیر این صورت تنها اولین مورد اعمال شده و پیام خطایی در گزارشهای سیستم ثبت میشود).
لطفاً توجه داشته باشید که استفاده از نویسه عام * برای پایش محدودهای از فایلها مجاز است.
نمادهای رویداد (EVENT SYMBOLS)
این نمادهای پایه برای ماسک رویداد تعریف شدهاند:
IN_ACCESS دسترسی به فایل (خواندن) (*) IN_ATTRIB تغییر متاداده (مجوزها، برچسبهای زمانی، ویژگیهای گسترده و غیره) (*) IN_CLOSE_WRITE بسته شدن فایلی که برای نوشتن باز شده بود (*) IN_CLOSE_NOWRITE بسته شدن فایلی که برای نوشتن باز نشده بود (*) IN_CREATE ایجاد فایل/دایرکتوری در دایرکتوری مورد پایش (*) IN_DELETE حذف فایل/دایرکتوری از دایرکتوری مورد پایش (*) IN_DELETE_SELF حذف خود فایل/دایرکتوری مورد پایش IN_MODIFY تغییر و اصلاح فایل (*) IN_MOVE_SELF جابهجایی خود فایل/دایرکتوری مورد پایش IN_MOVED_FROM انتقال فایل به بیرون از دایرکتوری مورد پایش (*) IN_MOVED_TO انتقال فایل به درون دایرکتوری مورد پایش (*) IN_OPEN باز شدن فایل (*)
هنگام پایش یک دایرکتوری، رویدادهایی که با ستاره (*) در بالا مشخص شدهاند میتوانند برای فایلهای درون آن دایرکتوری رخ دهند؛ در این حالت، فیلد نام در دادههای رویداد بازگرداندهشده، نام فایل درون دایرکتوری را مشخص میکند.
نماد IN_ALL_EVENTS به عنوان ماسک بیتی از تمام رویدادهای بالا تعریف شده است. دو نماد تسهیلکننده دیگر عبارتند از IN_MOVE که ترکیبی از IN_MOVED_FROM و IN_MOVED_TO است، و IN_CLOSE که IN_CLOSE_WRITE و IN_CLOSE_NOWRITE را ترکیب میکند.
نمادهای زیر نیز میتوانند در ماسک تعیین شوند:
IN_DONT_FOLLOW دنبال نکردن مسیر در صورت پیوند نمادین بودن IN_ONESHOT پایش مسیر تنها برای یک رویداد IN_ONLYDIR پایش مسیر تنها در صورتی که دایرکتوری باشد
علاوه بر این، نمادی وجود دارد که در مجموعه نمادهای inotify دیده نمیشود: نماد loopable=true. این نماد پایش رویدادها را تا زمانی که رویداد کنونی به طور کامل رسیدگی شود (تا زمانی که فرآیند فرزند خارج شود) غیرفعال میکند.
همچنین نماد recursive=false وجود دارد. این نماد پایش را به دایرکتوری مشخصشده محدود کرده و شامل زیردایرکتوریها نمیشود.
در نهایت نماد dotdirs=true نیز وجود دارد. این نماد دایرکتوریهای پنهان (که نامشان با نقطه آغاز میشود) را در پایش لحاظ میکند.
نویسههای عام (WILDCARDS)
نویسههای عام زیر میتوانند در مشخصات دستور به کار روند:
$$ علامت دلار $@ مسیر سامانه پرونده مورد پایش (به بالا مراجعه کنید) $# نام فایل مرتبط با رویداد $% فلگهای رویداد (به صورت متنی) $& فلگهای رویداد (به صورت عددی)
مثالها (EXAMPLES)
اینها نمونه قواعدی هستند که میتوان در یک پرونده incrontab استفاده کرد:
/tmp IN_ALL_EVENTS abcd $@/$# $% /usr/bin IN_ACCESS,loopable=true abcd $# /home IN_CREATE /usr/local/bin/abcd $# /home IN_CREATE,dotdirs=true /usr/local/bin/abcd $# /home IN_CREATE,recursive=false /usr/local/bin/abcd $# /var/log 12 abcd $@/$#
خط اول تمام رویدادهای دایرکتوری /tmp را پایش میکند. هنگامی که رویدادی رخ دهد، برنامهای به نام 'abcd' را با مسیر کامل فایل به عنوان آرگومان اول و فلگهای رویداد به عنوان آرگومان دوم اجرا میکند.
خط دوم دسترسیها (خواندنها) در دایرکتوری /usr/bin را پایش میکند. برنامه 'abcd' به عنوان گرداننده اجرا شده و پایش رویداد مربوطه تا پایان برنامه غیرفعال میشود. نام فایل (بدون مسیر دایرکتوری) به عنوان یک آرگومان منتقل میشود.
مثال سوم برای پایش دایرکتوری /home جهت شناسایی فایلها یا دایرکتوریهای جدیداً ایجاد شده به کار میرود (عملاً بدین معناست که هنگام افزوده شدن کاربر جدید، یک رویداد ارسال میشود). این رویداد توسط برنامهای که با مسیر مطلق مشخص شده پردازش میگردد.
مثال چهارم همانند مثال سوم است، اما دایرکتوریهای پنهان را نیز در پایش لحاظ میکند.
مثال پنجم همانند مثال سوم است، اما زیردایرکتوریها را از پایش مستثنی میکند.
خط پایانی نشان میدهد که چگونه میتوان از ماسک رویداد عددی به جای متنی استفاده کرد. مقدار 12 دقیقاً معادل IN_ATTRIB,IN_CLOSE_WRITE است.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
Andreas Altair Redmer <altair.ibn.la.ahad.sy@gmail.com>
(لطفاً
اشکالات را
به https://github.com/ar-/incron/issues
گزارش دهید).
Lukas Jelinek <lukas@aiken.cz> .
حق نشر (COPYING)
این برنامه یک نرمافزار آزاد است. میتوان از آن استفاده کرد، آن را بازتوزیع نمود و/یا تحت شرایط پروانه عمومی همگانی گنو (GPL)، نسخه ۲، تغییر داد.
| 0.5.12 | Lukas Jelinek |