ايران ويج

نسخه‌ی کامل: زیر نظر گرفتن پوشه و فایل در لینوکس
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
گاهی اوقات لازم هست به محض اینکه تغییری در فایل یا پوشه‌ای ایجاد؛ ما خبردار بشیم و بتونیم یکسری از کارها رو انجام بدیم

با استفاده از نرم افزار inotifywait میتونیم هرگاه فایلی و پوشه‌ای مورد دسترسی، نوشتن، خواندن، تغییر خصوصیات و . . قرار بگیره ما خبردار بشیم؛

برای مثال:
پوشه ای داریم بنام ۱۲۳ ؛ هدف این هروقت فایلی در این پوشه ایجاد شد به ما هشدار بده:

مرحله اول میریم داخل پوشه ۱۲۳:
کد:
cd 123
دستور زیر رو احرا میکنیم:
کد:
inotifywait -m -e create .

پارامتر m یعنی حالت monitor رو فعال میکنه؛ در حالت معمولی بعد از دریافت یک اتفاق؛ اجرای برنامه تموم میشه ولی با m برنامه ادامه پیدا میکنه تا وقتی کاربر سگنال پایان رو بهش ارسال کنه (ctrl + c)

با پارامتر e هم میتونیم تعیین کنیم در چه مواقعی هشدار بده؛ هنگام ایجاد فایلِ، هنگام دسترسی، هنگام نوشتن، هنگام ایجاد ....

. هم یعنی در پوشه‌ی جاری


بعد از اینکه یه فایل در این پوشه ایجاد کنیم؛ بنرامه بالا چنین پیغامی میده:
کد php:
./ CREATE salam 
که یعنی فایل بنام salam ایحاد شده
و اگه پوشه ایجاد کنیم:
کد php:
./ CREATE,ISDIR ff 
که یعنی پوشه‌ای (ISDIR) بنام ff ایحاد شده



توسط پارامتر format میتونیم نوع خروی رو هم تعیین کنیم:
برای مثال:
کد php:
inotifywait --e create --format "%f,%e"  
با استفاده از
کد:
"%f,%e"
تعیین کردیم در خروجی اول نام فایل رو بنویسه و بعد یک "," و سیپس نوع اتفاقی افتاده؛ که خرجی چنین میشه:
کد:
fs,CREATE,ISDIR
salam2,CREATE
خط اول یعنی یک پوشه بنام fs ایحاد شده
خط دوم یعنی یک فایل بنام salam2 ایحاد شده




همچنین میتونیم این خروجی ها رو در یک حلقه بندازیم و مل اتفاقات رو مدیریت کنیم:
کد:
while read j
do
echo $j
done < <(inotifywait -m -e create --format "%f,%e"  . )

هربار که اتفاقی رخ بده برنامه اجرا میشه و میتونیم کارهایی که مدنظر رو انجام بدیم..


اطلاعات بیشتر:
http://linux.die.net/man/1/inotifywait

منبع هم خودم Biggrin