ইনোটিফাইয়েট ( ইনোটাইফাই-সরঞ্জামগুলির অংশ ) আপনার উদ্দেশ্যটি সম্পাদন করার জন্য সঠিক সরঞ্জাম, এটি একই সাথে বেশ কয়েকটি ফাইল তৈরি হচ্ছে তা বিবেচনা করে না, এটি তাদের সনাক্ত করবে।
এখানে একটি নমুনা স্ক্রিপ্ট:
#!/bin/sh
MONITORDIR="/path/to/the/dir/to/monitor/"
inotifywait -m -r -e create --format '%w%f' "${MONITORDIR}" | while read NEWFILE
do
echo "This is the body of your mail" | mailx -s "File ${NEWFILE} has been created" "yourmail@addresshere.tld"
done
inotifywait এই বিকল্পগুলি ব্যবহার করবে।
-মির অনির্দিষ্টকালের জন্য নিরীক্ষণ করার জন্য, আপনি যদি এই বিকল্পটি ব্যবহার না করেন, একবার এটি একটি নতুন ফাইল সনাক্ত করেছে তবে স্ক্রিপ্টটি শেষ হবে।
-r ফাইলগুলি পুনরাবৃত্তির সাথে নিরীক্ষণ করবে (যদি নতুন তৈরি ফাইলগুলি সনাক্ত করতে অনেক বেশি ডায়ার / ফাইল থাকে তবে)
-আমি তৈরির বিষয়টি নিরীক্ষণের জন্য ইভেন্টটি নির্দিষ্ট করার বিকল্প এবং আপনার ক্ষেত্রে এটি নতুন ফাইলগুলির যত্ন নেওয়ার জন্য তৈরি করা উচিত
--format '% w% f' ফাইলটি /complete/path/file.name বিন্যাসে মুদ্রণ করবে
"$ ON মনটর্ডার}" হ'ল পরিবর্তনশীল যা নিরীক্ষণের জন্য যে পথটি আমরা আগে সংজ্ঞায়িত করেছি containing
সুতরাং ঘটনা যে একটি নতুন ফাইল তৈরি করা হয়, inotifywait এটা নির্ণয় করতে পারবে এবং আউটপুট প্রিন্ট হবে (/complete/path/file.name) পাইপ থেকে এবং যখন হবে পরিবর্তনশীল NEWFILE যে আউটপুট নির্ধারণ ।
লুপটির অভ্যন্তরে আপনি নিজের ঠিকানাতে একটি মেইল প্রেরণ করার একটি উপায় দেখতে পাবেন মেলএক্স ইউটিলিটি যা আপনার স্থানীয় এমটিএ (আপনার ক্ষেত্রে, পোস্টফিক্স) এর সাথে ভাল কাজ করবে।
আপনি যদি বেশ কয়েকটি ডিরেক্টরি নিরীক্ষণ করতে চান তবে ইনোটিফাইয়েট এটির অনুমতি দেয় না তবে আপনার কাছে দুটি বিকল্প রয়েছে, প্রতিটি দিরের জন্য স্ক্রিপ্ট তৈরি করুন বা স্ক্রিপ্টের ভিতরে কোনও ফাংশন তৈরি করুন, এরকম কিছু:
#!/bin/sh
MONITORDIR1="/path/to/the/dir/to/monitor1/"
MONITORDIR2="/path/to/the/dir/to/monitor2/"
MONITORDIRX="/path/to/the/dir/to/monitorx/"
monitor() {
inotifywait -m -r -e create --format "%f" "$1" | while read NEWFILE
do
echo "This is the body of your mail" | mailx -s "File ${NEWFILE} has been created" "yourmail@addresshere.tld"
done
}
monitor "$MONITORDIR1" &
monitor "$MONITORDIR2" &
monitor "$MONITORDIRX" &