منبع اصلی نوشتار زیر در این لینک قرار دارد

اسکریپت برای نمایش یک هشدار پس از پر شدن سیستم فایل

در توزیع های لینوکسی و دیگر سیستم عامل های یونیکسی، دایرکتوری ها مهمی همچون: دایرکتوری /، دایرکتوری tmp/، دایرکتوری usr/، دایرکتوی home/ وجود دارند و این بسیار مهم است که بصورت خودکار میزان فضای آنها را کنترل کنیم و به محض گذشت از یک آستانه، یک پیغام هشدار به مدیر یا مسئول سیستم ارسال کنیم تا اقدامات لازم صورت بگیرد. از دستور df می توانیم استفاده کنیم تا میزان فضای استفاده شده از دیسک ها، نشان داده شود.

/ df

df /usr

df /tmp

df /home

از سوئیچ P- برای نمایش خروجی به فرمت POSIX استفاده کنید.

/ df -P

df – P /usr

df -P /tmp

df -P /home

همانطور که در شکل بالا مشاهده می کنید، میزان 56 درصد از فضای دایرکتوری usr/ مصرف شده است. حال فرض کنید می خواهیم اسکریپتی بصورت خودکار در صورتی که، هر زمان که 96 درصد از فضای این دایرکتوری مصرف شد (میزان آستانه 96 درصد)، یک ایمل  به مدیر یا یک پیغام نشان داده شود. نخستین کاری که باید انجام داد، بدست آوردن میزان مصرف فعلی این دایرکتوری (یا هر دایرکتوری دیگر)  و ایجاد یک متغیر با مقدار بدست آمده. خط زیر قطعه کدی که لازم است تا میزان درصد مصرف شده از فضای دایرکتوری usr/ را بدست آوریم.

usrdir=$(df -P /usr | grep /usr | awk ‘{ print $5}’ | sed ‘s/%//g

قطعه سبز رنگ از دستور بالا، تا پنجمین ستون را از خروجی دستور df -P که به ورودی دستور grep /usr، فرستاده شده است، یعنی مقدار عددی ستون Capacity را جدا کند. قطعه آبی رنگ، علامت % را از خروجی قطعه دستور های پیشین جدا می کند. شکل زیر خروجی هر دستور را به تفکیک نشان داده است.

(usrdir=$(df -P /usr | grep /usr | awk ‘{ print $5}’ | sed ‘s/%//g

echo $usrdir

شکل زیر اسکریپتی را نشان می دهد که توسط cron بصورت روزانه، بررسی می شود و در صورتی که میزان فضای دایرکتوری usr/ از 50 درصد گذشته باشد (این عدد تنها برای تست اسکریپت است)، آنگاه یک ایمیل به آدرس مورد نظر که به جای رشته [email protected] قرار می گیرد، ارسال می کند. (دانلود اسکریپت)

برای بررسی آن بصورت روزانه توسط cron (نمونه هایی از cron)، خط زیر را وارد فایل crontab کنید. برای این کار نخست دستور زیر را اجرا کنید.

crontab -e

و سپس خط زیر را وارد آن کنید :

daily /path/to/your.df.script.sh@

همچنین می توانید با استفاده از zenity یک پنجره هشدار روی میزکار نشان دهید. (دانلود اسکریپت). توجه داشته باشید که نام این اسکریپت، با اسکریپت پیشین متفاوت است و تنها تفاوت آنها در خط پایانی شان است. خط زیر رکورد مربوط به این اسکریپت را در فایل crontab نشان می دهد.

daily DISPLAY=:0.0 /path/to/script.sh@



برچسب ها : , , , , , , , , ,