有时候程序运行了很久就会打印特别多的日志,比如我们只需要保留近7天的日志文件其他的全部删除,该怎么操作呢?一个一个地删除太麻烦了,
下面编写个shell小脚本(比如: test.sh )就可以轻松完成:
#!/bin/bash
# 直接在执行删除脚本的时候从外界传入2个参数
folder=$1
delta=$2
echo "删除文件夹地址为:${folder}"
files=$(ls ${folder})
# 获取delta天前的时间戳
thres_date=$(date -d "${delta} day ago" +%s)
for file in ${files}
do
# 文件更新日期的时间戳
file_date=$(date +%s -r ${file})
# 更新日期小于设定时间时进行删除
if [ ${file_date} -le ${thres_date} ]
then
echo "删除的文件为: ${file}"
rm -f ${file}
fi
done
程序运行时 只需执行: sh test.sh /opt/data/homework/logs 7
就可将logs文件夹下的7天前的旧日志删除掉!