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

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

2 دقیقه خوانده شده
۰
0
1,471
ارسال ایمیل به مدیر سرور در زمان افزایش مصرف RAM

اگر شما هم مدیریت یک سرور لینوکسی را بر عهده دارید ، حتما با شرایطی مواجه شده اید که مصرف منابع سرور از جمله RAM گاهی اوقات بیش از اندازه بوده است . اگر آپتایم و کیفیت سرور برای شما مهم باشد ، قطعا همیشه سرور خودتان را بررسی خواهید کرد تا در صورت کاهش سرعت آن بتوانید اقدامات لازم را انجام دهید . ولی این خیلی سخت می باشد که شما هر چند دقیقه یک بار منابع سرور خودتان را بررسی کنید بنابراین خیلی راحت تر خواهد بود تا از اسکریپتی استفاده کنید که در زمان افزایش مصرف RAM ، از طریقی به شما اطلاع رسانی کند . ما در این مقاله به شما اسکریپتی را معرفی خواهیم کرد که به وسیله آن می توانید در زمان افزایش مصرف RAM ، ایمیلی را از طرف سرور دریافت کنید و به بررسی مشکل بپردازید .

ارسال ایمیل به مدیر سرور در زمان افزایش مصرف RAM

ما همیشه از سیستم عامل لینوکس به عنوان یک سیستم عامل فوق العاده سبک ، با کیفیت و قابل اعتماد یاد میکنیم . یکی از عواملی که باعث محبوبیت این سیستم عامل و کلا سیستم عامل های بر پایه Unix شده است ، برنامه های Shell مانند bash می باشد . این برنامه ها با قابلیت هایی که دارند میتوانند از زبان ها و ساختارهای رایج برنامه نویسی پشتیبانی کنند که به شما اجازه میدهد عملگرهای جدید ایجاد کنید ، دستوراتی را پشت سر هم اجرا کنید و کارهای بسیار زیاد دیگری را انجام دهید . همچنین شما میتوانید دستورات خود را درون یک فایل که به آن اسکریپت شل ( Shell Script ) گفته میشود بنویسید و آن ها را بر حسب نیاز ، اجرا کنید .

با استفاده از این اسکریپت ها ، شما میتوانید روش های موثر و قابل اعتمادی برای مدیریت سیستم یا سرور خود داشته باشید . شما میتوانید اسکریپت هایی را بنویسید که کارهای شما را اتوماتیک کنند . برای مثال عملیات بکاپ گیری ، به روز رسانی سیستم و ایجاد دستورها ، برنامه ها و ابزارهای جدید را به صورت خودکار انجام دهند . این اسکریپت ها میتوانند به شما کمک کنند تا تمامی اتفاقات رخ داده روی سرور خودتان را زیر نظر بگیرید و چیزی را از قلم نیاندازید .

یکی از مهمترین اجزای یک سرور ، حافظه RAM آن می باشد زیرا میتوانید عملکرد کلی یک سیستم را به صورت گسترده ای ، تحت تاثیر قرار دهد .

ما در این مقاله به شما یک اسکریپت شل کوچک ولی کارآمد را معرفی میکنیم تا زمانی که سرور با افزایش مصرف RAM مواجه شد ، یک ایمیل به مدیران سرور ارسال کند و آنها بتوانند سریعا مشکل را پیگیری کنند .

این اسکریپت زمانی خیلی مفید واقع میشود که سیستم شما ، سیستمی ضعیف مثلا یک سرور مجازی لینوکس با یک گیگ رم باشد و شما بخواهید همیشه عملکرد سرور را زیر نظر داشته باشید تا با داون تایم مواجه نشوید .

محیط بررسی اسکریپت ارسال ایمیل در زمان افزایش مصرف RAM :

  • ما برای بررسی این اسکریپت از یک سرور مجازی CentOS یا RHEL نسخه ۷ استفاده میکنیم که قابلیت mailx روی آن نصب شده باشد و سرویس Postfix Mail Server روی آن به درستی کار کند .

نحوه کارکرد اسکریپت alertmemory.sh به این صورت می باشد که اول مقدار RAM قابل استفاده را شناسایی می کند و سپس تشخیص میدهد که آیا این مقدار برابر یا کمتر از مقدار تعیین شده توسط ما یعنی ۱۰۰ مگابایت هست یا نه . در واقع حداقل حافظه ای که باید در هر لحظه از سرور در دسترس باشد ۱۰۰ مگابایت تعریف میشود .

