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.℡  阅读(524)  评论(0)    收藏  举报