尝试着写一写shell脚本

#!/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 &


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
unix 的网络操作系统实训 包含: 一、 实验目的 1. 掌握UNIX系统的目录和文件管理命令。 2. 掌握shell的输入输出重定向操作符。 3. 编shell脚本文件,并调试、执行它。 二、 实验要求 1. 要求每人能独立完成实验。能独立搭建UNIX操作系统,掌握OpenSolaris的安装、运行和使用。 2. 使用自己的账号登录UNIX 系统, 用户名为:学号和姓名汉语拼音全拼。在用户主目录下,新建子目录,子目录名为:专业和班级(可以是拼音)。 3. 在新建的子目录下完成全部练习,所有的操作练习均要截图显示。 4. 所有的实验内容必须在命令行方式下进行操作。 5. 纸制版的封面单面打印,其他页面必须双面打印。全班刻一张光盘。 三、 实验内容 1. 用uname -a命令显示操作系统的版本。 2. 用pwd命令显示用户主目录的路径名。 3. 用date命令查看当前日期和时间。分别比较%a和%w,%D和%d。 4. 用who命令查看当前登录在系统中的用户列表。比较$who –H与$who –s显示的结果区别。用hostid命令和id命令查看主机信息和用户信息。 5. 用vi编辑器,先在子目录中创建名为one的文件,编辑one文件,再把one文件中2-6行的内容到文件two中。给出复制3行和删除10个字符的操作。(说明one文件内容不能以数字和简单的字母组成,必须是一段有内容的英文,至少是10行以上的描述) 6. 用重定向符和cat命令创建一个电话簿telephone文件。假定收集你班上10位同学的姓名、学号、email和电话号码存在这个文件中。使用sort命令对这个文件进行排序,按名、按姓、按email、按电话号码及反序排序等。使用grep命令及其选项在你的电话簿中查找一个名字。 7. 用重定向符和cat命令创建一个ums脚本文件完成如下功能。并运行它。 a. 显示当前日期和时间。 b. 显示当前用户名。 c. 输入若干用户名作为参数,判断用户是:(1)教师或博士后;(2)博士研究生;(3)硕士研究生;(4)本科生。 d. 用户名规则:教师用户名以j开头,博士后用户名以bh开头,博士研究生用户名以yb 开头,硕士研究生用户名以ys开头,本科生用户名以x开头。 8. 编C程序,编译和运行程序。给出年、月、日,计算该日是该年的第几天。 9. 编Java程序,编译和运行程序。将给定的一个字符串中的所有字符逆序输出。 7、8和9题说明:要求有源程序清单和目标文件的截图,还要有运行结果的截屏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值