1、shell简介
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁,Shell 既是一种命令语言,又是一种程序设计语言;
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
# shell脚本格式
#!/bin/bash
······
#for循环语句
for
do
执行内容
done
#if语句
if 条件
then
指令
else
指令
fi
2、shell脚本编写
2.1.获取当前目录脚本
# 编写获取当前目录脚本:getDir.sh,并赋予脚本可执行权限
sudo vim getDir.sh
#脚本内容编写完成后赋可执行权限
sudo chmod +x getDir.sh
ls
#执行脚本并验证
sudo sh getDir.sh
sudo pwd
获取当前目录脚本内容如下所示:
#!/bin/bash
work_dir=$(cd $(dirname $0); pwd)
echo '当前工作目录:' $work_dir
2.2.文件中插入内容脚本
# 编写在当前目录下dockerConf文件夹下生成deamon.json文件的脚本:insertContent.sh,并赋予脚本可执行权限
sudo vim insertContent.sh
#脚本内容编写完成后赋可执行权限
sudo chmod +x insertContent.sh
ls
#执行脚本并验证
sudo sh insertContent.sh
ls dockerConf
脚本内容如下所示:
#!/bin/bash
mkdir dockerConf
tee ./dockerConf/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://rsk59qvc.mirror.aliyuncs.com/"],
"insecure-registries":
["http://harbor.example.com",
"www.ss.skcom"
],
"data-root": "/data/app/"
}
EOF
2.3.输入内容处理脚本
# 编写在当前目录下创建input文件夹的脚本:input.sh,并赋予脚本可执行权限
sudo vim input.sh
#脚本内容编写完成后赋可执行权限
sudo chmod +x input.sh
ls
#执行脚本并验证
sudo sh input.sh
ls
脚本内容如下所示:
#!/bin/bash
read -p '请输入要创建的文件夹名称:' input_dir
mkdir $input_dir
2.4.停止服务脚本
# 编写在服务器上停止指定名称服务脚本:stopService*.sh,并赋予脚本可执行权限
sudo vim stopService-x86_64_v1.1.0.sh
#脚本内容编写完成后赋可执行权限
sudo chmod +x stopService-x86_64_v1.1.0.sh
ls
ps -ef |grep java
ps -ef |grep apiprocess
#执行脚本并验证
sudo sh stopService-x86_64_v1.1.0.sh
ps -ef |grep java
ps -ef |grep apiprocess
脚本内容如下所示:
备注:仅需要更改 javaprocess=(服务启动程序) 和 cprocess=(服务部署路径) 即可。
#!/bin/bash
javaprocess=service-starter-app #指定运行java程序jar包名称
cprocess=apiservice #指定服务部署路径
#查询并关闭java进程
javapid=$(ps -ef |grep -v 'grep'|grep $javaprocess|awk '{print $2}')
for pid in $javapid
do
kill -9 $pid
echo "kill $pid"
echo "停止转换服务成功!"
done
#查询并关闭底层进程
cpid=$(ps -ef |grep -v 'grep'|grep $cprocess|awk '{print $2}')
for pid in $cpid
do
kill -9 $pid
echo "kill $pid"
echo "服务底层进程停止成功!"
done