推荐一款日志切割神器,很好很强大( 五 )

/usr/bin/logger -f logrotate "ALERT exited abnormally with [$EXITVALUE]"fiexit 最后最后重启下cron服务:
[root@huanqiu_test ~]# /etc/init.d/crond restartStopping 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.confEXITVALUE=http://kandian.youth.cn/index/$?if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"fiexit 0Logrotate是基于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/shPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# the maximal random delay added to the base delay of the jobsRANDOM_DELAY=45 //这个是随机的延迟时间 , 表示最大45分钟# the jobs will be started during the following hours onlySTART_HOURS_RANGE=3-22 //这个是开始时间#period in days delay in minutes job-identifier command1 5 cron.daily nice run-parts /etc/cron.daily7 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 30dateextdailycopytruncatecompressnotifemptymissingok}[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 logrotate59 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/bashyesterday=`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 reloadcd ${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、数据结构、限流熔断降级等等 。