阿铭每日一题 day 7 20180117

阿铭每日一题 day 7 20180117

方法一:

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