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

Linux周期运行一个命令的脚本

2013-03-15 23:49 776 查看
在做测试的时候,有时候需要不断的运行一个命令或者脚本,下面的这个脚本可以实现这个目的。

使用方法:

usage: period.sh [options] <cmd> <args>

run command periodically.

options:

-c <count> : how many times.

-i <interval>: every <interval> seconds.

-h: show help

示例:

$ ./period.sh ls -l

$ ./period.sh -i 3 ls -l

#!/bin/sh
PROG_NAME=period.sh
INTERVAL=1
ALWAYS_LOOP=1
COUNT=-1

#------------------------- functions --------------------------------------------------
usage() {
cat << END
usage: $PROG_NAME [options] <cmd> <args>
run command periodically.
options:
-c <count> : how many times.
-i <interval>: every <interval> seconds.
-h: show help

END
}

run_cmd()
{
echo $ $*
eval $*
echo
}

#---------------------------- main() --------------------------------------------------
# get command line arguments
while getopts "c:i:h" options; do
case "$options" in
c) COUNT=$OPTARG ;;
i) INTERVAL=$OPTARG ;;
h) usage; exit 0;;
\?) usage; exit -1;;
esac
done

shift $((OPTIND - 1))

if [ $# -lt 1 ]; then
usage;
exit 0;
fi

if [ $COUNT -ge 0 ]; then
ALWAYS_LOOP=0
else
COUNT=1
fi

while [ $ALWAYS_LOOP -eq 1 ] || [ $COUNT -gt 0 ]; do
echo "#$INDEX Date: `date +%Y-%m-%d_%H:%M:%S`"
run_cmd $*
INDEX=$((INDEX + 1))
COUNT=$((COUNT - 1))
sleep $INTERVAL
done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: