用shell来写脚本

一.守护脚本

用于守护一个进程,如果该进程因意外情况停止运行,则守护脚本会自动启动该进程,以保证该进程一直处于运行状态中。

下面是用shell实现的一个守护脚本:

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

三. admin工具

#!/bin/sh

RED=\\e[1m\\e[31m
DARKRED=\\e[31m
GREEN=\\e[1m\\e[32m
DARKGREEN=\\e[32m
BLUE=\\e[1m\\e[34m
DARKBLUE=\\e[34m
YELLOW=\\e[1m\\e[33m
DARKYELLOW=\\e[33m
MAGENTA=\\e[1m\\e[35m
DARKMAGENTA=\\e[35m
CYAN=\\e[1m\\e[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来写脚本)