推荐一款日志切割神器,很好很强大( 五 )
/usr/bin/logger -f logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit
最后最后重启下cron服务:
[root@huanqiu_test ~]# /etc/init.d/crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]
logrotate默认自动切割生效时间
Logrotate是基于CRON来运行的 , 其脚本是/etc/cron.daily/logrotate , 实际运行时 , Logrotate会调用配置文件/etc/logrotate.conf 。
[root@test ~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=http://kandian.youth.cn/index/$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
Logrotate是基于CRON运行的 , 所以这个时间是由CRON控制的 , 具体可以查询CRON的配置文件/etc/anacrontab(老版本的文件是/etc/crontab)
[root@test ~]# cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45 //这个是随机的延迟时间 , 表示最大45分钟
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22 //这个是开始时间
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
第一个是Recurrence period
第二个是延迟时间
所以cron.daily会在3:22+(5,45)这个时间段执行 , /etc/cron.daily是个文件夹
通过默认/etc/anacrontab文件配置 , 会发现logrotate自动切割日志文件的默认时间是凌晨3点多 。
==================================================================================================
现在需要将切割时间调整到每天的晚上12点 , 即每天切割的日志是前一天的0-24点之间的内容 。
操作如下:
[root@kevin ~]# mv /etc/anacrontab /etc/anacrontab.bak //取消日志自动轮转的设置
[root@G6-bs02 logrotate.d]# cat nstc_nohup.out
/data/nstc/nohup.out {
rotate 30
dateext
daily
copytruncate
compress
notifempty
missingok
}
[root@G6-bs02 logrotate.d]# cat syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/history
{
sharedscripts
compress
rotate 30
daily
dateext
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/` 2> /dev/ || true
endscript
}
结合crontab进行自定义的定时轮转操作
[root@kevin ~]# crontab -l
#log logrotate
59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.d/syslog >/dev/ 2>
[root@localhost ~]# sh /root/log_clean.sh fss nginx 3
[root@localhost ~]# ls /var/log/fss/nginx/
nginx.20190506.log.gz nginx.20190507.log.gz nginx.20190508.log.gz
还可以针对日志保留策略 , 调整成日志清理脚本 。
推荐用的Nginx日志轮转方法 [部署在nginx的日志目录下]
#!/bin/bash
yesterday=`date -d "-1 days" +'%Y%m%d'`
cd `dirname $0`
basedir=`pwd`
logdir="${basedir}/bak"
bindir="${basedir%/*}/sbin"
mkdir -p ${logdir}
for log in `ls *.log 2>/dev/`
do
mv ${log} ${logdir}/${log}.${yesterday}.bak
# gzip ${logdir}/${log}.${yesterday}
done
${bindir}/nginx -s reload
cd ${logdir}
find . -type f -name "*.bak" -mtime +7 | xargs rm -f
来源 |
文章插图
之前 , 给大家发过三份Java面试宝典 , 这次新增了一份 , 目前总共是四份面试宝典 , 相信在跳槽前一个月按照面试宝典准备准备 , 基本没大问题 。
- 《java面试宝典5.0》(初中级)
- 《350道Java面试题:整理自100+公司》(中高级)
- 《资深java面试宝典-视频版》(资深)
- 《Java[BAT]面试必备》(资深)
内容包含java基础、javaweb、mysql性能优化、JVM、锁、百万并发、消息队列 , 高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper、数据结构、限流熔断降级等等 。
- 推出|三星可能会推出一款名为“Galaxy Smart Tag”的追踪器
- 短板|年底换机好推荐,真无短板机称号iQOO 5拿下了
- 机型|三星将取消Note系列旗舰身份 新机Note21仅一款机型
- 红米|红米K40Pro再确认,骁龙875+144Hz柔性直屏,又是一款香饽饽
- 最新|2020年12月最新购机推荐,这六款各有优点,实用党首选
- 持续|十一月推荐手机系列,iQOO今年多款机型热度持续
- 第一款骁龙888游戏手机:红魔6官宣
- 极客|极具黑科技含量的AI录音笔推荐:搜狗AI录音笔S1,极客最爱
- 猜到|vivo今年卖的最好的3款手机,最后一款是黑马,你猜到了吗?
- 算法|为什么长视频没有强算法推荐的产品