Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Tập lệnh Shell để gửi thông báo qua email khi bộ nhớ sắp hết

Một khía cạnh mạnh mẽ của các chương trình shell Unix / Linux chẳng hạn như bash , là sự hỗ trợ tuyệt vời của họ đối với các cấu trúc lập trình phổ biến cho phép bạn đưa ra quyết định, thực thi các lệnh lặp đi lặp lại, tạo các chức năng mới và hơn thế nữa. Bạn có thể viết các lệnh trong một tệp được gọi là tập lệnh shell và thực thi chúng một cách chung.

Điều này cung cấp cho bạn một phương tiện quản trị hệ thống đáng tin cậy và hiệu quả. Bạn có thể viết script để tự động hóa các tác vụ, ví dụ như sao lưu hàng ngày, cập nhật hệ thống, v.v.; tạo các lệnh / tiện ích / công cụ tùy chỉnh mới và hơn thế nữa. Bạn có thể viết tập lệnh để theo kịp những gì đang diễn ra trên máy chủ.

Một trong những thành phần quan trọng của máy chủ là bộ nhớ ( RAM ), nó ảnh hưởng lớn đến hiệu suất tổng thể của một hệ thống.

Trong bài viết này, chúng tôi sẽ chia sẻ một đoạn mã shell nhỏ nhưng hữu ích để gửi email cảnh báo đến một hoặc nhiều quản trị viên hệ thống, nếu bộ nhớ máy chủ sắp hết.

Đây là tập lệnh đặc biệt hữu ích để theo dõi Linux VPS ( Máy chủ riêng ảo ) với dung lượng bộ nhớ nhỏ, khoảng 1GB (khoảng 990 MB ).

Thiết lập môi trường thử nghiệm

  1. A CentOS / RHEL 7 máy chủ sản xuất với mailx được cài đặt với máy chủ thư postfix đang hoạt động.

Đây là cách alertmemory.sh script hoạt động:trước tiên nó kiểm tra kích thước bộ nhớ trống, sau đó xác định xem lượng bộ nhớ trống nhỏ hơn hay bằng một kích thước được chỉ định ( 100 MB cho mục đích của hướng dẫn này), được sử dụng làm điểm chuẩn cho dung lượng bộ nhớ trống ít chấp nhận được.

Nếu điều kiện này là đúng, nó sẽ tạo danh sách 10 quy trình hàng đầu tiêu thụ RAM máy chủ và gửi email cảnh báo đến các địa chỉ email được chỉ định.

Lưu ý :Bạn sẽ phải thực hiện một vài thay đổi đối với tập lệnh (đặc biệt là tiện ích người gửi thư, sử dụng các cờ thích hợp) để đáp ứng các yêu cầu về bản phân phối Linux của bạn.

Shell Script để kiểm tra bộ nhớ máy chủ
#!/bin/bash 
#######################################################################################
#Script Name    :alertmemory.sh
#Description    :send alert mail when server memory is running low
#Args           :       
#Author         :Aaron Kili Kisinga
#Email          :admin@wsxdn.com
#License       : GNU GPL-3	
#######################################################################################
## declare mail variables
##email subject 
subject="Server Memory Status Alert"
##sending mail as
from="admin@wsxdn.com"
## sending mail to
to="admin@wsxdn.com"
## send carbon copy to
also_to="admin@wsxdn.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

Sau khi tạo tập lệnh của bạn /etc/scripts/alertmemory.sh , làm cho nó có thể thực thi và liên kết biểu tượng với cron.hourly.

# chmod +x /etc/scripts/alertmemory.sh
# ln -s -t /etc/cron.hourly/alertmemory.sh /etc/scripts/alertmemory.sh

Điều này có nghĩa là tập lệnh trên sẽ được chạy sau mỗi 1 giờ miễn là máy chủ đang chạy.

Mẹo :Bạn có thể kiểm tra xem nó có hoạt động như dự định không, đặt giá trị điểm chuẩn cao một chút để dễ dàng kích hoạt email được gửi và chỉ định một khoảng thời gian nhỏ khoảng 5 phút.

Sau đó, tiếp tục kiểm tra từ dòng lệnh bằng lệnh miễn phí được cung cấp trong tập lệnh. Khi bạn xác nhận rằng nó đang hoạt động, hãy xác định các giá trị thực tế mà bạn muốn sử dụng.

Dưới đây là ảnh chụp màn hình hiển thị một email cảnh báo mẫu.

Tập lệnh Shell để gửi thông báo qua email khi bộ nhớ sắp hết

Đó là tất cả! Trong bài viết này, chúng tôi đã giải thích cách sử dụng shell script để gửi email cảnh báo đến quản trị viên hệ thống trong trường hợp bộ nhớ máy chủ (RAM) sắp hết. Bạn có thể chia sẻ bất kỳ suy nghĩ nào liên quan đến chủ đề này, với chúng tôi qua biểu mẫu phản hồi bên dưới.