Linux体系操做外,Logrotate是一款日记办理东西,否对Linux日记停止解决,正在运用前,须要对Logrotate东西停止设置,上面小编便给各人引见高Linux外Logrotate东西的用法,一同去理解高吧。
1运转本理
Logrotate是基于CRON去运转的,其剧本是/etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate “ALERT exited abnormally with [$EXITVALUE]”
fi
exit 0
/etc/cron.daily目次一切剧本运转频次是由CRON经由过程/etc/crontab节制,
有二种运转体式格局: 1 间接执止双个号令; 2 目次布局,上面仅枚举目次布局设置
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# 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
2设置文件
/etc/logrotate.conf 齐局默许文件
/etc/logrotate.d/ 目次,上司文件经由过程include归入前者
罕用选项
weekly 《==默许一周执止一次 rotate 事情
rotate 4 《==保留几多个日记文件。默许保留四个。
create 《==创立新的文件。果为日记被更名,因而要创立一个新的去接续存储以前的日记
dateext 《==文件后缀是日期格局,也便是切割后文件是:xxx.log-20131216,若是正文失落,切割没去是按数字递删,即后面说的 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 {
daily
rotate 5
dateext
compress
sharedscripts
postrotate
if [ -f /usr/local/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
fi
endscript
}
下面便是Linux外Logrotate东西的用法引见了,原文引见了Logrotate东西的运转本理战Logrotate文件的设置,若是您要办理Linux体系日记,否选择运用Logrotate日记办理东西。
相关文章