您的位置:首页 > 运维架构 > Linux

Linux下使用logrotate实现日志切换

2017-02-22 14:25 591 查看
运维过程中经常会发现一些 C 程序,每天会生产这样的日志: /home/admin/app_name/logs/access_log

那么天长地久,如果这个程序不会自动去轮转这个日志,那么这个日志文件则会越来越大,我们其实可以使用 linux 里面的 logrotate 来实现自定义日志轮转.

方法如下:

一、建立轮转配置文件:

#vi /etc/logrotate.d/app_name
/home/admin/app_name/logs/access_log
{
daily
dateext
copytruncate
nocompress
rotate 15
}
// /home/admin/app_name/logs/access_log 指明日志文件的绝对路径
// daily 表示日志每天轮转一次
// dateext 表示切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,如果没有这个配置项则会附加一个小数点加一个数字序号
// copytruncate 表示在复制当前日志文件后,将日志文件清空;而不是将当前日志文件改名后创建一个新的
// nocompress 表示不压缩切换后的日志文件
// rotate 15 表示保存15份旧的日志文件

// 更多配置请参考 man logrotate 手册.

二、重启 syslogd 服务 (或 syslog-ng)

service syslogd restart
/usr/bin/killall -HUP syslogd
service syslog-ng restart
/usr/bin/killall -HUP syslog-ng
三、测试 (执行配置文件,强制进行一次日志轮转):

logrotate -f /etc/logrotate.d/app_name
四、扩展其他日志切换操作:

#ls /etc/logrotate.d/
acpid conman cups httpd mgetty ppp psacct rpm samba sa-update setroubleshoot snmpd syslog-ng tsar up2date

# 针对某个配置对其日志进行切换:
logrotate -f config_name

# 强制切换所有配置:
logrotate -f /etc/logrotate.conf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: