删除过期日志文件的 linux shell 脚本

技术分享 2019-10-01 00:00:00
1.日志文件名格式为 xxserver.log-13041515

#!/bin/sh

desdir=./log/
var=1
loopls()
{
var=0
for file in `ls $desdir`; do
#echo "File -> $file"
can $file
done
var=1
}

can()
{
anteayer=`date -d '2 days ago' "+%Y%m%d"`
anteayer=`expr substr $anteayer 3 7`
yesterday=`date -d last-day "+%Y%m%d"`
yesterday=`expr substr $yesterday 3 7`
today=`date "+%Y%m%d"`
today=`expr substr $today 3 7`

#获取当前一个日志文件的具体年月日
logtime=`echo $1 | awk -F. '{print $3}' | awk -F- '{print $1}'`
if
then
return
else
#日志不是今天,昨天,前天的都删除
if ] && ] && ]
then
echo $1 "will be delete"
rm "$desdir""$1"
else
echo $1 "save"
fi
fi
}

while true; do
sleep 5
size=`du -sh $desdir | awk -FG '{print $1}'`

if
if
then
if
then
loopls
fi
fi
done

exit 0



2.删除文件linux shell参考
#!/bin/sh
find /home/jms -type f -mtime +2 -exec rm '-f {} \;'

查找文件名为 .gz的文件
find ."-name '*.gz'"
/home/jms是查找文件的路径。
-type f是指定文件类型为普通文件。
-mtime +2是指修改时间距离现在2天的文件。
-2是指修改时间距离现在不足2天的文件
-exec rm -f指执行删除匹配出来的文件,并且不提示。
咨询小瓶科技
咨询我们
顶部