恢复linux下被删除的syslog-/var/log/messages文件方法

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

(0)

相关推荐

  • Linux下定时删除过期文件的方法

    在linux下删除过期文件,很简单,用如下命令: 复制代码 代码如下: find /var/www/ -type f -mtime +30 -exec rm -f '{} /;' 以上命令删除30天以 ...

  • 在Linux下怎样删除U盘病毒

    在Linux下使用U盘时,每次都看到一个什么auto之类的文件,怀疑是一个病毒。 但输入ls -l命令发现,属性竟然全不是? 结果是删不掉了。 经过多方查询得知原因是linux不能处理以“.”结尾的文 ...

  • linux下的删除重复行命令uniq详细介绍和实例

    一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉。linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个。使用uniq的时候要注意以下二点 1,对文本操 ...

  • Linux下安装和部署LXC(内核虚拟化技术)的方法

    Linux Container容器是一种内核虚拟化技术,简称LXC,是一种轻量级的虚拟化手段,那么LXC要如何安装部署呢?下面小编就给大家介绍下Linux下LXC的安装部署方法。 LXC 中文名称就是 ...

  • 浅析linux下的回收站以及U盘中的.Trash文件夹

    我们知道windows的回收站 默认分布在每一个分区的RECYCLER文件夹内,那么linux的回收站呢? 经过我在ubuntu上测试发现linux下的回收站在每一个当前用户目录./local/sha ...

  • linux下保存笔记本屏幕亮度设置r(背光亮度)的方法

    linux下如何保存笔记本屏幕亮度设置(背光亮度) 本人使用的linux桌面版是 linux mint13 maya 每次开机发现屏幕亮度都是最亮的,可以通过Fn+F6/F7来调节背光亮度,但重启后还 ...

  • Linux下RPM软件包的安装、更新及卸载方法

    在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装.卸载及管理等操作.RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下 ...

  • Linux下修改root密码以及找回root密码的方法

    以root身份登陆,执行: # passwd 用户名 (修改密码) # useradd 用户名 (添加用户) 具体示例如下:[root@bogon ~]# passwd root Changing p ...

  • Linux下Dr.com(802.1x)拨号上网完美解决方法(Ubuntu)

    现在与大家分享,一起交流。 这次使用的是第三方开发的MentoHUST,因为官方的锐捷Linux版久无更新,使用官方程序很多同学无法通过认证,有些能通过但容易掉线。虽然网上第三方Linux版锐捷客户端 ...