สคริปต์การตรวจสอบฮาร์ดไดรฟ์สำหรับเซิร์ฟเวอร์ Linux แบบ Headless

Jan 25, 2025
การบำรุงรักษาและการเพิ่มประสิทธิภาพ

ฮาร์ดไดรฟ์สมัยใหม่มีกลไกภายในที่เรียกว่า S.M.A.R.T. ซึ่งเป็นไปได้ที่จะรู้ว่าเมื่อใดที่ฮาร์ดดิสก์กำลังจะล้มเหลว จะเป็นการดีหรือไม่ที่เซิร์ฟเวอร์จะส่งอีเมลถึงคุณก่อนที่จะเกิดความล้มเหลว

ภาพรวม

โปรแกรมเช่น“ mdadm” (สำหรับการจัดการซอฟต์แวร์ RAID) และ“ Palimpsest Disk Utility” (ใช้กับ Ubuntu LiveCD) ให้ใช้ข้อมูล S.M.A.R.T เพื่อแจ้งให้คุณทราบเมื่อดิสก์กำลังจะถึงหรือล้มเหลว อย่างไรก็ตามบนเซิร์ฟเวอร์ headless (ไม่มี GUI) ไม่มีบริการใดที่จะแจ้งให้คุณทราบถึงการลงโทษที่รอดำเนินการก่อนที่จะสายเกินไป ยิ่งไปกว่านั้นคุณจะรู้ได้อย่างไรโดยไม่ต้องลงชื่อเข้าใช้เซิร์ฟเวอร์ด้วยตนเอง

สคริปต์นี้เมื่อเรียกใช้วันละครั้งด้วย cron จะแจ้งเตือนหากจำนวนเซกเตอร์เสียของฮาร์ดไดรฟ์ของระบบมีจำนวนถึงขีด จำกัด ที่ต่ำกว่าเกณฑ์ "ดิสก์ไม่ดี" โดยเจตนาและส่งอีเมลแจ้งเตือนไปยังผู้ดูแลระบบของเครื่อง

ข้อกำหนดเบื้องต้นและสมมติฐาน

  • คุณได้ตั้งค่าการรองรับอีเมลสำหรับเซิร์ฟเวอร์แล้วโดยใช้ปุ่ม“ วิธีตั้งค่า Email Alerts บน Linux ” คำแนะนำ
  • คุณกำลังใช้ระบบที่ใช้ Debian
  • คุณไม่ได้ใช้ตัวควบคุม RAID ฮาร์ดแวร์ *
  • คุณจะเห็นว่าฉันใช้ VIM เป็นโปรแกรมแก้ไขนี่เป็นเพียงเพราะฉันเคยชินกับมัน…คุณอาจใช้โปรแกรมแก้ไขอื่น ๆ ที่คุณต้องการ

* เนื่องจากเป็นไปได้มากที่ตัวควบคุม RAID ของฮาร์ดแวร์จะบล็อกการเข้าถึงข้อมูลนี้ของระบบ

ติดตั้ง

ติดตั้งแพ็กเกจ "smartmontools" ซึ่งอ่านข้อมูล S.M.A.R.T จากตัวควบคุมฮาร์ดไดรฟ์และนำเสนอให้เรา

sudo aptitude ติดตั้ง smartmontools

สร้างสคริปต์มอนิเตอร์:

sudo vim /root/smart-monitor.sh

ทำให้เป็นเนื้อหา:

#! / บิน / ทุบ
######## ฟังก์ชันอีเมล ########
email_admin_func ()
{
echo "ถึง: [email protected]"> $ temp_email_file
echo "จาก: [email protected]" >> $ temp_email_file
echo "Subject: S.M.A.R.T monitor Threshold ฝ่าฝืน" >> $ temp_email_file
echo "" >> $ temp_email_file
echo -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t <$ temp_email_file
echo "ส่งอีเมลถึงผู้ดูแลระบบ"
}

smartc_func ()
{
/ usr / sbin / smartctl -A / dev / $ 1 | grep จัดสรรใหม่_Sector_Ct | tr -s '' | ตัด -d '' -f11
}

######## จุดสิ้นสุดของฟังก์ชัน ########

######## ตั้งค่าพารามิเตอร์การทำงาน ########
temp_email_file = / tmp / smart_monitor.txt
allow_threshold = 5 # กำหนดจำนวนเซกเตอร์เสียที่คุณต้องการใช้งานแนะนำ 5.

######## เครื่องยนต์ ########
สำหรับฉันใน sda sdb; ทำ # เพิ่มหรือลบชื่อดิสก์จากรายการนี้ตามความเหมาะสมสำหรับการตั้งค่าของคุณ
ถ้า [[ "`smartc_func $i`" -ge $allowed_threshold ]]; แล้ว
echo การส่งอีเมลถึงผู้ดูแลระบบ
email_admin_func "หนึ่งใน HD บน" "ชื่อโฮสต์" ถึงขีด จำกัด สูงสุดแล้ว !!! n ขีด จำกัด ถูกตั้งค่าเป็น: $ allow_threshold และสถานะดิสก์ $ i คือ: "` smartc_func $ i` ""
เป็น
เสร็จแล้ว

