-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathshell-sample.sh
More file actions
executable file
·132 lines (106 loc) · 2.63 KB
/
Copy pathshell-sample.sh
File metadata and controls
executable file
·132 lines (106 loc) · 2.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
# 需要在crontab文件中指定任务运行所需的所有环境变量
source /home/user/.profile
source /etc/profile
# Mode can be "local" or "remote"
MODE=$1
ROOT="/home/user/testrundir"
MOCK_EXCH_PORT=33015 # 服务器的启动端口号
SCRIPT_DIR=$(cd $(dirname $0) 2> /dev/null && pwd -P) #当前运行的脚本所在路径
ONLOAD_SERVER="onload --profile=$ROOT/server.opf"
ONLOAD_CLIENT="onload --profile=$ROOT/client.opf"
function clone_or_pull
{
path=$1 #第一个参数
repo=$2 #第二个参数
if [ -d "$repo" ] #如果第二个参数是一个目录
then
hg -R $repo pull --rebase
else
hg clone $path $repo
fi
}
function no_use0
{
clone_or_pull $M_PATH $ROOT
clone_or_pull $BB_PATH $ROOT/bb
clone_or_pull $SIG_PATH $ROOT/bb/signals
clone_or_pull $FTD_PATH $ROOT/ftd
clone_or_pull $BB_CONF_PATH $ROOT/bb-conf
}
#新建两个文件夹
if [ ! -d $ROOT/pkg ] #-d判断如果是目录
then
mkdir $ROOT/pkg
fi
if [ ! -d $ROOT/log ]
then
mkdir $ROOT/log # 存放运行的日志文件
fi
# 启动本地服务器
function start_local
{
echo "Starting mock exchange locally..."
cp $SCRIPT_DIR/scripts/server.opf $ROOT/server.opf
cd $ROOT/log
EXCH_PID=$! # 后台运行的最后一个进程的ID号
sleep 1
}
function start
{
MODE=$1 # 本函数第一个参数
case $MODE in
"remote")
start_remote $EXCH_HOST # "start_remode" function not defined
;;
"local")
start_local
;;
esac
}
# 终止exchange服务器
function stop_exchange
{
echo "Stopping mock exchange..."
kill $EXCH_PID
wait $EXCH_PID
}
function stop
{
MODE=$1
case $MODE in
"remote")
stop_exchange
;;
"local")
stop_exchange
;;
esac
}
if [ $# -lt 1 ] # 如果脚本无输入参数
then
echo "I need a parameter, \"local\" or \"remote\"?"
echo "Script exit..."
# echo $#
exit
fi
start $MODE # 执行start函数
# echo "Start Sleep..."
sleep 1 # 睡眠1秒
# echo "Sleep Done..."
for i in {1..100}
do
printf "."
echo $order >&3
#echo "In loop, i = $i"
if ! (( i % 5 )) # 当i是5的整数时
then
printf "\n"
/usr/local/bin/usleep 500000 # 延时500ms,usleep:suspend execution for microsecond intervals
fi
done
stop $MODE # 执行stop函数,先后终止hconsole,td,exchange
echo `date +"%Y%m%d %H:%M:%S.%N"` >> $ROOT/log/timing-summary.txt
echo "-------------------------------------------"
echo "Here is the timing-summary:"
cat $ROOT/log/timing-summary.txt