Linux删除日志解决方法


参考地址

问题描述

直接删除日志文件导致新日志记录无法被写入到日志文件中。

恢复被删除的日志文件

  1. 切换root用户,查询/var/log/messages文件进程。

    执行命令:

     lsof | grep messages
    

    查询结果

     rsyslogd 544 syslog 7w REG 8,1 214641 134422 /var/log/messages 
    
  2. 根据查询结果,得出/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 
    
  3. 重新启动rsyslog服务即可恢复被误删除的日志文件。

    执行命令:

     service rsyslog restart 
    
  4. 清空日志文件。

    执行命令:

     cat /dev/null>/var/log/messages
    

清空日志方法

  1. 查询/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
    
  2. 结束生成message的进程

    执行命令:

     kill -9 1455 
     kill -9 1932
    
  3. 清空日志并重启

    执行命令:

     cat /dev/null > /var/log/messages 
     reboot
    

说明

  • 测试系统:CentOS 6.5
 posted on 2018-05-16 16:58  AI.℡  阅读(457)  评论(0编辑  收藏  举报