أتمتة مهام الخادم
اكتبوا نصوصًا برمجية لأتمتة المهام الإدارية الشائعة مثل النسخ الاحتياطي، وتنظيف السجلات، وإعادة تشغيل الخدمات، وفحص سلامة النظام.
أتمتة مهام الخادم درس مجاني في Linux Server Deployment & SSH Mastery على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Linux Server Deployment & SSH Mastery، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.
أتمتة مهام الخادم
مرحبًا بكم في أتمتة مهام الخادم! بصفتكم مطورين أو مسؤولي أنظمة، غالبًا ما تنفذون إجراءات متكررة. ويمكن لبرامج Bash النصية أتمتة هذه الإجراءات، مما يوفر الوقت ويقلل الأخطاء.
سنتعلم في هذا الدرس كيفية كتابة برامج نصية للمهام الشائعة مثل النسخ الاحتياطي وتنظيف السجلات وإعادة تشغيل الخدمات وفحوصات السلامة.
لماذا نستخدم Bash للأتمتة؟
تُعد الأتمتة عاملًا أساسيًا لإدارة الخوادم بكفاءة. إليكم الأسباب:
- الاتساق: تنفذ البرامج النصية المهام بالطريقة نفسها في كل مرة.
- الكفاءة: توفر الوقت الذي يُستهلك في العمل اليدوي المتكرر.
- تقليل الأخطاء: تؤدي الأخطاء البشرية الأقل إلى عمليات أكثر موثوقية.
- الجدولة: يمكنكم بسهولة تشغيل المهام في أوقات محددة باستخدام أدوات مثل
cron(وسنتناولها لاحقًا).
كتابة برامج نصية للنسخ الاحتياطي البسيط
تُعد النسخ الاحتياطية المنتظمة أمرًا بالغ الأهمية. ويمكن لبرنامج Bash نصي بسيط أرشفة المجلدات المهمة وإضافة طابع زمني إليها لتسهيل تنظيمها.
غالبًا ما نستخدم الأمر tar لإنشاء ملفات أرشيف مضغوطة (tarballs) للمجلدات.
عرض توضيحي لبرنامج النسخ الاحتياطي النصي
ينشئ هذا البرنامج النصي مجلدًا تجريبيًا، ويضيف إليه بعض الملفات، ثم يؤرشفه في ملف .tar.gz يحمل طابعًا زمنيًا في موقع النسخ الاحتياطي المحدد. شغّلوه لمعرفة كيفية عمله!
#!/bin/bash
BACKUP_DIR="/tmp/coddykit_backups"
SOURCE_DIR="/tmp/coddykit_data_to_backup"
# Create backup and source directories if they don't exist
mkdir -p "$BACKUP_DIR"
mkdir -p "$SOURCE_DIR"
# Create some dummy files to back up
echo "Content for file1" > "${SOURCE_DIR}/file1.txt"
echo "Content for file2" > "${SOURCE_DIR}/file2.txt"
# Generate a timestamp for the backup file
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/data_backup_${TIMESTAMP}.tar.gz"
echo "Creating backup of $SOURCE_DIR..."
# Create a compressed tar archive
tar -czf "$BACKUP_FILE" -C "${SOURCE_DIR}" .
echo "Backup created: $BACKUP_FILE"
echo "Contents of backup directory:"
ls -l "$BACKUP_DIR"أتمتة تنظيف السجلات
يمكن أن تكبر سجلات الخادم كثيرًا، مما يستهلك مساحة القرص. لذلك تُعد أتمتة تنظيفها أمرًا بالغ الأهمية.
يمكننا استخدام الأمر find لتحديد موقع الملفات الأقدم من عمر معين ثم حذفها.
find /path: بدء البحث في/path.-type f: البحث عن الملفات العادية.-name "*.log": مطابقة الملفات التي تنتهي بـ.log.-mmin +N: التي عُدّلت قبل أكثر من N دقيقة.-delete: حذف الملفات التي عُثر عليها.
عرض توضيحي لبرنامج تنظيف السجلات النصي
ينشئ هذا البرنامج النصي ملف سجل «حاليًا» وملف سجل «قديمًا» (يُحاكى أن عمره دقيقتان). ثم يستخدم find لحذف أي ملفات سجل في المجلد التجريبي أقدم من دقيقة واحدة.
#!/bin/bash
LOG_DIR="/tmp/coddykit_app_logs_demo"
OLD_MINUTES=1 # Files older than this will be deleted
mkdir -p "$LOG_DIR"
# Create a 'current' log file
touch "${LOG_DIR}/current_log_$(date +%H%M%S).log"
# Create an 'old' log file (simulated to be 2 minutes ago)
touch -d "2 minutes ago" "${LOG_DIR}/old_log_$(date +%H%M%S)_old.log"
echo "--- Before cleanup ---"
ls -l "$LOG_DIR"
echo "\nCleaning logs in $LOG_DIR older than $OLD_MINUTES minute(s)..."
# Find files in LOG_DIR that are regular files (*.log) and modified more than OLD_MINUTES ago
find "$LOG_DIR" -type f -name "*.log" -mmin +$OLD_MINUTES -delete
echo "\n--- After cleanup ---"
ls -l "$LOG_DIR"كتابة برامج نصية لإعادة تشغيل الخدمات
قد تتعطل الخدمات (مثل خوادم الويب أو قواعد البيانات) أحيانًا أو تحتاج إلى إعادة التشغيل بعد تغيير الإعدادات.
يمكننا أتمتة التحقق من حالتها وإعادة تشغيلها باستخدام systemctl (لتوزيعات Linux المستندة إلى systemd مثل Ubuntu وDebian وCentOS 7+).
systemctl is-active --quiet <service>: التحقق بصمت من أن الخدمة نشطة.systemctl restart <service>: إعادة تشغيل الخدمة.
عرض توضيحي لبرنامج إعادة تشغيل الخدمة النصي
يوضح هذا البرنامج النصي منطق إعادة تشغيل إحدى الخدمات. ونظرًا إلى أن تشغيل systemctl مباشرةً في بيئة الاختبار المعزولة هذه غير ممكن، فإنه يحاكي العملية.
في بيئة خادم حقيقية، ستستبدلون أسطر echo بأوامر systemctl الفعلية، والتي تتطلب غالبًا sudo.
#!/bin/bash
SERVICE_NAME="my-dummy-web-app"
echo "Simulating service management for: $SERVICE_NAME"
# Check if the service is active (simulated)
# In a real script: if ! systemctl is-active --quiet $SERVICE_NAME; then
if [ "$SERVICE_NAME" = "my-dummy-web-app" ]; then # Always true for demo
echo "Service $SERVICE_NAME is currently 'inactive' (simulated)."
echo "Attempting to restart $SERVICE_NAME..."
# Restart the service (simulated)
# In a real script: sudo systemctl restart $SERVICE_NAME
echo "Service $SERVICE_NAME restarted successfully (simulated)."
else
echo "Service $SERVICE_NAME is already running (simulated)."
fi
echo "\nRemember: For real services like 'nginx' or 'apache2', you'd use: sudo systemctl restart nginx"فحوصات أساسية لسلامة النظام
توفر فحوصات السلامة المؤتمتة تحذيرات مبكرة بشأن مشكلات الخادم المحتملة. ويمكن للبرامج النصية مراقبة المقاييس الأساسية بانتظام:
- استخدام القرص: استخدموا
df -hللتحقق من المساحة المتوفرة. - استخدام الذاكرة: استخدموا
free -hلمعرفة استخدام RAM. - تحميل النظام: يوفر
uptimeمتوسط التحميل.
يمكن دمج هذه الفحوصات مع أنظمة التنبيه لإخطاركم عند تجاوز الحدود.
اختبار سريع: تنظيف السجلات
تحتاجون إلى كتابة برنامج نصي لتنظيف ملفات السجل في /var/log/myapp التي يزيد عمرها على 30 يومًا. ما أمر find الذي ستستخدمونه؟
مراجعة والخطوات التالية
لقد تعلمتم كيفية أتمتة مهام الخادم الأساسية باستخدام برامج Bash النصية:
- النسخ الاحتياطي: استخدام
tarللأرشفة مع الطوابع الزمنية. - تنظيف السجلات: استخدام
findلحذف الملفات القديمة. - إدارة الخدمات: التفاعل مع الخدمات باستخدام
systemctl. - فحوصات السلامة: مراقبة موارد النظام مثل القرص والذاكرة.
تشكل هذه البرامج النصية أساس الحفاظ على خوادم قوية وفعالة. في الدرس التالي، سنتعمق في معالجة الأخطاء وتسجيلها داخل برامجكم النصية لجعلها أكثر موثوقية!
تعلم Linux Server Deployment & SSH Mastery مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 12
- الدروس
- 48
الأسئلة الشائعة
هل درس «أتمتة مهام الخادم» مجاني؟
نعم — نص درس «أتمتة مهام الخادم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Linux Server Deployment & SSH Mastery، انتقل إلى CoddyKit PRO. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.
ماذا ستتعلم في «أتمتة مهام الخادم»؟
اكتبوا نصوصًا برمجية لأتمتة المهام الإدارية الشائعة مثل النسخ الاحتياطي، وتنظيف السجلات، وإعادة تشغيل الخدمات، وفحص سلامة النظام. تتمرن على Linux Server Deployment & SSH Mastery مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Linux Server Deployment & SSH Mastery؟
لا تُشترط خبرة سابقة. Linux Server Deployment & SSH Mastery على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «أتمتة مهام الخادم»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Linux Server Deployment & SSH Mastery هذا؟
نعم. كل درس في Linux Server Deployment & SSH Mastery يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مقدمة إلى برمجة Bash النصية
- أتمتة مهام الخادم
- معالجة الأخطاء وتسجيلها في النصوص البرمجية
- الدوال والوسائط والبرامج النصية القابلة لإعادة الاستخدام