症状: /var/log/messages
或 dmesg
中出现 "No space left on device"
解决方案:
# 检查磁盘使用情况
df -h
# 清理旧日志文件
sudo journalctl --vacuum-size=200M # 保留200MB日志
sudo rm /var/log/*.gz # 删除旧的压缩日志
# 设置日志轮转
sudo nano /etc/logrotate.conf # 调整日志轮转策略
症状: 内核日志中出现 "Out of memory: Kill process"
解决方案:
# 检查内存使用
free -m
# 临时解决方案
echo 1 > /proc/sys/vm/overcommit_memory
# 永久解决方案
sudo sysctl -w vm.overcommit_memory=1
echo "vm.overcommit_memory=1" | sudo tee -a /etc/sysctl.conf
症状: "EXT4-fs error" 或 "XFS corruption" 等错误
解决方案:
# 检查文件系统错误
sudo fsck /dev/sdX # 替换为实际分区
# 对于挂载的文件系统
sudo umount /dev/sdX
sudo fsck -y /dev/sdX
sudo mount /dev/sdX
症状: "SMART error" 或 "EDAC MC0: UE" 等硬件相关错误
解决方案:
# 检查硬盘SMART状态
sudo smartctl -a /dev/sdX
# 检查内存错误
sudo apt install memtester
sudo memtester 1G 1 # 测试1GB内存,1次迭代
症状: 特定服务频繁崩溃,如 "apache2 segfault" 或 "mysql crashed"
解决方案:
# 检查服务状态
systemctl status servicename
# 查看服务特定日志
journalctl -u servicename -b
# 重新安装问题服务
sudo apt-get --reinstall install packagename
# 安装rsyslog进行集中日志管理
sudo apt install rsyslog
# 配置远程日志服务器
sudo nano /etc/rsyslog.conf
# 安装logwatch进行日志分析
sudo apt install logwatch
# 每日日志报告
sudo logwatch --detail High --mailto admin@example.com
# 使用tail实时监控日志
sudo tail -f /var/log/syslog
# 使用multitail监控多个日志
sudo apt install multitail
sudo multitail /var/log/syslog /var/log/auth.log
/etc/logrotate.conf
确保日志不会无限增长top
, htop
, glances
定期检查系统状态sudo apt update && sudo apt upgrade
(Debian/Ubuntu)cron
任务或使用监控工具如 Nagios
, Zabbix
对关键错误发出告警通过以上方法,您可以有效诊断和解决Linux系统中的常见日志错误,并建立预防机制减少未来出现问题的可能性。