tomcat,nginx日志定时清理

1. Crontab定时任务

   Crontab 基本语法

  t1 t2 t3 t4 t5 program
  • 其中 t1 是表示分钟,t2 表示小时,t3 表示一个月份中的第几日,t4 表示月份,t5 表示一个星期中的第几天。program 表示要执行的程序。
  • 当 t1 为 * 时表示每分钟都要执行 program,t2 为 * 时表示每小时都要执行程序,其馀类推
  • 当 t1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,t2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
  • 当 t1 为 */n 时表示每 n 分钟个时间间隔执行一次,t2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
  • 当 t1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,t2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推

2. Tomcat日志清理脚本

  Tomcat日志随着项目运行时长越来越多,访问量大时很可能撑满硬盘。下面贴一个自用的Tomcat日志清理脚本。

 1 #!/bin/sh
 2
 3 #日志文件所在目录
 4 #path=/usr/local/tomcat/apache-tomcat-8.5.32/logs
 5 path=/usr/local/tomcat/apache-tomcat-8.5.32/logs
 6
 7 cd ${path}
 8
 9 #catalina.out日志备份
10 #获取前7天的日期
11 bak_date=`date +%Y-%m-%d -d "7 days ago"`
12 #备份catalina.out日志,后面添加日期
13 #cp catalina.out catalina.out.${bak_date}.log
14 #清空catalina.out日志文件
15 echo > catalina.out
16
17 #7天之前的日志文件删除
18 #获取7天之前的日期
19 del_date=`date +%Y-%m-%d -d "7 days ago"`
20 #获取文件名中的日期字符串,然后对此时间进行相应的操作,localhost_access_log的后缀名一般为txt文件,这里包括txt文件
21 for n in `ls *.log *.txt -1`;do
22     m=`echo $n | awk -F. ‘{print $(NF-1)}‘`
23     m=`echo ${m:0-10}`
24     if [ ! $m ]; then
25         echo "IS NULL"
26         continue
27     fi
28     if [[ $m < $del_date || $m = $del_date ]];then
29         echo file $n will be deleted.
30         rm -rf $n
31     fi
32 done

Tomcat清理脚本

3.  Nginx日志切割,清理脚本

  Nginx不同Tomcat日志,不会定时切割日志,所有的日志都会放在access.log和error.log中。在排除问题时,会很不方便。下面贴一个自用的Nginx日志切割清理脚本。

 1 #!/bin/bash
 2
 3 #nginx的错误日志备份
 4 cp /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error-$(date -d "yesterday" +"%Y-%m-%d").log
 5 cat /dev/null > /usr/local/nginx/logs/error.log
 6
 7 #将nginx的访问日志备份
 8 cp /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access-$(date -d "yesterday" +"%Y-%m-%d").log
 9 cat /dev/null > /usr/local/nginx/logs/access.log
10
11 #清楚3天前的日志备份文件
12 find /usr/local/nginx/logs/ -mtime +3 -type f -name \*.log | xargs rm -f

Nginx切割,清理日志

4.   Crontab定时任务编写

  Crontab语法详细介绍请参考百度--

#进入crontab编写界面
crontab -e

#编写crontab执行语句,此处以nginx清理脚本为例
#/home/crontab/clean_nginx_log.sh是我脚本位置,替换下即可
1 0 * * * /bin/sh /home/crontab/clean_nginx_logs.sh >> /opt/cut_nginx_log.log 2>&1

#保存退出,启动
:wq
service crond start

Crontab编写

原文地址:https://www.cnblogs.com/xiaobingblog/p/11419243.html

时间: 2024-10-26 20:55:01

tomcat,nginx日志定时清理的相关文章

nginx日志定时切割

