文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>脚本[监视文件]

脚本[监视文件]

时间:2010-02-24  来源:yulinlin12345

#!/bin/bash
#Content: monitor file changement
#Version: 1.0
#AUTHORS: ***
#Data    : 2010-02-24

declare -f getparam
declare -f getstatus
declare -f modification
declare -f loop
declare -i timeval=5
filename=""
lasttime=""
visittime=""

function getparam()
{
    if [ $# -le 1 ]; then
        echo "usage: $0 [-f filename] [-t timeval]"
        exit 1
    fi

    while getopts "f:t:" opt
    do
        case $opt in
            f)
            filename=$OPTARG
            ;;
            t)
            timeval=$OPTARG
            ;;
            \?)
            echo "usage: $0 [-f filename] [-t timeval]"
            exit 1
            ;;
        esac
    done
    shift $(($OPTIND-1))
}

function getstatus()
{
    if [ "$filename" = "" ] || [ ! -e $filename ]; then
        echo "invalid flie:$filename"
        exit 2
    fi
    echo "Start monitor $filename changement"
    lasttime=`stat $filename | grep 'Modify' | cut -d" " -f3 | cut -d"." -f1`
    cp -a $filename .$filename.bak
}

function modification()
{
    username=`stat $filename | grep Uid | cut -d"/" -f3 | cut -d")" -f1 |cut -d" " -f2`
    ip=`last | grep $username | sed -n '$p'|  awk '{print $3}'`
    echo "Modify by $username $ip in $visittime"
    diff -Naur .$filename.bak $filename > ${visittime}_${username}_${ip}.patch
    cp -a $filename .$filename.bak
    lasttime=$visittime
}

function loop()
{
    while [ 1 ]
    do
        visittime=`stat $filename | grep Modify | cut -d" " -f3 | cut -d"." -f1`
        if [ $lasttime != $visittime ]; then
            modification
        fi

        sleep $timeval
    done
}

getparam $@
getstatus
loop
exit 0

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载