原创文章,转载请注明作者:黄文海 来源:
http://viscent.iteye.com,同步发布在:
http://blog.viscenthuang.info
软件开发日常工作中,出于方便定位问题的需要,我们常常会去清空日志文件。但是,Linux新手容易犯的一个错误是把日志文件给直接删除,而不是删除日志文件的内容。直接删除日志文件往往导致新产生的日志记录无法被写入到日志文件中(因为它已经被删除了),而仅仅重新新建(touch)同样名字的文件是解决不了问题的。下面以Unbutu系统为例,说明如何恢复被误删除的syslog:
首先,在以root用户执行如下lsof命令,查询打开/var/log/messages文件的进程的进程ID(PID)。
root@viscent:/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@viscent:/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@viscent:/proc/544/fd# service --status-all
[ ? ] ...
[ ? ] rc.local
[ ? ] rsyslog
[ ? ] screen-cleanup
[ ? ] ...
root@viscent:/proc/544/fd# service rsyslog restart
rsyslog start/running, process 2673
BTW,真正用来清空日志文件的命令应该是:
cat /dev/null>/var/log/messages
分享到:
相关推荐
在传统的Linux系统中,日志信息通常被记录在`/var/log/messages`文件中,但在Ubuntu这样的Debian衍生系统中,日志管理已经由rsyslog服务接管,因此配置方式有所不同。本文将详细介绍如何在Ubuntu系统中配置日志,...
cat /dev/null > /var/log/syslog cat /dev/null > /var/adm/sylog cat /dev/null > /var/log/wtmp cat /dev/null > /var/log/maillog cat /dev/null > /var/log/messages cat /dev/null > /var/log/...
基于 Yocto 和 Buildroot 平台的 Syslog 配置分享版 Syslog 是 Unix 类操作系统上的一个系统日志工具,负责记录内核和应用程序产生的日志信息。Syslog 日志消息既可以记录在本地文件中,也可以通过网络发送到接收 ...
例如,可以添加或修改规则,使内核消息(通常标记为`kern.*`)被写入`/var/log/syslog`,以便于集中管理和分析。 总的来说,Linux日志系统的管理和分析是系统运维和安全的关键环节。通过对`/var/log/syslog`以及...
/var/log/anaconda/syslog /var/log/anaconda/dbus.log /var/log/anaconda/ks-script-cdcy5u0e.log /var/log/anaconda/packaging.log /var/log/anaconda/ifcfg.log /var/log/anaconda/lvm.log /var/log/anaconda/...
3. 重新编译和安装syslog-ng,确保eventlog模块被包含在内。 4. 在syslog-ng配置文件中启用eventlog模块,添加相应的源和目的地配置。 例如: ```conf source s_windows_eventlog { eventlog(); }; destination ...
- 基于Debian的系统如Ubuntu将全局系统活动日志存储在`/var/log/syslog`,而基于Red Hat的系统如RHEL和CentOS则存储在`/var/log/messages`。 - 认证日志,Ubuntu和Debian存放在`/var/log/auth.log`,而Red Hat和...
### log4j集成syslog配置详解 在现代的IT运维管理中,日志记录与分析是确保系统稳定运行的关键环节之一。log4j作为Java应用中广泛使用的日志框架,其强大的日志处理能力得到了业界的认可。而syslog作为一种标准化的...
# 所有 info 级别及以上的消息,除了 mail、news、authpriv 和 cron 类型的信息都会被写入 /var/log/messages 文件。 mail.*;mail.!=info /var/adm/info # 所有的邮件消息,但不包括 info 级别的消息会被写入 /var/...
常见的日志文件包括/var/log/boot.log、/var/log/lastlog、/var/log/messages、/var/log/secure、/var/log/btmp、/var/log/syslog、/var/log/wtmp和/var/run/utmp等。 这些日志文件记录了不同的系统事件和信息,...
例如,`/var/log/messages`通常收集用户级别的日志,而`/var/log/syslog`可能包含所有设施的日志。 通过阅读提供的文档和分析代码,你可以更深入地理解syslog的工作流程,学习如何根据需要调整日志级别、定制日志...
- **/var/log/apache2/access.log** 和 **/var/log/apache2/error.log**(对于Apache Web服务器)或 **/var/log/nginx/access.log** 和 **/var/log/nginx/error.log**(对于Nginx Web服务器):分别记录Web服务器的...
Linux中的日志文件主要存储在`/var/log`目录下,不同类型的日志文件有着各自的特点和用途: - **/var/log/messages**:此文件记录了系统运行过程中的一般性信息,包括内核消息和其他服务的信息。 - **/var/log/auth...
在Linux中,日志信息通常保存在`/var/log`目录下,这里包含了许多重要的日志文件,例如: 1. `/var/log/boot.log`:记录系统启动过程中的事件,包括引导时的硬件检测和初始化步骤。 2. `/var/log/lastlog`:保存...
- `/var/log` 目录是Linux系统中存放日志文件的默认位置。常见的日志文件包括: - `/var/log/messages`:包含了系统的一般信息日志。 - `/var/log/secure`:记录了与系统安全相关的事件,如认证和授权信息。 - `...
1. 在 /var/log 目录下新建 Cisco.log 文件 2. 在 /etc/syslog.conf 文件中添加以下配置: # Cisco syslog messages local0.* /var/log/Cisco.log 这里的配置将 Cisco 路由器的日志信息记录到 /var/log/Cisco.log ...
修改上述配置,将`named.none`添加到`*.info`之后,使得所有非邮件、非私有认证、非cron、非named的消息都被记录到`/var/log/messages`中,而`named`的日志则不会被记录: ```bash *.info;mail.none;authpriv.none;...
- **/var/log/syslog或/var/log/messages**:这些文件记录了系统级别的消息,包括内核和应用程序的信息。 - **/var/log/auth.log或/var/log/secure**:这些文件记录了与用户认证相关的信息,例如登录尝试、SSH连接等...
2. `/var/log/syslog`:与`/var/log/messages`相似,它记录了系统级的日志信息,但具体包含哪些内容取决于系统的配置。 3. `/var/log/auth.log` 或 `/var/log/secure`:记录了所有与认证和授权相关的事件,包括用户...