Hard Drive Monitor Script cho máy chủ Linux không đầu

Mục lục:

Hard Drive Monitor Script cho máy chủ Linux không đầu
Hard Drive Monitor Script cho máy chủ Linux không đầu

Video: Hard Drive Monitor Script cho máy chủ Linux không đầu

Video: Hard Drive Monitor Script cho máy chủ Linux không đầu
Video: [NAKATA Shop Game] Hướng dẫn chongame đơn giản - YouTube 2024, Tháng mười một
Anonim
Ổ cứng hiện đại có cơ chế bên trong gọi là S.M.A.R.T. thông qua đó nó có thể biết khi một đĩa cứng sắp thất bại. Nó sẽ không được tốt đẹp của máy chủ để gửi email cho bạn trước khi thất bại như vậy?
Ổ cứng hiện đại có cơ chế bên trong gọi là S.M.A.R.T. thông qua đó nó có thể biết khi một đĩa cứng sắp thất bại. Nó sẽ không được tốt đẹp của máy chủ để gửi email cho bạn trước khi thất bại như vậy?

Tổng quan

Các chương trình như “mdadm” (để quản lý RAID phần mềm) và “Tiện ích Disk Palimpsest” (được sử dụng trên Ubuntu LiveCD), sử dụng thông tin S.M.A.R.T để thông báo cho bạn khi đĩa sắp sửa hoặc không thành công. Tuy nhiên trên một máy chủ không đầu (không có GUI), không có dịch vụ nào sẽ thông báo cho bạn về các doom đang chờ xử lý trước khi quá muộn. Hơn nữa, làm thế nào bạn sẽ biết về nó mà không cần đăng nhập bằng tay vào máy chủ?

Tập lệnh này, khi chạy một lần một ngày với cron, sẽ cảnh báo nếu bất kỳ số lượng ổ cứng nào của hệ thống bị lỗi đã đạt đến giới hạn thấp hơn cố ý thì ngưỡng "đĩa xấu" và gửi email cảnh báo tới quản trị viên của máy.

Điều kiện tiên quyết và giả định

  • Bạn đã thiết lập hỗ trợ Email cho máy chủ bằng hướng dẫn “Cách thiết lập cảnh báo qua email trên Linux”.
  • Bạn đang sử dụng hệ thống dựa trên Debian.
  • Bạn hiện không sử dụng bộ điều khiển RAID phần cứng.
  • Bạn sẽ thấy tôi sử dụng VIM làm chương trình biên tập, điều này chỉ vì tôi đã quen với nó … bạn có thể sử dụng bất kỳ trình soạn thảo nào khác mà bạn muốn.

* Bởi vì rất có thể bộ điều khiển RAID phần cứng chặn truy cập của hệ thống vào thông tin này.

Thiết lập

Cài đặt gói “smartmontools” đọc thông tin S.M.A.R.T từ bộ điều khiển ổ cứng và trình bày nó cho chúng tôi.

sudo aptitude install smartmontools

Tạo kịch bản màn hình:

sudo vim /root/smart-monitor.sh

Biến nó thành nội dung:

#!/bin/bash ########Email function######## email_admin_func() { echo 'To: [email protected]' > $temp_email_file echo 'From: [email protected]' >> $temp_email_file echo 'Subject: S.M.A.R.T monitor Threshold breached' >> $temp_email_file echo '' >> $temp_email_file echo -e $1 >> $temp_email_file /usr/sbin/ssmtp -t < $temp_email_file echo 'Sent an Email to the Admin' }

smartc_func() { /usr/sbin/smartctl -A /dev/$1 | grep Reallocated_Sector_Ct |tr -s ' '|cut -d' ' -f11 }

########End of Functions########

########Set working parameter######## temp_email_file=/tmp/smart_monitor.txt allowed_threshold=5 #set the amount of bad sectors your willing to live with, recommended 5.

########Engine######## for i in sda sdb; do # Add or subtract disk names from this list as appropriate for your setup. if [ '`smartc_func $i`' -ge $allowed_threshold ]; then echo Emailing the Administrator email_admin_func 'One of the HDs on '`hostname`', has reached the upper threshold limit!!! nThe threshold was set to:$allowed_threshold and the $i disk status was: '`smartc_func $i`'' fi done

Những điểm chính cần lưu ý là:

  • Chức năng email - Cài thông tin thích hợp như tên máy và email quản trị viên.
  • Ngưỡng được phép - Đặt tham số này cho những gì bạn cảm thấy là thích hợp, tôi đã sử dụng 5 vì giới hạn được đặt cho ổ cứng “cấp máy chủ” mà tôi đã sử dụng là 10. (i'v đã tìm thấy ngưỡng cho ổ “cấp người tiêu dùng” đến cao tới 140).
  • Đặt các thiết bị mà bạn muốn theo dõi bằng cách điều chỉnh việc liệt kê các tên đĩa trong vòng lặp "for". Hiện nay hai đĩa (sda & sdb) được bao gồm, vì vậy điều chỉnh cho thiết lập của bạn. Bạn có thể bao gồm tất cả các đĩa của bạn hoặc chỉ một số, nếu bạn cần * loại trừ một đĩa vì lý do nào đó.

* trong thiết lập ban đầu của tôi đĩa đầu tiên là một ổ đĩa flash để đọc thông tin của nó nếu có thể là không sử dụng nhiều.

Làm cho tập lệnh chạy được:

sudo chmod +x /root/smart-monitor.sh

Quá trình cài đặt hoàn tất.

Lập lịch kịch bản để chạy tự động

Chúng tôi muốn làm cho kịch bản chạy tự động vì vậy chúng tôi sẽ tạo một công việc Cron mới cho nó. Như đã nêu trong "Làm thế nào để thiết lập Cảnh báo Email trên Linux" hướng dẫn upshot làm như vậy, là nếu kịch bản chính nó gặp một lỗi, cron sẽ tự động thông báo cho chúng tôi qua email ngay khi nó xảy ra.

Mở trình lên lịch công việc cron:

sudo crontab -e

Thêm nội dung này vào nội dung của nó:

0 7 * * * /root/smart-monitor.sh > /tmp/last_smart_monitor_run.log

Điều này sẽ thiết lập kịch bản được chạy mỗi buổi sáng lúc 7 giờ sáng.

Tất cả các lĩnh vực của bạn thuộc về chúng tôi:)

Đề xuất: