一、nginx日志清理
sudo vim /etc/logrotate.d/nginx
#########################################
/data/openresty/nginx/logs/*.log {
daily
dateext
missingok
compress
delaycompress
rotate 7
sharedscripts
postrotate
if [ -f /data/openresty/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /data/openresty/nginx/logs/nginx.pid`
fi
endscript
}
#########################################
查看是否生效: sudo logrotate -f /etc/logrotate.d/nginx
备注: kill -USR1 `cat /data/openresty/nginx/logs/nginx.pid` 会重新打开日志文件
参数说明:
daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
rotate 转储次数,超过将会删除最老的那一个
missingok 忽略错误,如“日志文件无法找到”的错误提示
dateext 切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期
compress 通过gzip 压缩转储旧的日志
delaycompress 当前转储的日志文件到下一次转储时才压缩
notifempty 如果日志文件为空,不执行切割
sharedscripts 只为整个日志组运行一次的脚本
prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
size size当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).
二、gc日志清理
vim remove_gc_log.sh
if [ -z "$1" ];then
echo "no file path pattern supplied"
exit 2
fi
file_pattern=$1
for file in $file_pattern; do
fuser -s "$file" || rm -rf "$file"
done
0 12 * * * /opt/scripts/remove_gc_log.sh "/var/log/hadoop/hdfs/gc.log*"
0 12 * * * /opt/scripts/remove_gc_log.sh "/var/log/hbase/gc.log*"
0 12 * * * /opt/scripts/remove_gc_log.sh "/opt/apache-kylin-2.5.2-bin-hbase1x/logs/kylin.gc.*"
0 12 * * * /opt/scripts/remove_gc_log.sh "/var/log/hadoop/hdfs/hadoop-hdfs*.log.*[3-9,0]"
0 12 * * * /opt/scripts/remove_gc_log.sh "/var/log/hadoop-yarn/yarn/yarn-yarn*.log.*[3-9,0]"0 12 * * * rm -f /var/log/zabbix/*`date -d 30-days-ago +\%Y-\%m-\%d`*
0 12 * * * rm -f /elk/eshot02/logs/flume/*/*`date -d 7-days-ago +\%Y-\%m-\%d`*
0 12 * * * rm -f /var/log/hadoop-yarn/yarn/*.log.`date -d 2-days-ago +\%Y-\%m-\%d`
0 12 * * * rm -f /var/log/hadoop/hdfs/hdfs-audit.log.`date -d 2-days-ago +\%Y-\%m-\%d`
0 12 * * * rm -f /data1/kafka-manager/logs/*`date -d 7-days-ago +\%Y-\%m-\%d`*