您的位置:首页 > 运维架构 > Linux

判断Linux环境下文件是否还在变化的脚本

2017-07-30 13:37 330 查看

###############################################

# Name:check_file_status.sh

# Author:cdshrewd (cdshrewd#163.com)

# Purpose:Check wether file is changing or not.

# Usage:

#      Run this scripts with 2 args.

#      The first one is the file full path.

#      The second one is the interval between two check time.This is optional.

#      You can run this scripts like './check_file_status.sh /tmp/test.txt 3'.

# Modified Date:2017/07/30

###############################################

#!/bin/bash

set -x

check_files_status()

{

fname=$1

interval=3

if [ -n $2 ]; then

 len=`echo "$2"|sed 's/[0-9]//g'|sed 's/-//g'` 

 if [ -z $len ]; then

 interval=$2

 fi

fi

if [ -f "$fname" ]

then

 match_cnt=0

 fsize=`ls -l $fname|awk '{print $5}'`

 ctime=`ls -lc $fname|awk '{print $(NF-1)}'`

 for ((i=0; i<=3 ; i++))

 do

 cur_ctime=`ls -lc $fname|awk '{print $(NF-1)}'`

 cur_fsize=`ls -l $fname|awk '{print $5}'`

 if [[ "$ctime" = "$cur_ctime" && "$fsize" -eq "$cur_fsize" ]]; then

 ctime=$cur_ctime

 fszie=$cur_fsize

 let match_cnt+=1;

 sleep $interval

 fi

 done

 if [ $match_cnt -eq 4 ]; then

        exit 0

 else

        exit 1

 fi

else

echo "$fs is not a file."

exit 1

fi

}

check_files_status $1 $2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux shell check fi