明基卓威zowie xl25466和XB271HU 那个好

Linux日志管理工具Logrotate_Linux教程_Linux公社-Linux系统门户网站
你好,游客
Linux日志管理工具Logrotate
来源:Linux社区&
作者:Linux
Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
& & /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
/etc/cron.daily目录所有脚本运行频率是由CRON通过/etc/crontab控制,
有两种运行方式: 1 直接执行单个命令; 2 目录规划,下面仅列举目录规划配置
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# run-parts
*/1 * * * * root run-parts /etc/cron.min
01 * * * * root run-parts /etc/cron.hourly
59 23 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
/etc/logrotate.conf 全局默认文件
/etc/logrotate.d/& 目录,下属文件通过include纳入前者
weekly& & &==默认一周执行一次 rotate 工作
rotate 4& &==保留多少个日志文件.默认保留四个.
create& & &==创建新的文件.因为日志被改名,因此要创建一个新的来继续存储之前的日志
dateext& &==文件后缀是日期格式,也就是切割后文件是:xxx.log-,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-1
compress &==是否压缩日志.
include /etc/logrotate.d& # 将 /etc/logrotate.d/ 目录中的所有文件都加载进来
/var/log/wtmp {& & & &==仅针对 /var/log/wtmp 所设定的参数
& & monthly& & & & & &==每月一次切割,取代默认的一周
& & minsize 1M& & & & &==文件大小超过 1M 后才会切割
& & create 0664 root utmp &==指定新建的日志文件权限以及所属用户和组
& & rotate 1& & & & & &==只保留一个日志.
通过include加载的文件示例如下
[root@www ~]# vi /etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron&
& sharedscripts
& prerotate
& & /usr/bin/chattr -a /var/log/messages
& endscript
& sharedscripts
& postrotate
& & /bin/kill -HUP `cat /var/run/syslogd.pid 2& /dev/null` 2& /dev/null || true
& & /bin/kill -HUP `cat /var/run/rsyslogd.pid 2& /dev/null` 2& /dev/null || true
& & /usr/bin/chattr +a /var/log/messages
& endscript
日志文件: 被处理的日志绝对路径.使用空格符分隔多个文件名;
执行脚本:
可调用外部指令来进行额外的命令,这个设定需与 sharedscripts .... endscript 设定合用才行。命令介绍:
prerotate:在启动 logrotate 之前进行的指令,例如修改文件的属性等动作;
postrotate:在做完 logrotate 之后启动的指令,例如重新启动 (kill -HUP) 某个服务;
那么 /etc/logrotate.d/syslog 内设定的六个文件的切割功能就变成了:
1.该设定只对 /var/log/ 内的 messages, secure, maillog, spooler, boot.log, cron 有效;
2.日志切割每周一次、保留四个、且切割下来的日志文件不进行压缩(未更改预设值);
3.切割完毕后 (postrotate) 取得 syslog 的 PID 后,以 kill -HUP 重新启动 syslogd
切割案例:Nginx
============================
在 /etc/logrotate.d 新建 nginx
/usr/local/nginx/logs/*.log {
sharedscripts
postrotate
& & if [ -f /usr/local/nginx/logs/nginx.pid ]; then
& & & & kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
本文永久更新链接地址:
相关资讯 & & &
& (08/15/:22)
& (03/03/:55)
& (02月06日)
& (10/31/:03)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款查看: 4365|回复: 4
logrotate: ALERT exited abnormally with [1]
认证徽章论坛徽章:71
Linux AS 5.3 ,&&64bit ,&&日志不循环写,总是在 messages 文件上写,不清楚是不是改了什么文件 。
报错信息如下:& &
May&&6 21:01:37 dfms-dataguard-db java: SGIO driver_status=0x8
May&&6 21:01:37 dfms-dataguard-db Server Administrator: Storage Service EventID: 2095&&SCSI sense data Sense key:&&5 Sense code: 24 Sense qualifier:&&0:&&Enclosure 0:0 Controller 0, Connector 0
May&&6 21:12:13 dfms-dataguard-db Server Administrator: Storage Service EventID: 2358&&The battery charge cycle is complete.:&&Battery 0 Controller 0
May&&7 04:03:02 dfms-dataguard-db logrotate: ALERT exited abnormally with [1]
May&&7 14:58:39 dfms-dataguard-db xinetd[7350]: START: telnet pid=24356 from=10.13.7.67
May&&7 15:07:21 dfms-dataguard-db xinetd[7350]: EXIT: telnet status=0 pid=24356 duration=522(sec)
May&&8 04:03:03 dfms-dataguard-db logrotate: ALERT exited abnormally with [1]
May&&8 21:22:42 dfms-dataguard-db auditd[6744]: Audit daemon rotating log files
May&&9 04:03:02 dfms-dataguard-db logrotate: ALERT exited abnormally with [1]
论坛徽章:48
有没有修改过/etc/logrotate.d/下的东东呀。
认证徽章论坛徽章:71
果然 syslog 有被改过
[root@dfms-dataguard-db logrotate.d]# cat syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
& & sharedscripts
& & postrotate
& && &&&/bin/kill -HUP `cat /var/run/syslogd.pid 2& /dev/null` 2& /dev/null || true
& && &&&/bin/kill -HUP `cat /var/run/rsyslogd.pid 2& /dev/null` 2& /dev/null || true
& & endscript
[root@dfms-dataguard-db logrotate.d]#
其他机器:
[root@DFMS-QC-DB logrotate.d]# cat syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
& & sharedscripts
& & postrotate
& && &&&/bin/kill -HUP `cat /var/run/syslogd.pid 2& /dev/null` 2& /dev/null || true
& & endscript
认证徽章论坛徽章:71
而这个下面没有这个文件 rsyslogd.pid& &
先删除这一行先 。&&
[root@dfms-dataguard-db run]# pwd
[root@dfms-dataguard-db run]# ls -alh
total 324K
drwxr-xr-x 22 root&&root& &4.0K May 10 20:01 .
drwxr-xr-x 28 root&&root& &4.0K Mar&&9 01:15 ..
srw-rw-rw-&&1 root&&root& && &0 May&&6 21:01 acpid.socket
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 atd.pid
srw-r-----&&1 root&&root& && &0 May&&6 21:01 audispd_events
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 auditd.pid
prw-------&&1 root&&root& && &0 May&&6 21:01 autofs.fifo-misc
prw-------&&1 root&&root& && &0 May&&6 21:01 autofs.fifo-net
drwxr-xr-x&&2 avahi avahi&&4.0K May&&6 21:01 avahi-daemon
drwxr-xr-x&&2 root&&root& &4.0K Sep 17&&2008 console
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 crond.pid
drwxr-xr-x&&3 root&&lp& &&&4.0K May&&6 21:01 cups
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 cupsd.pid
drwxr-xr-x&&2 root&&root& &4.0K May&&6 21:01 dbus
-rw-------&&1 root&&root& && &5 May&&6 21:01 dsm_om_connsvc32d.pid
-rw-------&&1 root&&root& && &5 May&&6 21:01 dsm_sa_datamgr32d.pid
-rw-------&&1 root&&root& && &5 May&&6 21:01 dsm_sa_eventmgr32d.pid
-rw-------&&1 root&&root& && &5 May&&6 21:01 dsm_sa_snmp32d.pid
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 gpm.pid
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 haldaemon.pid
-rw-------&&1 root&&root& && &5 May&&6 21:01 klogd.pid
drwx------&&2 root&&root& &4.0K Jan 18&&2008 mdadm
drwx------&&2 root&&root& &4.0K Jan 18&&2008 mdmpd
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 messagebus.pid
drwxrwxr-x&&2 root&&root& &4.0K Nov 13&&2008 netreport
drwxr-xr-x&&2 root&&root& &4.0K Dec 21&&2008 NetworkManager
drwxr-xr-x&&2 root&&root& &4.0K Jan&&5&&2009 nscd
srwxrwxrwx&&1 root&&root& && &0 May&&6 21:m
-rw-r--r--&&1 root&&root& && &4 May&&6 21:01 pcscd.pid
-rw-r--r--&&1 root&&root& & 65K May&&6 21:01 pcscd.pub
drwxr-xr-x&&2 root&&root& &4.0K Dec&&2&&2008 pm
drwxr-xr-x&&2 root&&root& &4.0K Aug 12&&2008 ppp
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 rpc.statd.pid
drwxr-xr-x&&2 root&&root& &4.0K Sep 29&&2006 saslauthd
drwxrwxr-x&&2 root&&screen 4.0K Dec&&4&&2006 screen
srw-rw-rw-&&1 root&&root& && &0 May&&6 21:01 sdp
drwxr-xr-x&&2 root&&root& &4.0K Feb 17 14:31 setrans
drwxr-xr-x&&2 root&&root& &4.0K Feb 17 14:35 setroubleshoot
drwxr-xr-x&&2 root&&root& &4.0K Nov&&3&&2008 snmpd
-rw-------&&1 root&&root& && &5 May&&6 21:01 snmpd.pid
drwxr-xr-x&&3 root&&root& &4.0K Feb 23 17:02 srvadmin
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 sshd.pid
drwx------&&4 root&&root& &4.0K Feb 18 13:47 sudo
-rw-------&&1 root&&root& && &5 May&&6 21:01 syslogd.pid
-rw-rw-r--&&1 root&&utmp& &5.7K May 10 20:26 utmp
drwxr-xr-x&&2 root&&root& &4.0K Dec&&9&&2008 winbindd
drwxr-xr-x&&2 root&&root& &4.0K Dec&&3&&2008 wpa_supplicant
-rw-r--r--&&1 root&&root& && &6 May&&6 21:01 xfs.pid
-rw-r--r--&&1 root&&root& && &5 May&&6 21:01 xinetd.pid
论坛徽章:4
现在有没有解决啊
我发现我现在的 messages很大啊
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号在Linux系统中使用logrotate来管理日志文件的方法
今天图老师小编给大家介绍下在Linux系统中使用logrotate来管理日志文件的方法,平时喜欢在Linux系统中使用logrotate来管理日志文件的方法的朋友赶紧收藏起来吧!记得点赞哦~
top1:在Linux系统中使用logrotate来管理日志文件的方法
&  日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。  logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。另外,旧日志也可以通过电子邮件发送,不过该选项超出了本教程的讨论范围。  主流Linux发行版上都默认安装有logrotate包,如果出于某种原因,logrotate没有出现在里头,你可以使用apt-get或yum命令来安装。  在Debian或Ubuntu上:  代码如下:  # apt-get install logrotate cron  在Fedora,CentOS或RHEL上:  代码如下:  # yum install logrotate crontabs  logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下。  样例一  在第一个样例中,我们将创建一个10MB的日志文件/var/log/log-file。我们将展示怎样使用logrotate来管理该日志文件。  我们从创建一个日志文件开始吧,然后在其中填入一个10MB的随机比特流数据。  代码如下:  # touch /var/log/log-file  # head -c 10M
/dev/urandom
/var/log/log-file  由于现在日志文件已经准备好,我们将配置logrotate来轮循该日志文件。让我们为该文件创建一个配置文件。  代码如下:  # vim /etc/logrotate.d/log-file/var/log/log-file {  monthly  rotate 5  compress  delaycompress  missingok  notifempty  create 644 root root  postrotate  /usr/bin/killall -HUP rsyslogd  endscript  }  这里:  monthly: 日志文件将按月轮循。其它可用值为&daily&,&weekly&或者&yearly&。  rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。  compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。  delaycompress:
总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。  missingok: 在日志轮循期间,任何错误将被忽略,例如文件无法找到之类的错误。  notifempty: 如果日志文件为空,轮循不会进行。  create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。  postrotate/endscript:
在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd
进程将立即再次读取其配置并继续运行。  上面的模板是通用的,而配置参数则根据你的需求进行调整,不是所有的参数都是必要的。  样例二  在本例中,我们只想要轮循一个日志文件,然而日志文件大小可以增长到50MB。  代码如下:  # vim /etc/logrotate.d/log-file/var/log/log-file {  size=50M  rotate 5  create 644 root root  postrotate  /usr/bin/killall -HUP rsyslogd  endscript  }  样例三  我们想要让旧日志文件以创建日期命名,这可以通过添加dateext常熟实现。  代码如下:  # vim /etc/logrotate.d/log-file/var/log/log-file {  monthly  rotate 5  dateext  create 644 root root  postrotate  /usr/bin/killall -HUP rsyslogd  endscript  }  这将让归档文件在它们的文件名中包含日期信息。  排障  这里提供了一些logrotate设置的排障提示。  1. 手动运行logrotate  logrotate可以在任何时候从命令行手动调用。  要调用为/etc/lograte.d/下配置的所有日志调用logrotate:  代码如下:  # logrotate /etc/logrotate.conf  要为某个特定的配置调用logrotate:  代码如下:  # logrotate /etc/logrotate.d/log-file  2. 演练  排障过程中的最佳选择是使用&-d&选项以预演方式运行logrotate。要进行验证,不用实际轮循任何日志文件,可以模拟演练日志轮循并显示其输出。  代码如下:  # logrotate -d /etc/logrotate.d/log-file  正如我们从上面的输出结果可以看到的,logrotate判断该轮循是不必要的。如果文件的时间小于一天,这就会发生了。  3. 强制轮循  即使轮循条件没有满足,我们也可以通过使用&-f&选项来强制logrotate轮循日志文件,&-v&参数提供了详细的输出。  代码如下:  # logrotate -vf /etc/logrotate.d/log-filereading config file /etc/logrotate.d/log-file  reading config info for /var/log/log-file  Handling 1 logs  rotating pattern: /var/log/log-file forced from command line (5
rotations)  empty log files are rotated, old logs are removed  considering log /var/log/log-file  log needs rotating  rotating log /var/log/log-file, log-rotateCount is 5  dateext suffix '-'  glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'  renaming /var/log/log-file.5.gz to /var/log/log-file.6.gz (rotatecount 5,
logstart 1, i 5),  old log /var/log/log-file.5.gz does not exist  renaming /var/log/log-file.4.gz to /var/log/log-file.5.gz (rotatecount 5,
logstart 1, i 4),  old log /var/log/log-file.4.gz does not exist  . . .  renaming /var/log/log-file.0.gz to /var/log/log-file.1.gz (rotatecount 5,
logstart 1, i 0),  old log /var/log/log-file.0.gz does not exist  log /var/log/log-file.6.gz doesn't exist -- won't try to dispose of it  renaming /var/log/log-file to /var/log/log-file.1  creating new /var/log/log-file mode = 0644 uid = 0 gid = 0  running postrotate script  compressing log with: /bin/gzip  4. Logrotate的记录日志  logrotate自身的日志通常存放于/var/lib/logrotate/status目录。如果处于排障目的,我们想要logrotate记录到任何指定的文件,我们可以指定像下面这样从命令行指定。  代码如下:  # logrotate -vf &s /var/log/logrotate-status /etc/logrotate.d/log-file  5. Logrotate定时任务  logrotate需要的cron任务应该在安装时就自动创建了,我把cron文件的内容贴出来,以供大家参考。  代码如下:  # cat /etc/cron.daily/logrotate#!/bin/sh  # Clean non existent log file entries from status file  cd /var/lib/logrotate  test -e status || touch status  head -1 status
status.clean  sed 's/&//g' status | while read logfile date  do  [ -e &$logfile& ] && echo &&$logfile& $date&  done
status.clean  mv status.clean status  test -x /usr/sbin/logrotate || exit 0  /usr/sbin/logrotate /etc/logrotate.conf  小结一下,logrotate工具对于防止因庞大的日志文件而耗尽存储空间是十分有用的。配置完毕后,进程是全自动的,可以长时间在不需要人为干预下运行。本教程重点关注几个使用logrotate的几个基本样例,你也可以定制它以满足你的需求。  希望本文对你有所帮助。
热门搜索:
PS照片处理 还原照片色彩图文教程
怎样制作德罗斯特效应 PS视觉教程
新浪共享资料免积分下载教程图解
PS后期调色教程 打造水嫩皮肤美女图文教程
您可能会发现,经常看到在短视频有人在表演的时候说一些鼓励的话,然后就是双击666,听的您或许摸不清头脑,我就在这里为您解答一下,请给我点赞,让我解答更加有动力。
您是否熟悉我们生活的城市是怎么命名而来的呢?中国城市的命名可是有很深的文化底蕴和历史背景的,你都知道么?我从网上搜集了大量的城市名来源,让您好好的涨涨知识,您准备好了吗?
对于爱美人士来说,美白护肤是不分季节的,即使在冬季,依然需要做好皮肤护理工作。饮食调理是护肤的一项重要措施,那么冬天美白吃什么水果呢?接下来就和我一起来看看了解一下冬季美白吃什么水果好!
产妇顺产以后多久可以洗头发?有很多产妇为了防止自己受寒所以在产后不让自己洗头发,但是又特别难受,这篇文章讲述了产妇顺产以后多长时间可以洗头发,通过这篇文章了解产妇顺产以后多久可以洗头发吧。
阴阳师是现在相当火热的一款手游,最近阴阳师又有了新的更新,玩家可以通过挑战副本来获取妖刀姬樱雨刀舞皮肤。可是的很多人不知道阴阳师妖刀姬副本阵容是怎样的,下面就给大家来详细介绍吧。
阴阳师是现在很火热的一款手机游戏,这款游戏一直在更新完善,受到很多人的追捧,就在最近阴阳师又推出了小鹿男,小鹿男作为SSR式神,很多人对它还不是很了解,下面就给大家来介绍阴阳师小鹿男御魂以及阵容搭配吧。
我们在玩阴阳师完成悬赏任务的时候,都会要求玩家找到各种式神的位置,可是很多人不知道阴阳师跳跳哥哥在哪里刷、哪里多,下面就给大家来详细介绍吧,希望对大家玩游戏有所帮助。
京津冀及周边地区出现持续雾霾天气,很是让孕妈妈们担心。持续的雾霾天气对孕妇产生了很大的影响,那么雾霾天气对孕妇危害有多大?雾霾天气孕妇怎么办?下面的文章详细介绍 了雾霾天气对孕妇的危害,一起来看看吧。
我们知道宝宝刚刚出生的时候口腔里是没有牙齿的,一般孩子在四个月以后慢慢开始出牙,每个孩子的体质不一样,所以出牙的时间也是有所差异的,宝宝出牙的时候身体会出现一些症状,家长们要及时的护理好,下面一起来看看宝宝长牙的症状有哪些。
肚子上的赘肉看上去让人烦恼,尤其是对于想穿裙子的女生来说更是一件郁闷的事情。现在减肥的方法有很多,但是很多人并不知道专门瘦肚子的方法。那么,如何瘦肚子呢?下面就给大家介绍几种减肚子的方法吧。  rsyslog 是一个 syslogd 的多线程增强版。  现在Fedora和Ubuntu, rhel6默认的日志系统都是rsyslog了  rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件
  可以用一台服务器当日志服务器,别的机子的日志上传到上面去,也是用syslog功能,具体请查阅相关资料
  yum install rsyslog rsyslog-mysql &logrotate
  一般系统都已装好
我们先看一下它的进程::[root&~]# ps -ef | grep rsyslogd | grep -v greproot & & &1343 & &1 &0 12:09 ? & & & &00:00:00 /sbin/rsyslogd -c 5从上面命令的输出结果看到rsyslog执行时使用的参数是-c 5.它的意思是指定rsyslog运行(兼容)的版本号, 这个参数必须是第一个参数, 当然也可以省略, 默认为-c0, (命令行兼容sysklogd)这个参数是在文件/etc/sysconfig/rsyslog中指定
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode <span style="color: # by "-c 2"
# See rsyslogd(<span style="color: #) for more details
SYSLOGD_OPTIONS="-c 5"
日志轮替logrotate:程序:/usr/sbin/logrotate&配置:/etc/logrotate.conf& 和/etc/logrotate.d/&在crontab里排期: /etc/cron.daily/logrotate
11、/etc/logrotate.d下文件说明:例:[root@www ~]# vi /etc/logrotate.d/syslog/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler \/var/log/boot.log /var/log/cron {& sharedscripts& postrotate&&& /bin/kill -HUP `cat /var/run/syslogd.pid 2& /dev/null` 2& /dev/null || true&&& /bin/kill -HUP `cat /var/run/rsyslogd.pid 2& /dev/null` 2& /dev/null || true& endscript}
prerotate:在启动 logrotate 之前进行的指令,例如修改登录档的属性等动作;&postrotate:在做完 logrotate 之后启动的指令,例如重新启动 (kill -HUP) 某个服务!sharedscripts .... endscript 内放脚本。
#dateext 表示切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,如果没有这个配置项则会附加一个小数点加一个数字序号#copytruncate&&&& 表示在复制当前日志文件后,将日志文件清空;而不是将当前日志文件改名后创建一个新的
13、测试是否成功,强制轮替:[root@www ~]# logrotate -vf /etc/logrotate.d/admin14、注意:系统是自动一天检查一次,如果一天还没到,但达到size了也不轮替,如果要每小时检查一次,就得加入crontab里
格式::日志设备(类型).(连接符号)日志级别 & 日志处理方式(action)日志设备(可以理解为日志类型):———————————————————————-auth & & & &–pam产生的日志authpriv & &–ssh,ftp等登录信息的验证信息cron & & & &–时间任务相关kern & & & &–内核lpr & & & & –打印mail & & & &–邮件mark(syslog)–rsyslog服务内部的信息,时间标识news & & & &–新闻组user & & & &–用户程序产生的相关信息uucp & & & &–unix to unix copy, unix主机之间相关的通讯local 1~7 & –自定义的日志设备日志级别:———————————————————————-debug & & & –有调式信息的,日志信息最多info & & & &–一般信息的日志,最常用notice & & &–最具有重要性的普通条件的信息warning & & –警告级别err & & & & –错误级别,阻止某个功能或者模块不能正常工作的信息crit & & & &–严重级别,阻止整个系统或者整个软件不能正常工作的信息alert & & & –需要立刻修改的信息emerg & & & –内核崩溃等严重信息none & & & &–什么都不记录从上到下,级别从低到高,记录的信息越来越少详细的可以查看手册: man 3 syslog连接符号———————————————————————-.xxx: 表示大于等于xxx级别的信息.=xxx:表示等于xxx级别的信息.!xxx:表示在xxx之外的等级的信息Actions———————————————————————-1. 记录到普通文件或设备文件::*.* & & /var/log/file.log & # 绝对路径*.* & & /dev/pts/0测试: logger - ‘KadeFor is testing the rsyslog and logger ‘ & logger 命令用于产生日志2. 转发到远程::*.* @192.168.0.1 & & & & & &# 使用UDP协议转发到192.168.0.1的514(默认)端口*.* @@192.168.0.1:10514 & & # 使用TCP协议转发到192.168.0.1的10514(默认)端口3. 发送给用户(需要在线才能收到)::*.* & root*.* & root,kadefor,up01 & & # 使用,号分隔多个用户*.* & * & & # *号表示所有在线用户4. 忽略,丢弃::local3.* & ~ & &# 忽略所有local3类型的所有级别的日志5. 执行脚本::local3.* & &^/tmp/a.sh & & &# ^号后跟可执行脚本或程序的绝对路径# 日志内容可以作为脚本的第一个参数.# 可用来触发报警.. note::日志记录的顺序有先后关系!======================================================================一个标准的简单的配置文件======================================================================::*.mail.authpriv.cron.none & & &/var/log/messagesauthpriv.* & & & & & & & & & & & & & & & & & &/var/log/securemail.* & & & & & & & & & & & & & & & & & & & &/var/log/maillogcron.* & & & & & & & & & & & & & & & & & & & &/var/log/cron*.emerg & & & & & & & & & & & & & & & & & & & *uucp,news.crit & & & & & & & & & & & & & & & &/var/log/spoolerlocal7.* & & & & & & & & & & & & & & & & & & &/var/log/boot.log======================================================================实例: 指定日志文件, 或者终端======================================================================[root@kadefor ule-sa3]# vi /etc/rsyslog.conf[root@kadefor ule-sa3]# grep local3 !$grep local3 /etc/rsyslog.conflocal3.* & & & & & & & & & & & & & & & & & & & & & & & &/var/log/local3.log[root@kadefor ule-sa3]# rm -rf /var/log/local3.log[root@kadefor ule-sa3]# /etc/init.d/rsyslog reloadReloading system logger… & & & & & & & & & & & & & & & & [ &OK &][root@kadefor ule-sa3]# ls /var/log/local3.log/var/log/local3.log[root@kadefor ule-sa3]# logger -t ‘LogTest’ - ‘KadeFor is testing the rsyslog and logger’[root@kadefor ule-sa3]# cat /var/log/local3.logJun 10 04:55:52 kadefor LogTest: KadeFor is testing the rsyslog and logger[root@kadefor ule-sa3]#自己实验日志发送给某个终端======================================================================实例: &过滤特定的日志到文件, 忽略(丢弃)包含某个字符串的日志======================================================================# 过滤日志, 由:号开头:msg, contains, “error” /var/log/error.log:msg, contains, “error” ~ & & & & # 忽略包含error的日志:msg, contains, “user nagios” & ~:msg, contains, “user kadefor” & ~:msg, contains, “module-alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write” ~local3.* & &~PS.& & ~ & & & # 忽略所有的日志把包含’oracle’的日志保存在/var/log/oracle.log======================================================================实例: &使用模板来定义日志格式======================================================================定义默认的日志格式:
$template&myFormat,”%rawmsg%\n” &
$ActionFileDefaultTemplate&myFormat &
#如果不要$ActionFileDefaultTemplate myFormat这一行, 就需要像这样来使用模板:
#在日志文件后添加模板名, 并用;号分隔
$template&myFormat,”%rawmsg%\n” &
# The authpriv file has restricted access.
authpriv.* & & &/var/log/myFormat &
# Log all the mail messages in one place.
mail.* & & & & &/var/log/myFormat &
# Log cron stuff
cron.* & & & & &/var/log/myFormat &
# Everybody gets emergency messages
*.emerg & & & & & & & & & & & & & & & & & & & * &
# Save news errors of level crit and higher in a special file.
uucp,news.crit &/var/log/myFormat &
# Save boot messages also to boot.log
local7.* & & & &/var/log/boot.myFormat &
======================================================================实例: remote log 远程发送与接收:======================================================================如果要修改为非514的端口, 需要设置selinux只要在rsyslog.conf中加入*.* @192.168.0.10*.* @192.168.0.10:10514 & & # 带端口号*.* @@192.168.0.10 & & &# TCP但是没有定义保存在远程的哪一个文件啊?其实保存在什么文件, 那是远程日志服务器接收到日志之后它自己的事情了.例1:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^———————————————————————-Client(send):———————————————————————-::local3.* & @@192.0.2.1:10514# if you need to forward to other systems as well, just# add additional config lines:# *.* & @@other-server.example.net:10514# Log anything (except mail) of level info or higher.# Don’t log private authentication messages!*.mail.authpriv.cron.none & & &/var/log/messages# The authpriv file has restricted access.authpriv.* & & & & & & & & & & & & & & & & & &/var/log/secure# Log all the mail messages in one place.mail.* & & & & & & & & & & & & & & & & & & & &/var/log/maillog# Log cron stuffcron.* & & & & & & & & & & & & & & & & & & & &/var/log/cron# Everybody gets emergency messages*.emerg & & & & & & & & & & & & & & & & & & & *# Save news errors of level crit and higher in a special file.uucp,news.crit & & & & & & & & & & & & & & & &/var/log/spooler# Save boot messages also to boot.loglocal7.* & & & & & & & & & & & & & & & & & & &/var/log/boot.log———————————————————————-Server(receive): &1&———————————————————————-::# for TCP use:$modload imtcp$InputTCPServerRun 10514# for UDP use:$modload imudp$UDPServerRun 514# Log anything (except mail) of level info or higher.# Don’t log private authentication messages!*.mail.authpriv.cron.none & & &/var/log/messages# The authpriv file has restricted access.authpriv.* & & & & & & & & & & & & & & & & & &/var/log/secure# Log all the mail messages in one place.mail.* & & & & & & & & & & & & & & & & & & & &/var/log/maillog# Log cron stuffcron.* & & & & & & & & & & & & & & & & & & & &/var/log/cron# Everybody gets emergency messages*.emerg & & & & & & & & & & & & & & & & & & & *# Save news errors of level crit and higher in a special file.uucp,news.crit & & & & & & & & & & & & & & & &/var/log/spooler# Save boot messages also to boot.loglocal7.* & & & & & & & & & & & & & & & & & & &/var/log/boot.loglocal3.* & &/var/log/local3.log & & # 测试用例2 (仅做了解, 不做要求)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#配置服务端(接收)———————————————————————-vi /etc/rsyslog.conf & & & &#在文件开始加上,同时确保514端口能够被客户端用tcp访问$ModLoad imtcp.so & & & & & & &# needs to be done just once #使用tcp方式$InputTCPMaxSessions 500 & &# tcp接收连接数为500个$InputTCPServerRun 514 & & &# tcp接收信息的端口$template logformat,”%TIMESTAMP:::date-mysql% %FROMHOST-IP%%msg%\n” & & # 定义一个名为logformat模板, 为信息加上日志时间$template DynFile,”/var/log/tlog%$year%%$month%%$day%.log” & & # 定义日志文件的名称,按照年月日:rawmsg, contains, “sdns_log” ?DynFlogformat & &# 把rawmsg(也可以使用msg)日志中包含sdns_log标志的信息写到DynFile定义的日志文件里:rawmsg, contains, “sdns_log” &~ & & & & & & & & & & # 这个表示丢弃包含sdns_log标志的信息, 一般都加上它, 以免多个日志文件记录重复的日志#配置客户端(发送)———————————————————————-vi /etc/rsyslog.conf &#在文件开始加上#把包含sdns_log的信息通过tcp发到192.168.1.2 @@表示tcp @表示udp:rawmsg, contains, “sdns_log” & & & @@192.168.1.2 & & & # 默认514端口#这个表示丢弃包含sdns_log标志的信息,防止这个信息写到本机的/var/log/message:rawmsg, contains, “sdns_log” & & & ~#测试———————————————————————-在客户端上执行logger - “sdns_log 34334″在服务端的/var/log/目录里是否有tlog*日志产生补充:———————————————————————-如果要把不同服务器发送过来的日志保存到不同的文件, 可以这样操作::fromhost-ip, isequal, “192.168.0.160″ /var/log/host160.log:FROMHOST-IP, isequal, “192.168.0.161″ /var/log/host161.log:FROMHOST-IP, startswith, “192.168.1.” /var/log/network1.log:FROMHOST-IP, startswith, “192.168.2.” /var/log/network2.log练习:======================================================================1. 实现把ssh服务的日志自定义保存到/var/log/newsshd.log (先不做)2. mail日志保存在远程日志服务器/var/log/newmail.log3. 过滤日志, 如果日志包含有”daydayup”, 则执行脚本/tmp/a.sh脚本内容:#!/bin/bashecho &“KO::** $1″ & /dev/tty2======================================================================logrotate服务======================================================================rotate 轮换,日志切换logrotate服务的启动方式logrotate是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为“转储”。我们可以根据日志的大小,或者根据其使用的天数来转储。logrotate 的执行由crond服务实现。在/etc/cron.daily目录中,有个文件logrotate,它实际上是个shell script,用来启动logrotate。logrotate程序每天由cron在指定的时间(/etc/crontab)启动。因此,使用ps是无法查看到logrotate的。如果它没有起来,就要查看一下crond服务有没有在运行。在执行logrotate时,需要指定其配置文件/etc/logrotate.conf这 个配置文件的注释写得很清楚,没有必要再罗嗦了。只想强调下面这行,它的作用包含存放在/etc/logrotate.d目录下面的配置文件,不可或缺。 如果你安装了一个新的服务,它的日志转储的规则可以建立一个专门的配置文件,放在/etc/logrotate.d下面。它其实也因为下面的这句话,在 logrotate服务启动时被读取。每个存放在/etc/logrotate.d目录里的文件,都有上面格式的配置信息。在{}中定义的规则,如果与logrotate.conf中的冲突,以/etc/logrotatate.d/中的文件定义的为准。logrotate启动脚本放在 /etc/cron.daily/logrotate 中,可人工执行命令进行测试:/usr/sbin/logrotate -f /etc/logrotate.confdateext表示转储文件会以日期来结束*::[root@kadefor log]# vim /etc/logrotate.conf# see “man logrotate” for details# rotate log files weeklyweekly & & & & &–每周轮转一次# keep 4 weeks worth of backlogsrotate 4 & & & &–保留四个# create new (empty) log files after rotating old onescreate & & & & &–rotate后,创建一个新的空文件# uncomment this if you want your log files compressed#compress & & & –默认是不压缩的# RPM packages drop log rotation information into this directoryinclude /etc/logrotate.d & & & &–这个目录下面配置文件生效# no packages own wtmp — we’ll rotate them here/var/log/wtmp { & & & & & & –定义/var/log/wtmp这个日志文件monthly & & & & & & & & –每月轮转一次,取代了上面的全局设定的每周轮转一次minsize 1M & & & & & & &–定义日志必须要大于1M大小才会去轮转create 0664 root utmp & –新的日志文件的权限,属主,属主rotate 1 & & & & & & & &–保留一个,取代了上面的全局设定的保留四个}/var/log/btmp {missingok & & & –如果日志丢失, 不报错monthlycreate 0600 root utmprotate 1}::# sample logrotate configuration filecompress# 全局设置, 压缩/var/log/messages {rotate 5 & & # 保留5份日志weekly & & & # 每周轮换一次postrotate & # 轮换之后重启syslogd服务/usr/bin/killall -HUP syslogd# rhel6中为:/bin/kill -HUP `cat /var/run/syslogd.pid 2& /dev/null` 2& /dev/null || true# 可查看/etc/logrotate.d/下的配置文件endscript}“/var/log/httpd/access.log” /var/log/httpd/error.log { & # &指定多个文件, 如果有特殊字符需要用单引号rotate 5mail&size 100k & & & &# 超过100k后切换日志, 并把老的日志发送邮件给sharedscripts & &# 共享脚本. 下面的postrotate脚本只运行一次.postrotate/usr/bin/killall -HUP httpdendscript}/var/log/news/* { & &# 少用通配符, 因会它会包括已经切换过的日志, 要用的话最好在*号后加上扩展名, 如*.logmonthlyrotate 2olddir /var/log/news/oldmissingokpostrotatekill -HUP ‘cat /var/run/inn.pid‘endscriptnocompress}例:修改/etc/logrotate.conf/var/log/wtmp {monthlyminsize 10kcreate 0664 a brotate 2}logrotate -f /etc/logrotate.conf &–强制轮转logrotate -vf /etc/logrotate.conf & &–再加一个-v参数查看轮转的过程———————————[root@kadefor log]# vim /etc/logrotate.d/syslog/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {sharedscripts & –表示切换时脚本只执行一次postrotate & & &–表示rotate后执行的脚本/bin/kill -HUP `cat /var/run/syslogd.pid 2& /dev/null` 2& /dev/null || true/bin/kill -HUP `cat /var/run/rsyslogd.pid 2& /dev/null` 2& /dev/null || trueendscript & & & –表示脚本结束}[root@kadefor log]# logger -t ‘aaaa’ ‘bbbbbb’–在日志里加一个内容tag和内容[root@kadefor log]# tail /var/log/messagesJun 12 19:38:55 kadefor dhclient[3166]: bound to 192.168.1.101 — renewal in 3384 seconds.Jun 12 20:34:22 kadefor aaaa: bbbbbb
注意,prerotate和postrotate必须和sharescripts...endscript一起用。上面的信息表示日志文件转储后,重启rsyslogd服务。
&&&&& 每个存放在/etc/logrotate.d目录里的文件,都有上面格式的配置信息。在{}中定义的规则,如果与logrotate.conf中的冲突,以/etc/logrotatate.d/中的文件定义的为准
阅读(...) 评论()}

我要回帖

更多关于 卓伟xl2746s 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信