判断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
###############################################
# 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
相关文章推荐
- Shell脚本执行hive语句 | hive以日期建立分区表 | linux schedule程序 | sed替换文件字符串 | shell判断hdfs文件目录是否存在
- linux下python脚本判断目录和文件是否存在
- linux判断一个文件是否存在
- java如何判断一个linux下的文件是否为链接文件。
- 无BOM的条件下C语言判断一个文件是否为UTF-8编码代码(windows,linux通用)
- Linux下父进程通过管道发送文件名给子进程,子进程获取文件名后首先判断文件是否存在,不存在,通过管道返回错误信息,存在,将文件内容返回给父进程
- linux判断文件是否存在
- linux的shell脚本判断当前是否为root用户
- Linux下shell脚本判断文件相关属性
- linux下的access()函数判断文件是否存在、打印时间
- 判断文件是否存在的shell脚本代码
- 判断文件是否存在的shell脚本代码
- Linux环境下判断服务器是否正常关机
- linux的shell脚本判断当前是否为root用户
- Linux 中SHELL判断一个环境变量是否存
- Linux 判断是否是一个目录还是一个文件的方法
- Linux系统shell脚本对字符串、数字、文件的判断
- 请问怎样书写SQL脚本,以判断某个路径下的某个文件是否存在?
- Linux系统shell脚本判断变量文件目录:权限、是否存在、空值、相等
- Linux系统shell脚本对字符串、数字、文件的判断