[置顶] Linux下恢复被误删除的syslog—/var/log/messages
来源:互联网 发布:屏幕数据记录器 编辑:程序博客网 时间:2024/06/05 07:56
原创文章,转载请注明作者:黄文海 来源:http://viscent.iteye.com,同步发布在:http://blog.viscenthuang.info
软件开发日常工作中,出于方便定位问题的需要,我们常常会去清空日志文件。但是,Linux新手容易犯的一个错误是把日志文件给直接删除,而不是删除日志文件的内容。直接删除日志文件往往导致新产生的日志记录无法被写入到日志文件中(因为它已经被删除了),而仅仅重新新建(touch)同样名字的文件是解决不了问题的。下面以Unbutu系统为例,说明如何恢复被误删除的syslog:
首先,在以root用户执行如下lsof命令,查询打开/var/log/messages文件的进程的进程ID(PID)。
从上面命令输出可以看到,这个打开/var/log/messages文件的进程的PID是544,文件/var/log/messages的文件描述符(FD)号是7。
根据上述的PID和FD,可以在/proc找到对应的文件:
将文件/proc/544/fd/7拷贝到/var/log/messages
然后重新启动syslog服务即可恢复被误删除的日志文件,并且新的日志记录能够继续被写入日志文件。
以root用户运行service命令。其中,service命令的第2个参数可能是syslog、也可能是rsyslog。
具体可以使用通过命令查询得知。
BTW,真正用来清空日志文件的命令应该是:
软件开发日常工作中,出于方便定位问题的需要,我们常常会去清空日志文件。但是,Linux新手容易犯的一个错误是把日志文件给直接删除,而不是删除日志文件的内容。直接删除日志文件往往导致新产生的日志记录无法被写入到日志文件中(因为它已经被删除了),而仅仅重新新建(touch)同样名字的文件是解决不了问题的。下面以Unbutu系统为例,说明如何恢复被误删除的syslog:
首先,在以root用户执行如下lsof命令,查询打开/var/log/messages文件的进程的进程ID(PID)。
root@viscent:/var/log# lsof | grep messagesrsyslogd 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@viscent:/var/log#ls -al /proc/544/fd/7l-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@viscent:/proc/544/fd# service --status-all[ ? ] ...[ ? ] rc.local[ ? ] rsyslog[ ? ] screen-cleanup[ ? ] ...
root@viscent:/proc/544/fd# service rsyslog restartrsyslog start/running, process 2673
BTW,真正用来清空日志文件的命令应该是:
cat /dev/null>/var/log/messages
0 0
- [置顶] Linux下恢复被误删除的syslog—/var/log/messages
- Linux下恢复被误删除的 /var/log/messages(验证可行)
- 删除/var/log/messages文件的恢复方法
- 在遭到攻击后被删除/var/log/messages后恢复
- Ubuntu下如何找回 /var/log/messages
- 清理/var/log/messages的脚本
- 没有/var/log/messages
- 管理/var/log/messages
- Linux下如果/var/log/messages停止写入內容了,如何重新启动syslogd
- [Linux][2010-12-31] Linux系统日志 /var/log/messages
- linux /var/log下的日志[RHEL]
- /var/log目录下的Linux日志
- 【翻译自mos文章】Linux的/var/log/messages是空的(0k),messages.0, messages.1也是空的
- Linux使用问题杂记--解决无/var/log/messages 问题
- oom和oom-killer实例简介(内存用完和进程杀死)------顺便说说linux下的两个重要目录:/proc/kmsg和/var/log/messages
- 关于/var/log/messages文件
- /var/log/messages日志分析
- syslogd to /var/log/syslog
- 一个数据采集系统的设计及重要点
- iOS调用系统相册、相机界面语言设置为中文
- [置顶] 《孙子兵法》在敏捷项目管理中的应用
- Kinect2.0系统配置要求
- [置顶] Oracle PL/SQL中编写空操作的存储过程
- [置顶] Linux下恢复被误删除的syslog—/var/log/messages
- Robotics Toolbox学习(未完待续)
- [置顶] 敏捷项目管理实战之在敏捷开发中引入 Story 演示
- [置顶] Java多线程编程模式实战指南(一):Active Object模式(上)
- 关于安卓 TextView 添加点击事件
- [置顶] Java多线程编程模式实战指南(一):Active Object模式(下)
- [置顶] Java多线程编程模式实战指南(二):Immutable Object模式
- ViewPager 详解(三)---PagerTabStrip与PagerTitleStrip添加标题栏的异同
- [置顶] Java多线程编程模式实战指南(三):Two-phase Termination模式