خطای No space left on device
خطای No space left on device در Apache نشاندهنده پر شدن فضای دیسک یا پر شدن inode سرور است. این خطا باعث میشود Apache نتواند لاگ بنویسد یا فایل موقت ایجاد کند.
بررسی
# بررسی فضای دیسک
df -h
# بررسی inode
df -i
# پوشههای بزرگ
du -sh /* | sort -rh | head -10
du -sh /var/log/* | sort -rh | head -10
رفع سریع
پاکسازی لاگها
find /var/log -name "*.gz" -delete
> /var/log/httpd/access_log
> /var/log/httpd/error_log
find /var/log -name "*.old" -delete
پاکسازی بکاپهای قدیمی
find /home/*/backups -mtime +30 -delete
پاکسازی session و tmp
find /tmp -mtime +7 -delete
find /var/lib/php/session -mtime +1 -delete
پاکسازی Binary Log MySQL
mysql -e "PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY);"
حذف فایلهای core dump
find / -name "core.*" -delete
پر شدن Semaphore (دلیل مخفی!)
گاهی فضای دیسک پر نیست اما خطای No space رخ میدهد. دلیل: پر شدن Semaphore:
# بررسی
ipcs -s | wc -l
# پاکسازی
ipcs -s | grep apache | awk '{print $2}' | xargs -I {} ipcrm -s {}
systemctl restart httpd
پیشگیری
logrotate فعال باشد. بکاپهای قدیمی خودکار حذف شوند. مانیتورینگ فضای دیسک با Cron. Binary Log MySQL با expire_logs_days محدود شود.
کانفیگ سرور شامل بهینهسازی فضا و logrotate. سرور مجازی با فضای SSD NVMe.