shell脚本实例汇总
重启进程
processname1='mpm_ep' #第一个程序名称 PROCESS1=$(ps -ef|grep $processname1|grep -v grep|grep -v PPID|awk '{print $1}') #过滤出进程ID kill -9 $PROCESS1 #杀掉进程 echo "Kill the $PROCESS1 " processname2='MediaEngineServer' PROCESS2=$(ps -ef|grep $processname2|grep -v grep|grep -v PPID|awk '{print $1}') kill -9 $PROCESS2 echo "Kill the $PROCESS2 " sleep 3 /lib/modules/exec/mpm_ep & echo 'EXE mpm_ep SUCCESS' sleep 5 /lib/modules/exec/MediaEngineServer & echo 'EXE MediaEngineServer SUCCESS'
指定节奏ping,并记录ping结果
#!/bin/sh #hilinux 只能用#!/bin/sh,可能是内核不支持bash dir_current=$(cd `dirname $0`; pwd) file_current=${dir_current}/log.log loop_now=1 if [ -f ${file_current} ];then rm -rf log.log && touch log.log else touch log.log fi read -p "please input your the number of loop you want to run : " loop_num while [ $loop_now -lt $loop_num ] do #hilinux用不了for循环,搞不懂为啥,所以才用while循环 echo $loop_now echo ===========$loop_now========== >>$file_current date >> $file_current echo " " >>$file_current ping -c 1 114.84.70.54 >> $file_current #每次只发一次ping包 #ping -c 1 10.10.10.166 >> $file_current if [ $? -eq 1 ];then echo 'fail' >> $file_current echo 'fail' else echo 'pass' >> $file_current echo 'pass' fi sleep 60 loop_now=$(($loop_now+1)) done
自动实现生成证书
#!/bin/bash dir_current=$(cd `dirname $0`; pwd) rz if [ -f ${dir_current}/ysm_soft.cer ];then rm -rf ysm_soft.cer fi export LD_LIBRARY_PATH=. ./kdssl x509 -req -extfile ca.cnf -extensions v3_sign -in sign.req -CA ca.cer -CAkey ca.key -days 3600 -CAcreateserial -out ysm_soft.cer -sm3 if [ -f ${dir_current}/sign.req ];then rm -rf sign.req fi sz ysm_soft.cer if [ -f ${dir_current}/ysm_soft.cer ];then rm -rf ysm_soft.cer fi
在一个文本文件中查询一个字符串
pro_port=`grep -rn "port=" ./case.conf` #文本文件中符合的都输出,且带上行数,如,22:bport=22 28:port=8081 pro_port=${pro_port##*=} #最短取值法,等号及等号左边全去掉。 echo $pro_port