إذا كنت تقضي بعض الوقت في إدارة أنظمة Linux، فأنت تعلم بالفعل مدى تكرار وشيوع بعض المهام.
سواء كان ذلك في فحص مساحة القرص، إعادة تشغيل الخدمات التي توقفت، أو الحفاظ على تحديث النظام،
فإن القيام بكل شيء يدويًا يصبح سريعًا أمرًا مرهقًا، خاصة إذا كنت تتعامل مع أكثر من خادم.
سكربتات Bash تشبه المساعدين الصغيرين الذين يساعدونك على أتمتة المهام الشائعة، تقليل الخطأ البشري،
وتوفير وقت ثمين. بدلاً من تشغيل نفس الأوامر مرارًا وتكرارًا، يمكنك السماح لسكربتاتك بالتعامل معها —
بشكل موثوق ومتسق.
في هذا المقال، ستكتشف خمسة سكربتات Bash بسيطة لكنها قوية، مفيدة في مهام إدارة نظام Linux اليومية.
هذه السكربتات مناسبة للمبتدئين وسهلة التعديل لتناسب بيئتك الخاصة.
1. سكربت مراقبة استخدام القرص
أحد أكثر المشاكل شيوعًا على خوادم Linux هو نفاد مساحة القرص. السجلات تملأ، النسخ الاحتياطية تنمو،
وفجأة يتعطل تطبيقك بسبب نفاد المساحة. لذا، أول سكربت لي يتحقق من استخدام القرص ويرسل تنبيهًا
إذا تجاوز استخدام ما حدًا معينًا (مثل 80%).
#!/bin/bash
THRESHOLD=80
EMAIL="[email protected]"
df -hP | grep -vE '^Filesystem|tmpfs|cdrom' | while read line; do
USAGE=$(echo $line | awk '{print $5}' | sed 's/%//')
MOUNTPOINT=$(echo $line | awk '{print $6}')
if [ $USAGE -ge $THRESHOLD ]; then
echo "Warning: High disk usage on $MOUNTPOINT ($USAGE%)" | mail -s "Disk Alert: $HOSTNAME" $EMAIL
fi
done
2. سكربت لتحديث النظام تلقائيًا
الحفاظ على تحديث الأنظمة أمر بالغ الأهمية، خاصة للتحديثات الأمنية. أستخدم سكربت Bash بسيط لتحديث
الحزم تلقائيًا، تنظيف النظام، وإرسال تقرير لي.
#!/bin/bash
LOGFILE="/var/log/sys-updates.log"
EMAIL="[email protected]"
echo "Starting updates on $(date)" >> $LOGFILE
apt update && apt upgrade -y >> $LOGFILE 2>&1
apt autoremove -y >> $LOGFILE 2>&1
tail -20 $LOGFILE | mail -s "System Update Report: $HOSTNAME" $EMAIL
3. سكربت التحقق من حالة الخدمات
بصفتي مسؤول نظام، عليّ معرفة ما إذا تعطلت خدمات أساسية مثل Apache، Nginx، أو MySQL.
هذا السكربت يتحقق مما إذا كانت خدمة معينة تعمل، وإذا لم تكن كذلك، يقوم بإعادة تشغيلها
وإشعاري بذلك.
#!/bin/bash
SERVICES=("apache2" "mysql")
EMAIL="[email protected]"
4. سكربت النسخ الاحتياطي التلقائي
النسخ الاحتياطي من أهم المهام لأي مسؤول نظام. بدون نسخة احتياطية، أي خطأ أو حذف غير مقصود
قد يكون كارثيًا. هذا السكربت يضغط مجلدًا (مثل /etc) ويحفظ نسخة احتياطية مع طابع زمني.
#!/bin/bash
SRC="/etc"
DEST="/backups"
DATE=$(date +%F)
FILENAME="$DEST/etc-backup-$DATE.tar.gz"
tar -czf $FILENAME $SRC
# حذف النسخ الأقدم من 7 أيام
find $DEST -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;
5. سكربت مراقبة استخدام CPU والذاكرة
أحيانًا العمليات تستهلك كل موارد الخادم (مثل عملية عالقة أو استعلام قاعدة بيانات سيء).
هذا السكربت يفحص استخدام CPU والذاكرة، وإذا تجاوز حدًا معينًا، يسجل العملية ويرسل تنبيهًا.
#!/bin/bash
CPU_THRESHOLD=80
MEM_THRESHOLD=80
EMAIL="[email protected]"
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | awk -v cpu=$CPU_THRESHOLD -v mem=$MEM_THRESHOLD '
NR>1 {
if ($4 > mem || $5 > cpu) {
print "High resource usage detected: " $0
}
}' | mail -s "Resource Alert on $HOSTNAME" $EMAIL
الخاتمة
الخمس سكربتات مع بعض تغطي أهم المهام المتكررة لأي مسؤول نظام Linux:
- مراقبة استخدام القرص
- تحديث النظام تلقائيًا
- التحقق من حالة الخدمات
- النسخ الاحتياطي للملفات الهامة
- مراقبة CPU والذاكرة
كلها بسيطة وسهلة التخصيص، لكنها توفر وقتًا وتمنع مشاكل خطيرة قبل وقوعها.