关于nginx日志定时切割.一般有两种方案,第一用logrotate,它是一个linux系统日志的管理工具.它可以切割.压缩等其他软件的日志文件软件:logrotate是基于crontab运行的,所以这个时间点是由crontab控制的,具体可以查询crontab的配置文件/etc/anacrontab.第二种用shell脚本定时切割. 第一种方案:logrotate 1.安装logrotate,我这里是centos直接用:yum -y install logroate 2.安装成功后.配置log

linux 日志定时清理脚本

工作中经常会碰到服务日志占满服务器磁盘,如果不去清理,服务就可能无法正常工作.适当提高日志的打印级别,如info级别提高到warn可以临时缓解下,但也不长久之际, 还得写个脚本定时清理下. #!/bin/bash #clearLog.sh nginxDir=/usr/local/nginx/logs/* devInfo=($(df -l | awk '{print $1}')) #日志所处的磁盘 perInfo=($(df -l | awk '{print int($5)}')) #磁盘使用率

nginx日志定时切割脚本

1 编写脚本cut_nginx_log.sh,放置在nginx/sbin/目录下,修改成可执行 #!/bin/bash # This script run at 00:00 #放置日志目录 logs_path="/var/www/logs" #nginx 目录 nginx_path="/var/www/nginx" #创建日期目录 mkdir -p ${logs_path}/$(date -d "yesterday" +"%Y.%m&q

Linux下添加shell脚本使得nginx日志每天定时切割压缩

Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志,还是使用"GoAccess"等工具对日志进行分析都将会变得非常麻烦.因此,每天定时对nginx日志进行切割压缩就非常有必要了 二 实现 我的实现思路是每天晚上接近12点时定时执行脚本.其脚本内容就是将当前的nginx日志先按照当天日期进行重命名接着进行压缩,最后是新建空白的ngi

linux-实现日志的定时清理

定时清理分2步骤 1.查找出需要清理的文件 2.系统增加定时执行任务 第一步.vi dellog.sh 第二步.查找需要清理的文件 录入:find /var/log/nginx -mtime +7 -type f -name \*.log | xargs rm -f 其中 -mtime +7,为查找7天前的文件 http://blog.sina.com.cn/s/blog_716358dc0100lj5p.html -type f ,类型为文件 http://zhidao.baidu.com/l

Linux系统中nginx日志每天定时切割实现方法详解

本文和大家分享的是使用Linux中自带的命令logrotate对Nginx日志进行切割相关实现方法,希望帮助大家更好的学习linux系统. Nginx安装目录:/usr/local/nginx/ Nginx日志目录:/usr/local/nginx/logs/./usr/local/nginx/logs/nginx_logs/ 1.添加nginx日志切割脚本 cd /etc/logrotate.d #进入目录 vi /etc/logrotate.d/nginx #编辑脚本 /usr/local/

oracle定时清理日志操作

下面介绍下oracle下定时清理归档日志文件操作. 假设:归档日志满,清空归档日志办法如下. 第一步:在c盘下面建立一个RMAN_DEL.txt文件 第二步:做一个批处理文件,名为:RAMN_DEL.bat 放在c盘的根目录.文件内容如下所示: 第三步:添加一个任务计划: 执行步骤如下图所示,任务计划出来后点击下一步设置参数即可. 以上为window下执行计划任务定时删除归档日志方法.如果是linux请操作本人写的linux定时任务操作.版权所有.转载请说明出处.

Linux下定时切割nginx日志并删除指定天数前的日志记录

nginx的log日志分为access.log和error.log:其中access.log 记录了哪些用户.哪些页面以及用户浏览器.ip和其他的访问信息:error.log则是记录服务器错误日志. error.log日志的形式如下: 201.158.69.116 - - [03/Jan/2013:21:17:20 -0600] fwf[-] tip[-] 127.0.0.1:9000 0.007 0.007 MX pythontab.com GET /html/test.html HTTP/1

定时删除日志文件---linux定时清理日志

linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧. 1.删除文件命令: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 实例命令: find /opt/soft/log/ -mtime +30