引言
Linux小白很容易犯得一个错误就是:查看日志的时候,尤其是系统日志,由于日志太多,把系统日志手动删除了。也就是把/var/log/messages文件删除了,而不是删除文件的内容。直接删除文件会导致新产生的日志无法被写入到文件当中,只有清空文件内容后续的日志才能继续写入文件。当然删除文件之后仅仅新建一个同样名字的文件是解决不了问题的。
解决方案
文本以CentOS7为例,介绍如何恢复手动删除了系统日志/var/log/messages
1、执行lsof命令查询/var/log/messages文件的进程的进程ID(PID)
如果lsof没有安装,先安装一下
yum install lsof -y
查看messagesPID
lsof | grep messages
会显示如下内容:
rsyslogd 544 syslog 7w REG 8,1 214641 134422 /var/log/messages
2、根据PID和FD找到对应的文件
从上面命令输出可以看到,这个打开/var/log/messages文件的进程的PID是544,文件/var/log/messages的文件描述符(FD)号是7。
根据上述的PID和FD,可以在/proc找到对应的文件:
ls -al /proc/544/fd/7
会显示如下内容:
l-wx------ 1 root root 64 2012-07-14 14:48 7 - /var/log/messages
所以/proc/544/fd/7 这就是messages对应的文件
3、将文件拷贝到/var/log/messages
cp /proc/544/fd/7 /var/log/messages
4、重启syslog服务
service rsyslog restart
这样系统日志就能正常写入了。
结语
那有同学问了,那系统日志太多了,不方便查看,我怎么清空日志,然后只生成我想要的日志呢。
可以执行以下命令
cat /dev/null>/var/log/messages
好了本节课到这也就结束了,同学们听懂了嘛?
感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接。
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)