Linux教程

手动删除了Linux下syslog--/var/log/messages怎么办?

本文主要是介绍手动删除了Linux下syslog--/var/log/messages怎么办?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

引言

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下syslog--/var/log/messages怎么办?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!