日志删除脚本

说明:需在脚本目录下创建文件log_arg.txt,第一列为日志路径,第二列日志名,第三列至少要保存的日志文件数量,第四列删除多少天之前的日志。


log_arg.txt 文件内容

# first: log dir

# secound: log name

# third: log file not less than

# forth: delete log how many days ago

/glassfish/dm02n02s02/dm02c03s02/logs server.log_\* 20 7

/glassfish/dm02n02s02/dm02c03s04/logs server.log_\* 20 7


脚本rm_log.sh内容

#!/bin/bash

dn=`dirname $0`

cd $dn

awk '/^[^#]/' log_arg.txt | while read log

do

logarr=($log)


len=${#logarr[@]}

dir=${logarr[0]}

fn=${logarr[1]}

cnt=${logarr[2]}

dt=${logarr[3]}


if [ $len != 4 ]; then

echo "Line \"$log\" is error"

continue

fi


[[ ! -d $dir ]] && echo "$dir is not exist" && continue

[[ ! "$cnt" =~ ^[0-9]+$ ]] && echo "$cnt is not a number" && continue

[[ ! "$dt" =~ ^[0-9]+$ ]] && echo "$dt is not a number" && continue


acnt=`find $dir -type f -name $fn -ctime -$dt | wc -l`

echo "$dir $acnt $cnt"

if [ $acnt -ge $cnt ] ; then

echo "Now delete $dt days ago logs in $dir. Log files $fn not less than $cnt."

find $dir -type f -name $fn -ctime +$dt | xargs rm -f

fi

done

相关文章

普通模式 >G 增加当前行到文档末尾处的缩紧层级 $ 移动到本行的末尾 . 相当于一个...
原文连接: https://spacevim.org/cn/layers/lang/elixir/ 模块简介 功能特性 启用模块 快捷键 语言专属...
原文连接: https://spacevim.org/cn/layers/lang/dart/ 模块简介 功能特性 依赖安装及启用模块 启用模...
 =   赋值操作符,可以用于算术和字符串赋值 +        加法计算     -        减法运算...
1.根据包名来查看指定的APP指定数据 adb shell "top | grep com.xxx.xxx" 由于这样打印出来的数...
ctrl+F 向下翻页 ctrl+B 向下翻页 u 取消最近一次操作 U 取消当前行的操作 ZZ 保存当前内容并退出 gg 跳...