اسکریپت تشخیص تغییر در فایل‌سیستم

از 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
ابزارهای شخصی
گویش‌ها
فضاهای نام
عملکردها
جعبه‌ابزار