ประเด็นสำคัญที่ควรทราบคือ:

  • ฟังก์ชันอีเมล - ตั้งค่าข้อมูลที่เหมาะสมเช่นชื่อเครื่องและอีเมลผู้ดูแลระบบ
  • เกณฑ์ที่อนุญาต - ตั้งค่าพารามิเตอร์นี้ตามที่คุณคิดว่าเหมาะสมฉันใช้ 5 เพราะขีด จำกัด ที่กำหนดไว้สำหรับฮาร์ดไดรฟ์ "ระดับเซิร์ฟเวอร์" ที่ฉันใช้คือ 10 (ฉันพบเกณฑ์สำหรับไดรฟ์ "ระดับผู้บริโภค" เป็น สูงถึง 140)
  • ตั้งค่าอุปกรณ์ที่คุณต้องการมอนิเตอร์โดยปรับการแจงนับชื่อดิสก์ในลูป“ for” ขณะนี้มีดิสก์สองแผ่น (sda & sdb) ดังนั้นปรับการตั้งค่าของคุณ คุณอาจรวมดิสก์ทั้งหมดของคุณหรือเพียงบางส่วนหากคุณจำเป็นต้อง * ยกเว้นดิสก์ด้วยเหตุผลบางประการ

* ในการตั้งค่าเดิมของฉันดิสก์แรกคือแฟลชไดรฟ์ดังนั้นการอ่านข้อมูลหากเป็นไปได้ก็ไม่ได้ใช้ประโยชน์มาก

ทำให้สคริปต์ทำงานได้:

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

การตั้งค่าเสร็จสิ้น

กำหนดเวลาให้สคริปต์ทำงานโดยอัตโนมัติ

เราต้องการให้สคริปต์ทำงานโดยอัตโนมัติดังนั้นเราจะสร้างงาน Cron ใหม่สำหรับมัน
ตามที่ระบุไว้ใน“ วิธีตั้งค่า Email Alerts บน Linux ” ให้คำแนะนำในการดำเนินการดังกล่าวคือหากตัวสคริปต์พบข้อผิดพลาด cron จะแจ้งให้เราทราบโดยอัตโนมัติทางอีเมลทันทีที่เกิดขึ้น

เปิดตัวกำหนดตารางเวลางาน cron:

sudo crontab -e

เพิ่มสิ่งนี้ในเนื้อหา:

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

การดำเนินการนี้จะตั้งค่าสคริปต์ให้ทำงานทุกเช้าเวลา 7.00 น.


ทุกภาคส่วนของคุณเป็นของเรา :)

Raspberry Pi Box Hard Drive Scripts


การบำรุงรักษาและการเพิ่มประสิทธิภาพ - บทความยอดนิยม

วิธีดูการใช้พลังงานในตัวจัดการงานของ Windows 10

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Nov 26, 2024

ขณะนี้ตัวจัดการงานของ Windows 10 จะแสดงการใช้พลังงานของแต่ละกระบวนกา�..


วิธีปรับแต่ง (และระบายสี) Bash Prompt ของคุณ

การบำรุงรักษาและการเพิ่มประสิทธิภาพ May 18, 2025

เนื้อหาที่ไม่ถูกแคช ลีนุกซ์ส่วนใหญ่กำหนดค่าให้ Bash prompt มีลักษณะดั..


ความเร็วและเวลาของ RAM ส่งผลต่อประสิทธิภาพของพีซีของฉันอย่างไร

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Apr 19, 2025

เมื่อพูดถึงคอมพิวเตอร์ยิ่งดี เรียงลำดับของ ผู้ใช้ส่วนใหญ่เข้า�..


คุณทำอะไรได้บ้างเมื่ออุปกรณ์อิเล็กทรอนิกส์ใกล้เคียงปิดจอแสดงผลของแล็ปท็อป

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Jan 5, 2025

เนื้อหาที่ไม่ถูกแคช เมื่อเราทำงานกับแล็ปท็อปเรามักจะเก็บอุปก�..


วิธีทำให้ปุ่มแถบงานของคุณเปลี่ยนเป็นหน้าต่างที่ใช้งานล่าสุดเสมอ

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Nov 23, 2024

ตั้งแต่ Windows 7 แอพที่มีหน้าต่างเปิดอยู่หลายตัวจะรวมกันเป็นปุ่�..


วิธีประหยัดพื้นที่บนพีซีที่เก็บข้อมูลด้วย“ CompactOS” ของ Windows 10

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Sep 26, 2025

เนื้อหาที่ไม่ถูกแคช Windows 10 มีคุณลักษณะ“ CompactOS” ใหม่ที่ออกแบบมาสำหรั..


ดูตัวอย่างและตรวจสอบ URL ใน Internet Explorer 8

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Jul 20, 2025

เนื้อหาที่ไม่ถูกแคช คุณต้องการดูตัวอย่างเว็บไซต์ที่อยู่เบื้องหล�..


เคล็ดลับ Geek: อย่าลืมเปิดใช้งาน ClearType ในเครื่องเสมือน XP ของคุณ

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Oct 26, 2025

เนื้อหาที่ไม่ถูกแคช ดังนั้นคุณจึงอัปเกรด XP เป็น Windows 7, Linux หรือ Mac OS X และตั..


หมวดหมู่