时间:2021-05-23
Linux新手容易犯的一个错误是把日志文件给直接删除,而不是删除日志文件的内容。
直接删除日志文件往往导致新产生的日志记录无法被写入到日志文件中(因为它已经被删除了),而仅仅重新新建(touch)同样名字的文件是解决不了问题的。
本文以Unbutu系统为例,介绍如何恢复被误删除的syslog文件:
首先,在以root用户执行如下lsof命令,查询打开/var/log/messages文件的进程的进程ID(PID)。
复制代码代码如下:
root@zck:/var/log# 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找到对应的文件:
复制代码代码如下:
root@zck:/var/log#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拷贝到/var/log/messages
cp /proc/544/fd/7 /var/log/messages
然后重新启动syslog服务即可恢复被误删除的日志文件,并且新的日志记录能够继续被写入日志文件。
以root用户运行service命令。其中,service命令的第2个参数可能是syslog、也可能是rsyslog。
具体可以使用通过命令查询得知。
复制代码代码如下:
root@zck:/proc/544/fd# service --status-all
[ ? ] ...
[ ? ] rc.local
[ ? ] rsyslog
[ ? ] screen-cleanup
[ ? ] ...
#-------------------------------
复制代码代码如下:
root@zck:/proc/544/fd# service rsyslog restart
rsyslog start/running, process 2673
清空日志文件:
cat /dev/null>/var/log/messages
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.问题描述今天需要查看系统的日志文件,但却没有找到/var/log/messages这个文件。网上搜素资料,说是要配置/etc/syslog.conf。sys
一个关于如何在指定文件大于1GB后,自动删除的问题。批处理代码如下:复制代码代码如下:#!/bin/bash#当/var/log/syslog大于1GB时#自动
linux查看日志的方法如下: 1、首先进入系统日志,所有服务的登录的文件或错误信息文件,都在/var/log/记录下来cd/var/log/; 2、/va
iptables的日志(log)由syslogd纪录和管理。初始存放在/var/log/messages里面。自动采取循环纪录(rotation)的方式记录。但
如果有进程正在使用的文件,如果被误删了,可以找回。如果没有进程在使用,就无法找回被误删的文件了。假如/var/log/messages文件被误删了:1.查询正在