Linux 下监测指定路径下指定时间间隔内是否有指

题目很拗口,感觉自己有必要说明一下,O(∩_∩)O~

在 Liunx 程序设计中,有时我们需要写这样一个程序,当指定目录下有相应的新文件生成时,触发程序动作,这个触发的动作可能是解析新生成的文件异或其他行为。

一种实现方法是在主程序中运行一个循环监测程序,监测指定目录下指定时间间隔内有没有指定的新文件生成,如果有则触发相应的解析动作等行为。

下面是自己写的一个脚本文件,功能就是做这样一件事情:

#!/bin/bash      #program:    #   后台脚本,查找 path 路径下最近 n 秒内有没有新文件(文件名 filename )生成    #   path        脚本输入参数,查找路径    #   n           脚本输入参数,查找时间间隔(s)    #   filename    脚本输入参数,查找文件名    #   如果有生成,返回0;反之没有生成,返回1;脚本没有正常工作结束,返回2       #History:    #   2011/06/11  wwang   first release       # 获得当前世纪秒    nowSoc=$(date +%s)   # 输出    #echo -e "Now time is $nowSoc..."       # 判断脚本输入参数是否合法    if test $# -eq 3; then          # 设置查找路径        path=$1              # 设置查找时间间隔        delta=$2       # 自减delta秒        nowSoc=$(($nowSoc - $delta))       # 输出        #echo -e "$nowSoc"               # 设置查找文件名        filename=$3          # 查找控制输出文件        theControlFile=$(find $path -name $filename)       if [ -f "$theControlFile" ]; then           # 输出            #echo -e "The new Control file is $theControlFile..."                   # 获得文件的修改时间            theFileChangeSoc=$(stat -c "%Z" $theControlFile)           # 输出            #echo -e "The file change time is $theFileChangeSoc..."                       # 判断最近 n 秒内是否生成了对应文件            if test $(($theFileChangeSoc - $nowSoc)) -ge 0; then               # 输出                #echo -e "Find"                           # 返回 0                exit 0           else               # 输出                #echo -e "Not Find"                           # 返回 1                exit 1           fi              else           # 输出            #echo -e "This is no new Control file..."                   # 返回 1            exit 1       fi          else       # 输出        echo -e "This is no three parameters..."              # 返回 2        exit 2   fi

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwgwpz.html