Akiraka Akiraka
  • 首页
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • 大数据
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • 微服务
    • Kubernetes
    • Helm
  • Other
  • Quark
  • 首页
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • 大数据
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • 微服务
    • Kubernetes
    • Helm
  • Other
  • Quark
首页 › Linux › Nginx日志批量切割与批量打包脚本

Nginx日志批量切割与批量打包脚本

Akiraka1年前
#!/bin/bash
# Nginx 日志切割脚本
# Make at:2017.6.21
# Writer:AKA
# 可以对Nginx日志目录下多日志进行切割,备份压缩,到期自动删除没用的日志
# website:www.akiraka.com

#Nginx 日志存放路径
LOG_DIR=/data/wwwlogs
#Nginx 日志切割后存储路径
BAK_DIR=/data/logsbak
#Nginx PID路径
PID_DIR=/usr/local/nginx/logs/nginx.pid
#日志保存天数
SAVE_DAYS=10
#获取日期
DATE=`date -d "yesterday" +"%Y%m%d"`

#判断Nginx是否有日志存放目录
if [[ ! -d $BAK_DIR ]];then
  mkdir -p $BAK_DIR
  echo "$BAK_DIR 目录创建成功!"
else
  echo "$BAK_DIR 目录已经存在,无需创建!"
fi

#进入#Nginx 日志存放路径
cd $LOG_DIR/
#将Nginx目录下的日志批量重命名,log后缀加上日期 这个是rename c版本
rename ".log" ".log-$DATE" *.log
将Nginx目录下的日志批量重命名,log后缀加上日期 perl版本 支持正则
rename 's/.log$/.log-$DATE/' *
#将重命名的日志批量打包
ls -F | awk -F '/' '{print $1 ".tar.gz"}''{print $1"/"}' | xargs -n2 tar czvf
#因为批量压缩不知道怎么压缩到指定文件夹中,所以单独执行一次移动文件到指定文件夹
mv *.log-$DATE.tar.gz $BAK_DIR/
#删除日志文件,因为已经压缩好了文件就没用了,所以把它删除掉
rm -f *.log-$DATE

#删除设置保存天数日志
find $BAK_DIR/ -mtime +$SAVE_DAYS -exec rm -rf {} \;

#平滑重启Nginx服务
/usr/local/nginx/sbin/nginx -s reload

原生打包方法

cat > /etc/logrotate.d/nginx << EOF
/data/wwwlogs/*nginx.log {
  daily
  rotate 5
  missingok
  dateext
  compress
  notifempty
  sharedscripts
  postrotate
    [ -e /var/run/nginx.pid ] && kill -USR1 \`cat /var/run/nginx.pid\`
  endscript
}
EOF
#linux#nginx#shell
0
分享
Akiraka 站长
文章 121评论 10
相关文章
  • Docker 修改默认存储路径
  • Centos/Ubuntu Linux 系统 根目录扩容方法
  • 搭建 Redis 主从搭建配置
  • Ubuntu 与 Centos Vim 配置
  • Docker 常用命令
Akiraka
站长
本人擅长 Ai、Au、Fl、Ae、Pr、Ps 等软件的安装与卸载,精通 CSS、JavaScript、PHP、Python、Shell、Go 等单词的拼写,熟悉 Windows、Linux、Mac、Android、IOS 等系统的开关机!
121文章
10评论
47获赞
想找什么搜一下
文章聚合
kubernetes Node 宕机 Pod 驱离
3月前
Windows 10 安装 Mysql 5.7. 数据库教程
1年前
RocketMQ 集群容器多机编排主主
3月前
Elasticsearch X-Pack 插件破解
12月前
按时间段拉黑Nginx IP地址
1年前
微信小程序
微信小程序
标签云
brew cdh centos cmd docker docker compose elasticsearch elk filebase filebeat gitlab grafana hadoop helm hive hue jdk jenkins k8s kibana kubernetes liniux linux logstash mac mikrotik mydumper mysql nfs nginx openssl oss php pip pyspark python RabbitMQ redis rocketmq shell Spark ubuntu windows ZooKeeper 容器编排
Copyright © 2019-2021 Akiraka. Designed by nicetheme. 沪18036911号