推荐一款日志切割神器,很好很强大( 四 )
{
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/` 2> /dev/ || true
endscript
}
[root@huanqiu_web1 ~]# ll /var/log/messages*
-rw------- 1 root root 34248975 Jan 19 18:42 /var/log/messages
-rw------- 1 root root 51772994 Dec 25 03:11 /var/log/messages-20161225
-rw------- 1 root root 51800210 Jan 1 03:05 /var/log/messages-20170101
-rw------- 1 root root 51981366 Jan 8 03:36 /var/log/messages-20170108
-rw------- 1 root root 51843025 Jan 15 03:40 /var/log/messages-20170115
[root@huanqiu_web1 ~]# ll /var/log/cron*
-rw------- 1 root root 2155681 Jan 19 18:43 /var/log/cron
-rw------- 1 root root 2932618 Dec 25 03:11 /var/log/cron-20161225
-rw------- 1 root root 2939305 Jan 1 03:06 /var/log/cron-20170101
-rw------- 1 root root 2951820 Jan 8 03:37 /var/log/cron-20170108
-rw------- 1 root root 3203992 Jan 15 03:41 /var/log/cron-20170115
[root@huanqiu_web1 ~]# ll /var/log/secure*
-rw------- 1 root root 275343 Jan 19 18:36 /var/log/secure
-rw------- 1 root root 2111936 Dec 25 03:06 /var/log/secure-20161225
-rw------- 1 root root 2772744 Jan 1 02:57 /var/log/secure-20170101
-rw------- 1 root root 1115543 Jan 8 03:26 /var/log/secure-20170108
-rw------- 1 root root 731599 Jan 15 03:40 /var/log/secure-20170115
[root@huanqiu_web1 ~]# ll /var/log/spooler*
-rw------- 1 root root 0 Jan 15 03:41 /var/log/spooler
-rw------- 1 root root 0 Dec 18 03:21 /var/log/spooler-20161225
-rw------- 1 root root 0 Dec 25 03:11 /var/log/spooler-20170101
-rw------- 1 root root 0 Jan 1 03:06 /var/log/spooler-20170108
-rw------- 1 root root 0 Jan 8 03:37 /var/log/spooler-20170115
tomcat日志切割一例
[root@huanqiu-backup ~]# cat /etc/logrotate.d/tomcat
/Data/app/tomcat-7-huanqiu/logs/catalina.out {
rotate 14
daily
copytruncate
compress
notifempty
missingok
}
[root@huanqiu-backup ~]# ll /Data/app/tomcat-7-huanqiu/logs/catalina.*
-rw-r--r--. 1 root root 0 Jan 19 19:11 /Data/app/tomcat-7-huanqiu/logs/catalina.out
-rw-r--r--. 1 root root 95668 Jan 19 19:11 /Data/app/tomcat-7-huanqiu/logs/catalina.out.1.gz
早期用过的nginx日志处理一例
[root@letv-backup ~]# vim /letv/sh/cut_nginx_log.sh
#!/bin/bash
# 你的日志文件存放目录
logs_path="/letv/logs/"
# 日志文件的名字 , 多个需要空格隔开
logs_names=(error access pv_access)
dates=`date -d "yesterday" +"%Y%m%d"`
mkdir -p ${logs_path}$dates/
num=${#logs_names[@]}
for((i=0;i
mv ${logs_path}${logs_names[i]}.log ${logs_path}$dates/${logs_names[i]}.log
done
#nginx平滑重启
kill -USR1 `cat /letv/logs/nginx/nginx.pid`
结合crontab定时执行
[root@letv-backup ~]# crontab -e
#nginx日志切割
00 00 * * * cd /letv/logs;/bin/bash /letv/sh/cut_nginx_log.sh > /dev/ 2>$1
3、尝试解决logrotate无法自动轮询日志的办法现象说明:
使用logrotate轮询nginx日志 , 配置好之后 , 发现nginx日志连续两天没被切割 , 这是为什么呢??
然后开始检查日志切割的配置文件是否有问题 , 检查后确定配置文件一切正常 。
于是怀疑是logrotate预定的cron没执行 , 查看了cron的日志 , 发现有一条Dec 7 04:02:01 www crond[18959]: (root) CMD (run-parts /etc/cron.daily)这样的日志 , 证明cron在04:02分时已经执行/etc/cron.daily目录下的程序 。
接着查看/etc /cron.daily/logrotate(这是logrotate自动轮转的脚本)的内容:
[root@huanqiu_test ~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf >/dev/ 2> then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
没有发现异常 , 配置好的日志轮转操作都是由这个脚本完成的 , 一切运行正常 , 脚本应该就没问题 。
直接执行命令:
[root@huanqiu_test ~]# /usr/sbin/logrotate /etc/logrotate.conf
这些系统日志是正常轮询了 , 但nginx日志却还是没轮询 。
接着强行启动记录文件维护操作 , 纵使logrotate指令认为没有需要 , 应该有可能是logroate认为nginx日志太小 , 不进行轮询 。
故需要强制轮询 , 即在/etc/cron.daily/logrotate脚本中将 -t 参数替换成 -f 参数
[root@huanqiu_test ~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf >/dev/ 2> then
- 推出|三星可能会推出一款名为“Galaxy Smart Tag”的追踪器
- 短板|年底换机好推荐,真无短板机称号iQOO 5拿下了
- 机型|三星将取消Note系列旗舰身份 新机Note21仅一款机型
- 红米|红米K40Pro再确认,骁龙875+144Hz柔性直屏,又是一款香饽饽
- 最新|2020年12月最新购机推荐,这六款各有优点,实用党首选
- 持续|十一月推荐手机系列,iQOO今年多款机型热度持续
- 第一款骁龙888游戏手机:红魔6官宣
- 极客|极具黑科技含量的AI录音笔推荐:搜狗AI录音笔S1,极客最爱
- 猜到|vivo今年卖的最好的3款手机,最后一款是黑马,你猜到了吗?
- 算法|为什么长视频没有强算法推荐的产品