shell 脚本
思路: 1.获取当前时间
2.进入日志文件夹,获取日志文件
3.遍历文件把日期中的"_"改成"-",以便下边进行时间戳计算
4.时间戳计算
5.算出一周的秒数,与时间戳进行比较,大于的就是超过七天的,用if判断,进行选择性删除
注意:if语句的括号极容易出问题,如果你跟我的参数类型不一样,可能会出问题,有问题再找一下if比较的博客
6.设置crontab定时执行脚本
#!/bin/bash
#当前时间
newdata=`date "+%Y-%m-%d"`
#获取过滤后的文件名字
cd /data/log_receiver/ads_logs/
file=$(ls *.log*)
#把_改成-
for i in $file
do
da=${i:7:10} #log文件的第7位开始是日期,如果不是可简单修改
new_da=${da//_/-}
#时间戳计算
time_diff=$(($(date +%s -d $newdata) - $(date +%s -d $new_da)));
#如果log超过七天,将删除log文件
week=604800 #一周秒数
if (("$time_diff" >" $week")); then
rm -rf $i
fi
done
配置cron环境
touch rootcron #创建cron文件
crontab -e
10 0 * * * 脚本路径
crontab rootcron #提交给cron进程
crontab -l #不是数字,是字母
service crond restart