• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux使用shell脚本定时删除历史日志文件

    1、tools目录文件结构

    [root@www tools]# tree tools/
    tools/
    ├── bin
    │  ├── del_history_files
    │ 
    └── etc
      ├── del_history_files.cfg
     
    2 directories, 2 files

    2、删除历史文件脚本 del_history_files

    [root@www tools]# more tools/bin/del_history_files
    #!/bin/sh
     
    # 删除指定目录下,文件时间早于指定时间节点的文件,时间粒度:小时
    # 配置文件格式 : 需清理的目录=小时数
    #
    #
    # define restricted path
    PATH="/bin:/usr/bin:/sbin:/usr/sbin"
     
    # adirname - return absolute dirname of given file
    adirname() { odir=`pwd`; cd `dirname $1`; pwd; cd "${odir}"; }
     
     
    # ---------
    # constants
    # ---------
    MYNAM=`basename "$0"`
    MYDIR=`adirname "$0"`
    MYCFG="${MYDIR}/../etc/${MYNAM}.cfg"
    MYTMP="${MYDIR}/../tmp"
    MYLCK="${MYTMP}/${MYNAM}.lock"
     
    # perform some locking (as good as it gets in a shell)
    [ -s "${MYLCK}" ] && kill -0 `cat "${MYLCK}"` 2>/dev/null &&
        die "${MYNAM}: already running!"
    echo "$$" > "${MYLCK}"
     
    PATHS=(`cat ${MYCFG}`)
    for PP in ${PATHS[@]}
    do
      APP_PATH=`echo ${PP} | awk -F'=' '{print $1}'`
      N=`echo ${PP} | awk -F'=' '{print $2}'`
        if [ -d ${APP_PATH} ] ; then
        T=`/bin/date --date "${N} hours ago" "+%Y%m%d%H%M"`
        TMP_FILE="/tmp/`echo ${PP} | md5sum | awk '{print $1}'`"
        touch -t ${T} ${TMP_FILE}
        find ${APP_PATH} ! -newer ${TMP_FILE} -type f -print0 | xargs -0 -n 100 rm -rf
        find ${APP_PATH} -type d -empty -print0 | xargs -0 -n 100 rm -rf &> /dev/null
        fi
    done
     
    rm -rf ${MYLCK}

    3、删除历史文件脚本的配置文件 del_history_files.cfg

    [root@www tools]# more tools/etc/del_history_files.cfg
    #需清理的目录=小时数
    /home/logs/nginx=720
    /home/logs/varnish=720

    4、crontab 执行即可

    [root@www tools]# more /etc/crontab
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/
    #clear old logs
    00 6 * * * root /home/tools/bin/del_history_files

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:新版ubuntu20.04 使用root用户登录系统的详细教程
    下一篇:Linux sar命令使用方法及代码实例解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux使用shell脚本定时删除历史日志文件 Linux,使用,shell,脚本,定时,