اسکریپت تشخیص تغییر در فایلسیستم
از GuilugWiki
بعضی اوقات نیاز است در صورت تغییر در یک فایل یا دایرکتوری خاص، برنامهٔ خاصی اجرا شود یا این تغییر به اطلاع کاربر برسد. برای تشخیص تغییر در فایلسیستم براحتی میتوان از بش اسکریپت زیر استفاده کرد.
این اسکریپت توسط دستور stat در فواصل زمانی مشخص وضعیتی از فایل یا دایرکتوری مورد نظر میگیرد و دو وضعیت آخر را با هم مقایسه میکند. در صورت تطبیق نداشتن آنها با یکدیگر عمل خاصی را میتواند انجام دهد. مثلا در اینجا پیغامی را در خروجی استاندارد چاپ و در ادامه یک فایل صوتی را اجرا میکند.
#!/bin/bash # directory to watch DIR="/home/hamid/foo.txt" # store current statistics of dir OLD=`stat -t $DIR` while true do # take a new snapshot of stats NEW=`stat -t $DIR` # compare it with old if [ "$NEW" != "$OLD" ]; then echo "changed!" ## you may want to comment this aplay -q beep.wav fi OLD=$NEW sleep 1 done