跳转至

Index

  • 有一台服务器作为web应用,有一个目录(/data/web/attachment)
  • 不定时的会被用户上传新的文件,但是不知道什么时候会上传
  • 所以,我们需要没五分钟做一次检测是否有新文件生成
  • 写一个shell脚本去完成检测,检测完成后若是有新文件
  • 还需要将新文件的列表输出到一个按年,月,日,时,分为名字的日志里
  • 思路:每五分钟检测一次,那肯定需要有一个计划任务,每五分钟去执行一次,脚本检测的时候,就是使用find命令查找5分钟内有过更新的文件,若是有更新,那这个命令会输出东西,否则是没有输出的,
#!/bin/bash

##日志文件名,包含年月日时分
d=`date +%Y%m%d%H%M`
basedir=/data/web/attachment

##find找到5分钟之内新产生的文件,并把文件列表写入一个文件中
find $basedir/ -type f -mmin -5 > /tmp/newf.txt

## 如果文件里有内容,把文件改名字,即我们要的文件列表日志文件
if [ -s /tmp/newf.txt ]; then
    /bin/mv /tmp/newf.txt /tmp/$d
fi

总结

  1. find的 -mmin 选项以分钟为时间单位查找
  2. [ -s filename ] 表示当文件存在,并且文件内容不为空时,条件成立