اگر شرایط مهیا باشد ، این اسکریپت یک لیست از ۱۰ فرآیندی که بیشترین مصرف RAM را دارند تهیه میکند و یک ایمیل به آدرس ایمیل مشخص شده در اسکریپت ارسال میکند . بنابراین با این اسکریپت هر زمان که مقدار آزاد RAM کمتر از ۱۰۰ مگابایت شود ، برای شما ایمیلی ارسال میشود .

توجه : شما باید برخی تغییرات را درون اسکریپت ایجاد کنید خصوصا در بخش mail sender utility باید از پرچم های مناسب استفاده کنید تا اسکریپت سازگار با ملزومات توزیع لینوکس شما شود .

#!/bin/bash 
#######################################################################################
#Script Name    :alertmemory.sh
#Description    :send alert mail when server memory is running low
#Args           :       
#Author         :Aaron Kili Kisinga
#Email          :aaronkilik@gmail.com
#License       : GNU GPL-3	
#######################################################################################
## declare mail variables
##email subject 
subject="Server Memory Status Alert"
##sending mail as
from="server.monitor@example.com"
## sending mail to
to="admin1@example.com"
## send carbon copy to
also_to="admin2@example.com"
## get total free memory size in megabytes(MB) 
free=$(free -mt | grep Total | awk '{print $4}')
## check if free memory is less or equals to  100MB
if [[ "$free" -le 100  ]]; then
## get top processes consuming system memory and save to temporary file 
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head >/tmp/top_proccesses_consuming_memory.txt
file=/tmp/top_proccesses_consuming_memory.txt
## send email if system memory is running low
echo -e "Warning, server memory is running low!\n\nFree memory: $free MB" | mailx -a "$file" -s "$subject" -r "$from" -c "$to" "$also_to"
fi
exit 0

شما در کدهای بالا باید سه مقدار زیر را ویرایش کنید :

  • from=”server.monitor@example.com” برای مشخص کردن ارسال کننده ایمیل
  • to=”admin1@example.com” برای مشخص کردن دریافت کننده ایمیل
  • also_to=”admin1@example.com” برای مشخص کردن دریافت کننده دوم ایمیل

برای ایجاد فایل اسکریپت از دستور زیر استفاده کنید :

vi /etc/scripts/alertmemory.sh

و سپس کدهای ویرایش شده بالا را در آن paste کنید .

در مرحله بعد شما باید فایل اسکریپت ایجاد شده را قابل اجرا کنید . برای این کار میتوانید از دستور زیر استفاده کنید :

chmod +x /etc/scripts/alertmemory.sh

اکنون که فایل آماده شده است ، شما باید آن را به cron.hourly اضافه کنید . برای اینکار از دستور SSH زیر استفاده کنید :

ln -s -t /etc/cron.hourly/alertmemory.sh /etc/scripts/alertmemory.sh

مفهوم دستور فوق این خواهد بود که اسکریپت شما تا زمانی که سرور در حال فعالیت باشد ، هر یک ساعت یک بار اجرا خواهد شد .

راهنمایی : شما میتوانید اسکریپت ساخته شده را تست کنید . کافی است مقدار ۱۰۰ مگابایت را در اسکریپت بالا به عددی بالاتر تغییر دهید و زمان cron را نیز روی ۵ دقیقه قرار دهید تا ببینید که آیا اسکریپت به درستی کار میکند یا خیر .

سپس از طریق دستور free درون SSH ، مقدار مصرف RAM را بررسی کنید و زمانی که مطمئن شدید اسکریپت به درستی کار میکند ، میتوانید مقادیر اصلی را روی سرور قرار دهید .

در زیر شما یک اسکرین شات از ایمیل ارسال شده مشاهده میکنید :

تمام شد ! اکنون زمانی که سرور شما به هر دلیلی با افزایش مصرف RAM مواجه شود ، شما خیلی فوری متوجه مشکل خواهید شد .

اگر شما به دنبال یک سرویس میزبانی وب با کیفیت با سخت افزار قدرتمند هستید ، توصیه ما به شما استفاده از هاست لینوکس چیتاهاست می باشد .

بارگذاری نوشته های مرتبط بیشتر
مطالب بیشتر از این نویسنده علی دربان
بارگذاری بیشتر در سرور

پاسخ دهید

بررسی کنید

آموزش کانفیگ امنیتی پایگاه داده MySQL یا MariaDB در سیستم عامل لینوکس

پایگاه داده MySQL محبوب ترین دیتابیس سورس باز در جهان می باشد و MariaDB که در واقع گونه ای…