Linux删除日志解决方法
参考地址
问题描述
直接删除日志文件导致新日志记录无法被写入到日志文件中。
恢复被删除的日志文件
-
切换
root
用户,查询/var/log/messages
文件进程。执行命令:
lsof | grep messages
查询结果
rsyslogd 544 syslog 7w REG 8,1 214641 134422 /var/log/messages
-
根据查询结果,得出
/var/log/messages
文件的进程的PID是544
,/var/log/messages
文件描述符(FD)号是7
。根据PID和FD,在
/proc
找到对应的文件,执行命令:ls -al /proc/544/fd/7
将文件
/proc/544/fd/7
拷贝到/var/log/messages
,执行命令:cp /proc/544/fd/7 /var/log/messages
-
重新启动
rsyslog
服务即可恢复被误删除的日志文件。执行命令:
service rsyslog restart
-
清空日志文件。
执行命令:
cat /dev/null>/var/log/messages
清空日志方法
-
查询
/var/log/messages
文件的进程执行命令:
lsof | grep messages
查询结果:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsyslogd 1455 root 4w REG 8,6 1299113404 2686 messages abrt-dump 1932 root 4r REG 8,6 1299113404 2686 messages
-
结束生成
message
的进程执行命令:
kill -9 1455 kill -9 1932
-
清空日志并重启
执行命令:
cat /dev/null > /var/log/messages reboot
说明
- 测试系统:CentOS 6.5
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步