#!/bin/bash
#啓動進程
echo "shell name: $0 "
default_port=9900;
thread_count=1;
loops=0;
if [ $# -le 3 ];then
echo "params too less, please check params; exit !"
exit 1;
fi
default_port=$1
thread_count=$2
loops=$3
config_file=$4
if [ ! -f $config_file ];then
echo "---config file not exists $config_file---"
exit 1;
fi
for i in $(seq 1 $thread_count);
do
{
sleep $i
temp_port=$[default_port+i]
for i in {1..100}
do
{
port_size=`sudo netstat -tunlp | grep $temp_port | wc -l`
if [ $port_size -eq 0 ];then
break
else
temp_port=$[temp_port+i]
fi
}
done
echo "---port: $temp_port---"
sed -i '2c 'port=$temp_port ${config_file}
sed -i '3c 'loops=$loops ${config_file}
max_file=`ls ./log | sed '/sh/d' | tail -n1`
max_value=`echo ${max_file}|awk -F '.log_' '{print $2}'`
echo "---$max_value---"
max_value=`expr $max_value + 1`
len_max_value=${#max_value}
echo "---$max_value $len_max_value---"
if [ $len_max_value -lt 2 ];then
max_value='00'$max_value
elif [ $len_max_value -lt 3 ];then
max_value='0'$max_value
else
echo "---len_max_value=3---"
fi
new_file='run_client.log_'$max_value
echo "---$max_file---$new_file---"
# touch /home/admin/li/log/$new_file
cd /usr/local/unimrcp/bin
./client ${config_file} >> /home/admin/li/log/$new_file
}&
done
wait
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "--- for loop over ${time}---"
#!/bin/sh
#減少進程
config_file='./client /home/admin/li/run_client.config'
if [ $# -lt 1 ];then
echo "params too less, exit! "
exit 1;
fi
pid_count=`ps -ef | grep "$config_file" | grep -v "grep" | wc -l`
echo "--client count: $pid_count---"
echo `ps -ef | grep "$config_file" | grep -v "grep" | sort -k5 |awk '{print $2}'`
pid_arr=`ps -ef | grep "$config_file" | grep -v "grep" | sort -k5 |awk '{print $2}'`
kill_size=0
if [ $pid_count -ge $1 ];then
for i in $pid_arr;
do
{
if [ $kill_size -lt $1 ];then
echo "---kill pid $i---"
sudo kill -9 $i
kill_size=`expr $kill_size + 1`
fi
}
done
fi
#!/bin/bash
檢測server
while true
do
{
pid_size=`ps -ef | grep './server' | grep -v 'grep' | wc -l`
echo "--server pid size $pid_size----"
echo `ps -ef | grep './server ' | grep -v 'grep'`
if [ $pid_size -eq 0 ];then
echo "---server can not find---"
sudo /usr/local/un/bin/./server
else
echo "---server exists---"
fi
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "--- for loop ${time}---"
sleep 10
}
done
#!/bin/sh
解析日誌
cat /home/admin/li/server.log | while read line
do
str_line=`echo $line | grep -o "abc result:.*"`
if [ ${#str_line} -gt 0 ]; then
echo ${str_line:11}
fi
done
後臺進程運行java程序
客戶端關閉,進程不會停止
日誌文件輸出到log
nohup java -jar demo-1.0-SNAPSHOT.jar >> demo.log &