用shell来写脚本
发布时间:2020-12-15 16:17:07 所属栏目:安全 来源:网络整理
导读:一.守护脚本 用于守护一个进程,如果该进程因意外情况停止运行,则守护脚本会自动启动该进程,以保证该进程一直处于运行状态中。 下面是用shell实现的一个守护脚本: #! /bin/sh #进程名字可修改 PRO_NAME=zhb-t #程序启动脚本命令 START_SH= "./start.sh" #
一.守护脚本用于守护一个进程,如果该进程因意外情况停止运行,则守护脚本会自动启动该进程,以保证该进程一直处于运行状态中。 #! /bin/sh
#进程名字可修改
PRO_NAME=zhb-t
#程序启动脚本命令
START_SH="./start.sh"
#用ps获取$PRO_NAME进程数量
NUM=`ps aux | grep ${PRO_NAME} | grep -v grep |wc -l`
#echo $NUM
#少于1,重启进程
if [ "${NUM}" -lt "1" ];then
echo "${PRO_NAME} has been killed"
${START_SH}
echo "${PRO_NAME} started"
fi
exit 0
该脚本然后用crontab定时执行,监控进程是否停止 二. 杀死进程kill某个进程名下所有进程 #! /bin/sh
#进程名字可修改
PRO_NAME=example_echocli
pidnum=`ps -ef|grep ${PRO_NAME} |grep -v grep|wc -l`
if [ $pidnum -lt 1 ]
then
echo "no program killed."
else
for pid in `ps -ef|grep ${PRO_NAME} |grep -v grep|awk '{print $2}'`
do
kill -9 $pid
done
echo "program stoped."
fi
exit 0
或者更简单的是: ps -ef | grep "procedure" | grep -v grep | awk '{print $2}' | xargs kill -9
三. admin工具#!/bin/sh
RED=e[1me[31m
DARKRED=e[31m
GREEN=e[1me[32m
DARKGREEN=e[32m
BLUE=e[1me[34m
DARKBLUE=e[34m
YELLOW=e[1me[33m
DARKYELLOW=e[33m
MAGENTA=e[1me[35m
DARKMAGENTA=e[35m
CYAN=e[1me[36m
DARKCYAN=e[36m
RESET=e[m
if [ $# != 1 ]
then
echo -e "$RED USAGE: $0 $YELLOW option [start | stop | restart]$RESET"
exit 0;
fi
dir=`echo $0|sed 's/admin.sh//g'`
cd $dir
if [ $1 = "start" ]
then
./start.sh
elif [ $1 = "stop" ]
then
./stop.sh
elif [ $1 = "restart" ]
then
./stop.sh
./start.sh
else
echo -e "$RED USAGE: $0 $YELLOW option [start | stop | restart]$RESET"
exit 0;
fi
四.遍历文件夹,并判断文件后缀名#!/bin/sh
PHPPATH="/root/zhb/php/pchart.1.27d/"
PHPBIN="/usr/local/php/bin/php -f"
filelist=`ls $PHPPATH`
for file in $filelist
do
if [ "${file##*.}" = "php" ]
then
$PHPBIN $PHPPATH/$file
fi
done
五. shell操作redis和mysql//删除redis的某个key
echo "del verify_0" | /export/servers/redis/redis-cli -h 192.22.144.34 -p 6379
//删除mysql的某张表数据
mysql -uroot -h192.168.144.121 -pmysql -e "truncate table test.myzhb"
六. 在shell脚本中执行带参数的sh文件/bin/bash -c ./mybatch.sh param1 param2
注意加-c 七. 批量转化IP把一个十进制数转化为点分制ip的脚本 #!/bin/bash
N=$1
H1=$(($N & 0x000000ff))
H2=$((($N & 0x0000ff00) >> 8))
L1=$((($N & 0x00ff0000) >> 16))
L2=$((($N & 0xff000000) >> 24))
echo $H1.$H2.$L1.$L2
将上面的脚本保存为num2ip.sh #!/bin/bash
for line in `cat ./ip`
do
echo `./num2ip.sh ${line%?}` #去掉最后一个字符n
done
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |