اسکریپت تعمیر و نگهداری: نگه داشتن جعبه لینوکس خود

مقدمه
خوش آمدید ، مهندس محترم ، Noble Sysadmin یا روح شجاع که تازه متوجه شده است که سرور آنها در آتش است. 🎩🔥
تعمیر و نگهداری سیستم مانند مسواک زدن دندان های شما است – می توانید از آن پرش کنید ، اما در نهایت ، این هزینه برای شما خواهد بود. این اسکریپت ، پیاده روی قابل اعتماد شما است ، به صورت خودکار کارهای مهم مانند نظارت بر CPU و استفاده از دیسک ، راه اندازی مجدد خدمات مهم و استفاده از به روزرسانی های امنیتی. آن را به عنوان یک سرایدار کوچک و بی امان برای سیستم لینوکس خود فکر کنید ، قبل از تبدیل شدن به فاجعه ، ظروف سرباز یا مسافر را فرا بگیرید.
این راهنما شما را از طریق کارکردهای فیلمنامه طی می کند ، و اطمینان می دهد که شما به جای اینکه فقط کورکورانه آن را اجرا کنید و به خدایان Bash دعا کنید ، می دانید که هر قطعه چه کاری انجام می دهد.
و نه ، این دانش یک هدر نیست-خواه تازه کار باشید یا یک سیسمین سخت و سخت نبرد باشید ، تسلط بر این مهارت ها باعث می شود شما قهرمان ناخوشایند تیم خود باشید.
چرا این مهم است؟
1. نظارت بر استفاده از منابع
آیا تا به حال سرور آنقدر بد بوده اید که مشکوک هستید که فقط از زندگی خودداری کرده است؟ نظارت بر CPU ، RAM و استفاده از دیسک به شما کمک می کند تا قبل از شروع کار کاربران در توییتر ، مشکل را مشاهده کنید.
این اسکریپت معیارهای سیستم را ثبت می کند و به شما هشدار می دهد وقتی همه چیز به سمت جنوب شروع می شود.
ترتیب. تشخیص تهدیدهای امنیتی
هکرها هرگز نمی خوابند و سیاهههای مربوط به شما اثبات می شوند. حملات بی رحمانه SSH همیشه اتفاق می افتد ، و ورود به سیستم شکست خورده مانند ایمیل های رد از آن کار رویایی که درخواست کرده اید.
این اسکریپت به شما کمک می کند تا به تلاشهای دسترسی غیرمجاز و خطاهای سیستم توجه کنید.
3. اطمینان از اجرای خدمات مهم
تصور کنید که از خواب بیدار می شوید تا متوجه شوید که پایگاه داده شما ساعاتی پیش خراب شده است ، و اکنون رئیس شما در حال تماس است. 😱
این اسکریپت خدمات ضروری را کنترل می کند (به عنوان مثال ، nginx ، mysql) و در صورت پایین آمدن آنها را مجدداً راه اندازی می کند – زیرا انسان به خواب احتیاج دارد ، اما سرورها این کار را نمی کنند.
4. خودکار سازی و به روزرسانی سیستم
پرونده های دما قدیمی فضای هدر می دهد. تکه های امنیتی صرفه جویی در زندگی هستند. این فیلمنامه از هر دو مراقبت می کند ، بنابراین شما مجبور نیستید مانند برخی از دهقان قرون وسطایی این کار را انجام دهید.
شیرجه عمیق به کد
1. تنظیم ورود به سیستم
LOG_FILE="/var/log/system_maintenance.log"
هر آنچه که اسکریپت در اینجا وارد می شود ، بنابراین می توانید وقتی همه چیز اشتباه شد (یا به رئیس خود ثابت کنید که این تقصیر شما نبود) ردیابی کنید.
2 تعریف متغیرهای مهم
TEMP_DIR="/tmp"
CRITICAL_SERVICES=("nginx" "mysql")
DISK_THRESHOLD=80
CPU_THRESHOLD=75
MEM_THRESHOLD=75
- temp_dir: جایی که پرونده های دما برای مردن هستند.
- سرویس های بحرانی_: اگر شگفتی را دوست ندارید ، بیشتر اضافه کنید.
- آستانه: اعداد فراتر از آن هشدار باید خاموش شوند.
عملکرد ورود به سیستم
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}
پیام ها را با Timestamps وارد کنید – بنابراین می توانید لحظه دقیقی را که سرور شما بدرفتاری کرده است ، مشخص کنید.
4. نظارت بر منابع سیستم
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
MEM_USAGE=$(free | awk '/Mem/{printf("%.2f"), $3/$2 * 100}')
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
- بالا: استفاده از CPU را استخراج کنید.
- رایگان: استفاده از حافظه می شود.
- DF: فضای دیسک را بررسی می کند.
اگر اعداد از آستانه فراتر رود ، اسکریپت زنگ خطر را بالا می برد:
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
log "⚠️ High CPU Usage detected: ${CPU_USAGE}%"
fi
چک های مشابه برای حافظه و دیسک وجود دارد.
5. تجزیه و تحلیل سیاهههای مربوط به امنیت و خطاها
FAILED_LOGINS=$(grep "Failed password" /var/log/auth.log | wc -l)
SYSTEM_ERRORS=$(grep -i "error" /var/log/syslog | wc -l)
- شمارش تلاشهای ورود به سیستم SSH.
- اسکن سیستم برای خطاها.
اگر همه چیز ماهی به نظر برسد ، اسکریپت هشدار می دهد:
if [ "$FAILED_LOGINS" -gt 5 ]; then
log "🚨 Multiple failed SSH login attempts detected!"
fi
6. تمیز کردن پرونده های موقت
find "$TEMP_DIR" -type f -atime +7 -delete
پرونده های دما را قدیمی تر از 7 روز حذف می کند ، زیرا احتکار بد است.
7. راه اندازی مجدد خدمات مهم
for service in "${CRITICAL_SERVICES[@]}"; do
if systemctl is-active --quiet "$service"; then
log "✅ $service is running."
else
log "⚠️ $service is not running. Restarting..."
systemctl restart "$service"
if systemctl is-active --quiet "$service"; then
log "🔄 Successfully restarted $service."
else
log "❌ Failed to restart $service!"
fi
fi
اسکریپت هر سرویس را بررسی می کند و در صورت پایین آمدن آن را مجدداً راه اندازی می کند – زیرا خرابی گران است و مشتریان به بهانه های شما اهمیتی نمی دهند.
8. استفاده از به روزرسانی های سیستم
apt update && apt upgrade -y
سیستم خود را بدون مداخله دستی به روز نگه می دارد.
if [ $? -eq 0 ]; then
log "✅ System updates completed successfully."
else
log "❌ System updates failed! Check logs."
fi
زیرا هیچ کس نرم افزار منسوخ و آسیب پذیر را دوست ندارد.
9. همه چیز را به ترتیب اجرا کنید
main() {
log "===== System Maintenance Script Started ====="
monitor_system
analyze_logs
optimize_performance
apply_updates
log "===== System Maintenance Script Completed ====="
}
main
هر عملکرد به ترتیب انجام می شود ، و در حالی که قهوه را مانند یک رئیس می نوشید ، از عملکرد صاف اطمینان می یابد.
خودکار با کرون
برای انجام این اجرا هر روز نیمه شب ، این خط را به Crontab خود اضافه کنید:
0 0 * * * /path/to/script.sh
دویدن crontab -e
و خط فوق را بچسبانید. بوم تعمیر و نگهداری خودکار
افکار نهایی
این اسکریپت فقط یکی از راه های مختلف برای خودکارسازی نگهداری سیستم است. این یک ابزار ساده و در عین حال مؤثر برای کمک به شما در نظارت و مدیریت بومی سیستم است. روشهای پیشرفته تری وجود دارد ، اما این یک پایه محکم برای درک نحوه عملکرد کارها در زیر کاپوت است.
اتوماسیون مبارک! 🛠
من DestinyObs هستم | iBuild | ideploy | isecure | بیستاستاین