zoukankan      html  css  js  c++  java
  • 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编写
  • 相关阅读:
    Zend Studio
    mysql workbench
    phpmyadmin
    navicat for mysql
    phpstorm
    django中 debug-toolbar插件 crm项目补充
    clean_data 和 instance的区别
    elasticsearch 第一章 初识elasticsearch
    爬虫第七章 scrapy中间件 + 基于crawlSpider全站爬取网络数据
    爬虫第六章 scrapy的具体应用 5大核心组件 scrapy持久化存储 请求传参
  • 原文地址:https://www.cnblogs.com/xiaobingblog/p/11419243.html
Copyright © 2011-2022 走看看