有一台服务器作为web应用,有一个目录(/data/web/attachment)不定时地会被用户上传新的文件,但是不知道什么时候会上传。所以,需要我们每5分钟做一次检测是否有新文件生成。
请写一个shell脚本去完成检测。检测完成后若是有新文件,还需要将新文件的列表输出到一个按年、月、日、时、分为名字的日志里。
思路: 每5分钟检测一次,那肯定需要有一个计划任务,每5分钟去执行一次。脚本检测的时候,就是使用find命令查找5分钟内有过更新的文件,若是有更新,那这个命令会输出东西,否则是没有输出的。我们可以把输出结果的行数作为比较对象,看看它是否大于0。
#! /bin/bash d=`date -d " -5 min" +%Y%m%d%H%M` m=/data/web/attachment find $m/ -type f -mmin -5 > /tmp/newf.txt n=`wc -l /tmp/newf.txt |cut -d ' ' -f1` if [ $n -gt 0 ] then /bin/mv/ /tmp/newf.txt /tmp/$d.log fi
给脚本设置可执行权限:chmod +x filename
使用cron任务计划
crontab -e 打开编辑任务计划
写入
*/5 * * * * /tmp/filename.sh ##表示每5分钟执行一次
从左到右依次为:分,时,日,周,命令
“*”代表取值范围内的数字
“/”代表每
“-”代表从某个数字-某个数字
“,”分开几个离散的数字
crond服务是否启动:service crond status
启动计划任务:service crond start
转载于:https://blog.51cto.com/12129628/2062076