امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 4
  • 1
  • 2
  • 3
  • 4
  • 5
زیر نظر گرفتن پوشه و فایل در لینوکس
نویسنده پیام
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26090 تشکر در 9068 ارسال )
ارسال: #1
زیر نظر گرفتن پوشه و فایل در لینوکس
گاهی اوقات لازم هست به محض اینکه تغییری در فایل یا پوشه‌ای ایجاد؛ ما خبردار بشیم و بتونیم یکسری از کارها رو انجام بدیم

با استفاده از نرم افزار 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
(آخرین ویرایش در این ارسال: ۱۴-تير-۱۳۹۳, ۲۲:۰۲:۴۸، توسط babyy.)
۱۴-تير-۱۳۹۳, ۲۲:۰۱:۵۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : salehjg, lord_viper


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  برنامه نویسی تحت لینوکس godvb 16 19,478 ۱۴-خرداد-۱۳۹۴, ۱۸:۰۳:۳۷
آخرین ارسال: عباس مقتدایی
  حذف متغیر read only در لینوکس javaweb 4 6,242 ۲۹-اردیبهشت-۱۳۹۴, ۱۷:۱۰:۲۰
آخرین ارسال: ilius
  حداکثر تعداد connection به یک port توی لینوکس ajlajlajl 2 2,647 ۱۷-آذر-۱۳۹۳, ۱۲:۰۵:۱۳
آخرین ارسال: ajlajlajl
  مشکل در شناسایی وایرلس در لینوکس اوبونتو england 5 5,240 ۰۹-آذر-۱۳۹۳, ۱۴:۲۸:۴۶
آخرین ارسال: england
  [فوری] Lenovo G510 ,نصب لینوکس مشکل نداشتن درایور hossein5050 3 4,305 ۰۳-مرداد-۱۳۹۳, ۱۱:۵۴:۲۰
آخرین ارسال: behzady
  [آموزشی] بستن فال هندل پروسه‌ در لینوکس babyy 0 3,032 ۲۹-تير-۱۳۹۳, ۱۸:۲۰:۴۸
آخرین ارسال: babyy
  [سوال] مشکل نصب کالی لینوکس رو یVMware Workstation hossein5050 4 6,245 ۰۹-تير-۱۳۹۳, ۲۰:۰۶:۴۵
آخرین ارسال: hossein5050
  [مقاله] شروع لینوکس babyy 165 89,538 ۰۶-مهر-۱۳۹۲, ۰۲:۳۸:۵۲
آخرین ارسال: babyy
  [مقاله] پشتیبان‌گیری و بازگردانی mysql در لینوکس babyy 0 2,564 ۰۱-شهریور-۱۳۹۲, ۰۴:۲۳:۰۷
آخرین ارسال: babyy
  زبان ماشین در لینوکس Ghoghnus 9 9,279 ۰۴-خرداد-۱۳۹۲, ۲۳:۴۹:۲۲
آخرین ارسال: mhpc2009

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS