一、springboot服务启停脚本
文件名 service.sh
#!/bin/bash
#服务所在目录
HOME=/dev/springboot
AppName=$1
FuncName=$2
usage() {
echo "Usage: ./service.sh [serviceName.jar] [start|stop|restart|status]"
exit 1
}
#如果传入的参数个数不等于2的话,就调用usage函数,并退出脚本
[[ $# != 2 ]] && usage && exit 1
#如果传入的$1,$2,$3三个参数的值为空,那么就调用usage函数,并退出脚本
[[ -z $1 || -z $2 ]] && usage && exit 1
#if [ "$AppName" = "" ];
#then
# echo -e "\033[0;31m 未输入应用名 \033[0m"
# exit 1
#fi
#if [ "$FuncName" = "" ];
#then
# echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
# exit 1
#fi
start(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
if [ x"$PID" != x"" ]; then
echo "$AppName is running..."
else
#nohup java $JVM_OPTS -jar $1 > /dev/null 2>&1 &
cd $HOME
nohup java -jar "$AppName" > /dev/null 2>&1 &
echo "Start $AppName success..."
fi
}
stop(){
echo "Stop $AppName ..."
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "$1 (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 2
query
done
echo "$AppName exited."
else
echo "$AppName already stopped."
fi
}
restart(){
echo "restart service $AppName"
stop
sleep 2
start
}
status(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
echo "ps -ef |grep java|grep "$AppName"|grep -v grep|wc -l"
echo "PID="$PID
if [ $PID != 0 ];then
echo "$AppName is running..."
else
echo "$AppName is not running..."
fi
}
case $2 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
esac
使用说明
以服务 eureka.jar 为例:
- 查询服务
./service.sh eureka.jar status
- 启动服务
./service.sh eureka.jar start
- 停止服务
./service.sh eureka.jar stop
- 重启服务
./service.sh eureka.jar restart
多个服务启停脚本 cloud.sh
#!/bin/bash
#服务所在目录
HOME=/dev/springcloud
FuncName=$1
NameArray=("eureka" "zuul" "system")
NumArray=(0 1 2)
usage() {
echo "Usage: ./cloud.sh [start|stop|restart|status]"
exit 1
}
if [ "$FuncName" = "" ]
then
echo -e "未输入方法名 [start|stop|restart|status]"
usage
fi
start(){
for var in ${NumArray[@]}
do
PID=`ps -ef |grep java|grep ${NameArray[$var]}.jar | grep -v grep|awk '{print $2}'`
if [ x"$PID" != x"" ]; then
echo "${NameArray[$var]} is running..."
else
echo "Start ${NameArray[$var]} ..."
cd $HOME
#nohup java $JVM_OPTS -jar $1 > ${NameArray[$var]}.log 2>&1 &
nohup java -jar "${NameArray[$var]}.jar" > /dev/null 2>&1 &
echo "Start ${NameArray[$var]} success..."
fi
done
}
stop(){
for var in ${NumArray[@]}
do
PID=""
query(){
PID=`ps -ef |grep java|grep ${NameArray[$var]}.jar | grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
echo "Stop ${NameArray[$var]} ..."
kill -TERM $PID
echo "$1 (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 2
query
done
echo "${NameArray[$var]} exited."
else
echo "${NameArray[$var]} already stopped."
fi
done
}
restart(){
echo "restart service"
stop
sleep 3
start
}
status(){
for var in ${NumArray[@]}
do
PID=`ps -ef |grep java|grep ${NameArray[$var]}.jar | grep -v grep|wc -l`
if [ $PID != 0 ];then
echo "${NameArray[$var]} is running..."
else
echo "${NameArray[$var]} is not running..."
fi
done
}
case $1 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
esac
二、mysql数据库备份脚本
文件名 data_back.sh
#!/bin/bash
# JOBDATE=`date +%Y%m%d_%H%M%S`
JOBDATE=`date +%Y%m%d`
WORKPATH=/opt/data
LOGPATH=$WORKPATH/log
FILE_PATH=$WORKPATH/data_bk
DB_IP=your ip
DB_DATABASE=your database
DB_USER=your user
DB_PASSWORD=your password
if [ ! -d "$FILE_PATH" ]
then
mkdir -p $FILE_PATH
fi
export(){
cd $FILE_PATH
echo -e $DB_DATABASE"数据库备份开始......" `date +'%Y-%m-%d %H:%M:%S'` | tee -a $LOGPATH/JOB_$JOBDATE.log
mysqldump -u$DB_USER -p$DB_PASSWORD -h$DB_IP $DB_DATABASE >$FILE_PATH/"$DB_DATABASE"_$JOBDATE.sql
K_RET=$?
if [ $K_RET -ne 0 ]
then
echo -e "$DB_DATABASE数据库备份失败......" `date +'%Y-%m-%d %H:%M:%S'` | tee -a $LOGPATH/JOB_$JOBDATE.log
exit 1
fi
gzip $FILE_PATH/"$DB_DATABASE"_$JOBDATE.sql
tar -cvf "$DB_DATABASE"_$JOBDATE.tar "$DB_DATABASE"_$JOBDATE.sql.gz
rm -f $FILE_PATH/"$DB_DATABASE"_$JOBDATE.sql.gz
K_RET=$?
if [ $K_RET -ne 0 ]
then
echo -e "$DB_DATABASE数据库备份失败......" `date +'%Y-%m-%d %H:%M:%S'` | tee -a $LOGPATH/JOB_$JOBDATE.log
exit 1
fi
}
delete(){
echo '开始删除30天前的备份...'
find $FILE_PATH -type f -mtime +30 | xargs rm -f
echo '删除备份成功'
}
export
echo -e "数据库备份结束......"`date +'%Y-%m-%d %H:%M:%S'` | tee -a $LOGPATH/JOB_$JOBDATE.log