إدارة خوادم Linux الصناعية: الأوامر والخدمات والصلاحيات
systemd: إدارة الخدمات
كل خادم Linux حديث يستخدم systemd لبدء وإيقاف ومراقبة جميع الخدمات. عند نشر تطبيق صناعي، يضمن systemd بدء تشغيله تلقائياً بعد إعادة التشغيل وإعادة تشغيله عند الانهيار.
الأوامر الأساسية
sudo systemctl start factory-monitor # بدء خدمة
sudo systemctl stop factory-monitor # إيقاف خدمة
sudo systemctl enable factory-monitor # تفعيل البدء التلقائي مع الإقلاع
sudo systemctl status factory-monitor # فحص حالة الخدمة
إنشاء خدمة مخصصة
# /etc/systemd/system/factory-monitor.service
[Unit]
Description=Factory Monitoring Application
After=network.target
[Service]
Type=simple
User=factory
WorkingDirectory=/opt/factory-monitor
ExecStart=/opt/factory-monitor/bin/factory-monitor
Restart=always
RestartSec=5
Environment=RUST_LOG=info
Environment=DATABASE_URL=ws://localhost:8000
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now factory-monitor
الجدار الناري: ufw و iptables
خادم مصنع بدون جدار ناري هو دعوة مفتوحة للوصول غير المصرح به.
ufw (جدار ناري مبسّط)
sudo ufw enable
sudo ufw allow 22/tcp # SSH
sudo ufw allow 8080/tcp # التطبيق
sudo ufw allow 3000/tcp # Grafana
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw status verbose
iptables (متقدم)
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.10.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8080 -s 10.0.0.0/24 -j ACCEPT
sudo iptables -A INPUT -j DROP
إدارة المستخدمين والصلاحيات
لا تُشغّل خدمات الإنتاج كـ root أبداً. أنشئ مستخدمين مخصصين بأقل الصلاحيات.
sudo useradd --system --no-create-home --shell /usr/sbin/nologin factory
sudo useradd -m -s /bin/bash admin-joe
sudo usermod -aG sudo admin-joe
sudo chown -R factory:factory /opt/factory-monitor
sudo chmod 750 /opt/factory-monitor
مصادقة مفاتيح SSH
ssh-keygen -t ed25519 -C "joe@drmachine"
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin-joe@factory-server
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
السجلات: journalctl وملفات /var/log
عندما تتوقف آلة عن إرسال البيانات في الثالثة صباحاً، السجلات هي خط التحقيق الأول.
journalctl
sudo journalctl -b # جميع السجلات منذ آخر إقلاع
sudo journalctl -u factory-monitor -f # متابعة خدمة
sudo journalctl --since "30 min ago" # سجلات أخيرة
sudo journalctl -p err -b # الأخطاء فقط
ملفات السجلات المهمة
| الملف | الغرض |
|---|---|
/var/log/syslog |
رسائل النظام العامة |
/var/log/auth.log |
محاولات المصادقة |
/var/log/kern.log |
رسائل النواة |
تدوير السجلات
# /etc/logrotate.d/factory-monitor
/var/log/factory-monitor/*.log {
daily
missingok
rotate 14
compress
notifempty
create 0640 factory factory
}
المهام المجدولة: cron و systemd timers
cron
crontab -e
0 2 * * * /opt/scripts/backup-surrealdb.sh >> /var/log/backup.log 2>&1
0 3 * * 0 /opt/scripts/cleanup-logs.sh
*/5 * * * * /opt/scripts/health-check.sh || /opt/scripts/alert.sh
مؤقتات systemd
# /etc/systemd/system/factory-backup.timer
[Unit]
Description=Daily Factory Database Backup
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
# /etc/systemd/system/factory-backup.service
[Unit]
Description=Factory Database Backup Job
[Service]
Type=oneshot
User=factory
ExecStart=/opt/scripts/backup-surrealdb.sh
sudo systemctl enable --now factory-backup.timer
مثال عملي: إعداد خادم تطبيقات صناعي من الصفر
# 1. تحديث النظام
sudo apt update && sudo apt upgrade -y
# 2. إنشاء مستخدم التطبيق
sudo useradd --system --no-create-home --shell /usr/sbin/nologin factory
# 3. تثبيت Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker factory
# 4. إعداد الجدار الناري
sudo ufw allow 22/tcp && sudo ufw allow 8080/tcp && sudo ufw allow 3000/tcp
sudo ufw enable
# 5. تقوية SSH
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
# 6. التحديثات الأمنية التلقائية
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# 7. النشر والتحقق
cd /opt/factory-monitor && docker compose up -d
docker compose ps && sudo ufw status
الخلاصة
إدارة أنظمة Linux هي أساس النشر الصناعي الموثوق. systemd يدير خدماتك، الجدران النارية تحمي محيط شبكتك، إدارة المستخدمين السليمة تحد من أضرار الحسابات المخترقة، السجلات تساعدك في تشخيص المشاكل، والمهام المجدولة تؤتمت الصيانة الروتينية. في الدرس القادم، ستتعلم خطوط أنابيب CI/CD لأتمتة عمليات البناء والاختبار والنشر.