最近项目中有个需求,要求把某个文件夹下的创建时间超过3分钟的文件删除。本来想是用Java的定时任务来实现的,但是比较复杂。而且想了下,也完全没有这个必要,于是就写了一个shell脚本,用crontab来执行。
#!/bin/bash
dir=`ls /root/20160705/`
DIR_PATH="/root/20160705/"
for fi in $dir
do
FILE_NAME=${DIR_PATH}${fi}
echo $FILE_NAME
a=`stat -c %Y $FILE_NAME`
b=`date +%s`
if [ $[ $b - $a ] -gt 120 ];then
echo "delete file:$FILE_NAME"
rm -rf $FILE_NAME
fi
done
echo "done"
写完了这个脚本之后,突然又想到一个更简单的方法,那就是用logrotate,目前这个只是用来对日志做切割,不能这个也能满足我的需求。