syslog
各种重要的日志都可以在/var/log下面找到,当然,如果没有的话可以自己加入。
这些日志有些可以直接tail,有些输入它的名字就可以查看了(我是说,不能cat的那些日志,在$PATH下肯定有一个和它名字相同的程序可以用来查看它)。
仅以部分为例:
文件 |
说明 |
打开方式 |
dmesg |
内和缓冲转储 |
cat |
lastlog |
各账户最后一次登录时间 |
lastlog |
recure |
登录记录 |
cat |
syslog |
主要系统日志 |
cat |
faillog |
登录失败记录 |
faillog |
wtmp |
登录记录 |
last/ac |
messages |
主要系统日志 |
cat |
书上都说吧,日志有8个级别,可是吧……我就觉得它有9个级别:
我实在无法翻译得让人一看就能看出来从上向下是按严重级别来划分的,汉语的表述精确度是有限的。
级别 |
说明 |
[emerg] |
非常状态 |
[alert] |
警报 |
[crit] |
临界 |
[err] |
错误 |
[warn] |
警告 |
[notice] |
注意 |
[info] |
信息 |
[debug] |
debug |
[none] |
(我认为应该包含的第九个级别) |
注:[none]这个级别比较特殊,会忽略掉syslog.conf中引用它的facility。
注:有的人将facility翻译为设备,为了避免和device混淆,我就不翻译,直接使用这个单词了。
绝大多数日志定义于/etc/syslog.conf
这个文件的语法很直观,一看就懂:
语法:
facility.level action
facility1,facility2,facility3.level action
facility1.level;facility2.level action
*.level;facility.none action
例1:
cron.crit /var/log/cron.hll
左半部分:当cron产生了crit级别或高于crit级别的消息时;
右半部分:这些消息会被写入/var/log/cron.hll文件。
例2:
cron.=crit /var/log/cron.crit
左半部分:当cron产生了crit级别的消息时;
右半部分:这些消息会被写入/var/log/cron.crit文件。
例3:
注:“*”代表“every”,“!”代表“非”,“;”是分隔符,“,”是多个facility间的分隔符。
*.*;news,cron,mail.none /var/log/message
左半部分:(按语法顺序)当任意facility(第一个*)产生了任意消息(第二个*) 并且 news,cron,mail不记录(最后的none);
(按汉语语法解释)除了news,cron,mail外的任何facility产生的任何级别的消息;
右半部分:这些消息会被写入/var/log/message文件。
logrotate程序
该程序用于分割日志及自动删除,配置文件为/etc/logrotate.conf。
语法:
/路径/日志文件{
#下面一行是声明,声明该段脚本包含了prerotate和postrotate。
sharedscripts
#执行前行为
prerotate
命令
endscript
#例:每月执行一次
monthly
#例:保留5份历史
rotate 5
#执行后行为
postrotate
命令
endscript
}
阅读(1232) | 评论(0) | 转发(0) |