shell脚本log
‘壹’ shell定期删除日志脚本
脚本如下:
#!/bin/bash
# vim /etc/cron.d/backup
#Author:xxxx
#Date:20140619
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
DIR="/tmp/logs"
file_num=`find $DIR/*.log.* -mtime +1 |wc -l`
echo "have $file_num file"
find $DIR/*.log.* -mtime +1 |xargs rm -rf {} \; >/dev/null 2>&1
====================================================
上面脚本能完成你的要求
一定要照你的脚本写,没有测试,你自己修改一下,思路是这样的。
上面的直接用Find找到文件的修改时间,直接定位文件删除。
下面这个匹配文件中的名字中包含指定时间的文件,条件为真,删除。
计算加1.
你自己写的时间匹配有问题好像。
++++++++++++++++++++++++++++++++++++
tianshu=1
m=0
sj=`date +%Y%m%d -d -${tianshu}day`
for i in `ls *.log.*`
do
echo $i |grep ”$sj“ && rm -f $i
if [ $? = 0 ];then
m++
fi
done
echo $m
‘贰’ shell脚本 把logs 目录下的每个文件夹 里面的文件都压缩
#/bin/bash
path=/corelogs/card_center/logs
folderlist=`ls $path|grep -v '^$'`
for i in $folderlist
do
cd $path/$i
filelist=`ls|grep -v '^$'`
for k in $filelist
do
zip -q -r $k.zip $k
done
done
##这是将所有log文件压缩在对应的日期目录下