方法一:
1 #!/bin/bash 2 while true 3 do 4 find /data/web/attachment/ -type f -mmin -5 -exec echo $(date +%Y/%m/%d %H:%M:%S) {} ; >> /tmp/day7.log 5 sleep 5 6 done
day7=参考答案=~ps.不是唯一答案哦
解析
1、不要想的太复杂,核心命令只有一个:find /data/web/attachment/ -type f - mmin -5
2、每5分钟检测一次,需要有一个计划任务,每隔5分钟执行一次。脚本检测的时候,使用find命令查找5分钟内有过更新的文件,若是有更新,那这个命令会输出东西,否则是没有输出的。固,可以把输出结果的行数作为比较对象,看看它是否大于0。
3、当然大家还可以用find命令执行后,看$?的返回值是否是0。
【参考答案】
1 #!/bin/bash 2 3 d=`date -d " -5 min" +%Y\%m\%d\%H\%M` 4 basedir="/data/web/attachment" 5 6 find $basedir -type f -mmin -5 > /tmp/newf.txt 7 n=`wc -l /tmp/newf.txt|awk '{print $1}'` 8 if [ $n -gt 0 ] 9 then 10 /usr/bin/mv /tmp/newf.txt /tmp/$d 11 fi
crond计划任务
1 */5 * * * * /bin/bash /root/scripts/day7_20180117.sh