#!/bin/bash
#清理过期N天前的文件,此脚本针对现场环境而定,大体思路可以模仿
#文件路径
path=/data0/*/*
cd $path
#当前时间戳
nowstamp=`date +%s`
#阀值,设置删触几天前的文件
stat=$((60*60*24*7))
#echo "7天的秒数:$stat"
#查找几天前的文件,删除
for i in `ls -tr | grep '[0-9]{5,20}'`
do
#取得创建时间
filedate=`ls --full-time $i | awk '{print $6}'`
#取得文件名
filename=`ls --full-time $i | awk '{print $9}'`
#转换文件创建时间为时间戳
filestamp=`date +%s -d $filedate`
#计算当前时间与文件创建时间的时间差
diffstamp=$(($nowstamp-$filestamp))
#如果是7天前的文件,删除
if [ $diffstamp -ge $stat ];then
echo "7天前的文件名:$filename,文件创建时间:$filedate"
rm -rf $filename
fi
done
脚本定时执行:
#ecard 文件定时清理
0 0 * * * /bin/sh /data0/shell/*.sh >>/data1/logs/*.log
清理过期N天前的文件
最新推荐文章于 2024-04-29 23:17:58 发布