1.read示例语法,简单备份场景
提示用户输入一个要备份的目录
提示用户你备份的目录是什么
开始备份
提示备份完成
#!/bin/bash
read -p "请输入要备份的目录:" dir
read -p "请问要备份的目录是什么:" op
echo "目录开始备份" && echo "备份完成"
2.read示例语法,测试用户输入的IP是否通
#!/bin/bash
read -p "请输入IP地址:" IP
ping -c1 -W1 $IP &>/dev/null
if [ $? -eq 0 ]; then
echo "IP $IP 地址是通的!"
else
echo "IP $IP 地址是不通的!"
fi
3.使用read 命令写一个脚本修改主机名
#!/bin/bash
read -p "请输入主机名:" hostname
hostnamectl set-hostname $hostname &>/dev/null
4.修改ip地址的脚本,脚本可以无限的执行
#!/bin/bash
#1.提示用户输入新的ip地址
read -p "请输入你新的IP地址的主机位:" Host_Ip
#2.提示用户是否确认修改
read -p "请确认是否修改ip地址的主机位:[Y|N]:" Qr
#3.根据用户输入的Y|N进行判断
if [ $Qr == "Y" ];then
echo "你确认修改ip地址的主机位"
sed -ri "s#(^IPAD.*\.).*#\1$Host_Ip#g" /etc/sysconfig/network-scripts/ifcfg-eth[01] &>/dev/null
if [ $? -eq 0 ];then
echo "IP地址的主机位修改成功!"
read -p "是否确认要重启网络服务进行生效![Y|N]:" qr
if [ $qr == "Y" ];then
echo "你选择重启网路服务!请做好心理准备!"
echo "重启网络服务之后,当前会话会断开,需要使用新的ip地址进行连接登录。"
systemctl restart network &>/dev/null
else
echo "你没有选择重启网路服务!你可以选择手动重启!"
exit
fi
else
echo "IP地址的主机位修改失败!"
exit
fi
else
echo "你选择放弃修改ip地址IP主机位,再见!"
exit
fi
5.. 场景实践一:查看内存当前使用状态,如果使用率超过80%则报警发邮件
#!/bin/bash
free=$(free -m |awk -F "[ .]+" '/^Mem/{print $3/$2*100}'|awk -F '.' '{print $1}')
mail=$(mail -s "内存报警" 1003451503@qq.com < /root/5.txt &>/dev/null)
if [ $free -ge 11 ]; then
echo "内存$free 使用正常"
else
echo "内存$free 使用不正常"
fi
内存压力测试
[root@web ~]# dd if=/dev/zero of=/dev/null bs=700M count=100
6.场景实践二:在每月第一天备份并压缩/etc目录的所有内容,存放到/root/bak目录,存放的形式 2019-11-05_etc.tar.gz,脚本名称为fileback,存放在/root的家目录下。
1.备份什么 /etc/
2.备份到哪里 /root/bak
3.怎么备份 gzip tar
4.带上时间信息
#!/bin/bash
Date=$(date +%F)
Bak_Dir=/root/bak
[ -d $Bak_Dir ] || mkdir -p $Bak_Dir
#2.判断文件存不存在
if [ ! -f $Bak_Dir/${Date}_etc.tar.gz ];then
tar czf $Bak_Dir/${Date}_etc.tar.gz /etc/ &>/dev/null
if [ $? -eq 0 ];then
echo "/etc/目录打包备份成功!"
else
echo "/etc/目录打包备份失败!"
exit
fi
else
echo "当前目录已经备份过!你可以检查一下是否重复备份!"
exit
fi
7.场景实践三:在/backup下创建10个.txt的文件,找到/backup目录下所有后缀名为.txt的文件
1)批量修改txt为txt.bak
2)把所有的.bak文件打包压缩为123.tar.gz
3)批量还原文件的名字,及把增加的.bak再删除
#!/bin/bash
dir=/backup
[ ! -e $dir ] && mkdir $dir || cd $dir
for i in {1..10}.txt
do
touch $i
done
find $dir -type f -name "*.txt" >$dir/txt.log
#循环
for i in $(cat $dir/txt.log)
do
mv $i ${i}.bak
done
echo "文件名已经全部修改为.bak."
#打包
if [ ! -f $dir/123.tar.gz ];then
tar czf $dir/123.tar.gz $(find $dir -type f -name "*.bak") &>/dev/null
if [ $? -eq 0 ];then
echo "所有的.bak文件已经打包压缩备份成功!"
else
echo "所有的.bak文件已经打包压缩备份失败!"
exit
fi
else
echo "所有的.bak文件已经打包压缩备份,看下是否重复备份!"
fi
#还原
find $Dir -type f -name "*.bak" >$Dir/bak.log
for i in $(cat $Dir/bak.log)
do
mv $i ${i%.*}
done
echo "文件名还原成功!"
8.取出下列字符串长度小于3的单词,I am qiuzengjia teacher I am 18。
#!/bin/bash
for i in I am qiuzengjia teacher I am 18
do
[ ${#i} -lt 3 ] && echo $i
done
9.做一个加减乘除的计算器。
#!/bin/bash
read -p "请输入第一个数字:" num1
read -p "请输入第二个数字:" num2
echo "$num1 + $num2 = $[ $num1 + $num2 ]"
echo "$num1 - $num2 = $[ $num1 - $num2 ]"
echo "$num1 * $num2 = $[ $num1 * $num2 ]"
echo "$num1 / $num2 = $[ $num1 / $num2 ]"
10.使用Shell脚本打印,系统版本、内核版本平台、虚拟平台、静态主机名、eth0网卡IP地址、eth1网卡IP地址、当前主机的外网IP地址curl -s icanhazip.com
#!/bin/bash
System=$(hostnamectl |awk '/System/{print $3,$4,$5}')
Kernel=$(hostnamectl |awk '/Kernel/{print $3}')
Vm=$(hostnamectl |awk '/Virtua/{print $2}')
Hostname=$(hostnamectl |awk '/Static/{print $3}')
Eth0=$(ifconfig eth0 |awk 'NR==2{print $2}')
Eth1=$(ifconfig eth1 |awk 'NR==2{print $2}')
Network=$(curl -s icanhazip.com)
echo "当前系统版本为:$System"
echo "当前内核版本及平台为:$Kernel"
echo "当前系统虚拟平台为:$Vm"
echo "当前系统静态主机名为:$Hostname"
echo "当前eth0 IP地址为:$Eth0"
echo "当前eth1 IP地址为:$Eth1"
echo "当前系统外网ip为:$Network"
11.需求描述:变量string="Bigdata process is Hadoop, Hadoop is open source project",执行脚本后,打印输出string变量,并给出用户以下选项:
#需求
1)打印string长度
2)删除字符串中所有的Hadoop
3)替换第一个Hadoop为Linux
4)替换全部Hadoop为Linux
用户请输入数字1|2|3|4,可以执行对应项的功能。
#!/bin/bash
while true
do
string="Bigdata process is Hadoop, Hadoop is open source project"
cat << EOF
1)、打印string长度
2)、删除字符串中所有的Hadoop
3)、替换第一个Hadoop为Linux
4)、替换全部Hadoop为Linux
EOF
read -p "用户请输入数字,可以执行对应项的功能: " ll
if [ $ll -eq 1 ];then
echo "${#string}"
fi
if [ $ll -eq 2 ]; then
echo ${string//Hadoop/}
fi
if [ $ll -eq 3 ]; then
echo ${string/Hadoop/Linux}
fi
if [ $ll -eq 4 ]; then
echo ${string//Hadoop/Linux}
exit
fi
echo "------------------------------------------"
done
12.判断用户存不存在系统,存不存在家目录。
#!/bin/bash
if grep $1 /etc/passwd &>/dev/null;then
echo "用户$1 存在该系统。"
if ls -d /home/$1 &>/dev/null;then
echo "用户$1 存在家目录。"
else
echo "用户$1 不存在家目录。"
fi
else
echo "用户$1 不存在该系统。"
if ls -d /home/$1 &>/dev/null;then
echo "用户$1 存在家目录。"
else
echo "用户$1 不存在家目录。"
fi
fi
13.文件比较场景实践,备份数据库
#1.备份mysql,手动输入你需要备份的库名称
1)提示用户手动输入库名称:read
2)如果用户输入数据库名称,则执行mysqldump命令备份
3)备份到哪,/backup/mysql
4)超过7天的删除
#!/bin/bash
#1.提示用户输入要备份的数据库
read -p "请输入你要使用哪一个用户进行备份:" Db_user
read -s -p "请输入备份用户的密码:" Db_pass
echo
read -p "请输入你要备份的数据库:" Db
#2.定义变量
Date=$(date +%F)
Bak_Dir=/backup/mysql
#3.判断备份目录是否存在
[ -d $Bak_Dir ] || mkdir -p $Bak_Dir &>/dev/null
#4.备份数据库
mysqldump -u$Db_user -p$Db_pass -B $Db > $Bak_Dir/${Date}_${Db}.sql
if [ $? -eq 0 ];then
echo "数据库$Db 备份成功!"
else
echo "数据库$Db 备份失败!"
exit
fi
#超过7天的数据删除
find $Bak_Dir -mtime +7 -delete
if [ $? -eq 0 ];then
echo "七天以前的数据清除成功!"
else
echo "七天以前的数据清除失败!"
exit
fi
14.查看磁盘/分区当前使用状态,如果使用率超过80%则报警发邮件
#!/bin/bash
Df=$(df -h |awk 'NR==2{print $5}')
if [ ${Df/\%/} -gt 10 ];then
echo "磁盘使用率过高!当前使用率为:$Df"
else
echo "磁盘使用率正常!当前使用率为:$Df"
fi
15. 场景实践三:条件测试,创建用户
0.提示用户输入一个要创建的用户
1.判断用户是否存在,存在则提示
2.不存在,则创建
3.判断创建是否成功
#!/bin/bash
read -p "请输入要创建的用户:" yh
grep $yh /etc/passwd &>/dev/null
if [ $? -eq 0 ];then
echo "该$yh 用户存在."
exit
else
useradd $yh &>/dev/null
if [ $? -eq 0 ];then
echo "用户$yh 创建成功!"
else
echo "用户$yh 创建失败!"
fi
fi
16.场景实践四:函数库使用,判断url地址是否能通
#!/bin/bash
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
read -p "请输入一个你要测试的url地址:" Url
ping -c1 -W1 $Url &>/dev/null
if [ $? -eq 0 ];then
action "该url地址$Url 是通的。" /bin/true
else
action "该url地址$Url 是不通的。" /bin/false
fi
17.根据学生录入的成绩判断,学生的优劣
0-60 补考
60-80 合格
80-100 优秀
思路:
两个条件判断
考虑整数
不能回车为空
单条件
[root@web /scripts/day04]# cat fenshu-1.sh
#!/bin/bash
read -p "请输入一个分数:" fs
expr $fs + 1 &>/dev/null
if [ ! $? -eq 0 ];then
echo "请输入一个整数!"
exit
fi
if [ -z $fs ];then
echo "不支持回车!"
exit
fi
if [ $fs -gt 100 ];then
echo "不支持100以上的数字"
elif [ $fs -ge 80 ];then
echo "优秀"
elif [ $fs -ge 60 ];then
echo "及格"
else
echo "补考"
fi
多条件
[root@web /scripts/day04]# cat fenshu.sh
#!/bin/bash
read -p "请输入一个分数:" fs
expr $fs + 1 &>/dev/null
if [ ! $? -eq 0 ];then
echo "请输入一个整数!"
exit
fi
if [ -z $fs ];then
echo "不支持回车!"
exit
fi
if [ $fs -ge 0 -a $fs -lt 60 ];then
echo "补考"
elif [ $fs -ge 60 -a $fs -lt 80 ];then
echo "及格"
elif [ $fs -ge 80 -a $fs -le 100 ];then
echo "优秀"
else
echo "只支持0-100的数字"
fi
18.写一个创建用户的脚本,需要输入创建用户的前缀,比如oldboy,以及后缀。比如123。
提示用户输入要创建的用户的前缀,且必须是字母
提示用户输入要创建的用户的后缀。且必须是数字
将前缀和后缀进行结合
在判断用户是否存在,存在则提示
不存在,则创建
[root@web /scripts/day04]# cat if-2.sh
#!/bin/bash
read -p "请输入创建用户的前缀(字母):" qz
if [ -z $qz ];then
echo "不支持回车!"
exit
fi
if [[ ! $qz =~ ^[a-Z]+$ ]];then
echo "请输入字母!"
exit
fi
read -p "请输入创建用户的后缀(整数):" hz
if [ -z $hz ];then
echo "不支持回车!"
exit
fi
if [[ ! $hz =~ ^[0-9]+$ ]];then
echo "请输入一个整数!"
exit
fi
User=${qz}${hz}
id $User &>/dev/null
if [ $? -eq 0 ];then
echo "用户${User}已经存在"
else
useradd $User &>/dev/null
if [ $? -eq 0 ];then
echo "用户$User 创建成功!"
else
echo "用户$User 创建失败!"
exit
fi
fi
19.使用root用户清空/var/log/messages日志,并每次执行保留最近100行
1.root用户执行 $USER $UID
2.判断文件是否存在
3.保留最近100行文件
[root@web /scripts/day04]# cat if-3.sh
#!/bin/bash
#1.判断是否是root用户
if [ ! $USER == "root" -a ! $UID -eq 0 ];then
echo "该用户$USER 对此脚本$0 没有执行权限!"
exit
fi
File=/var/log/messages
if [ ! -f $File ];then
echo "$FIle 文件不存在!"
exit
fi
if [ ! -s $File ];then
echo "文件存在,但是文件中没有任何内容!"
exit
fi
#2.清空并保留最近100行内容
tail -100 $File >${File}.bak && cat ${File}.bak >$File
if [ $? -eq 0 ];then
echo "日志清空成功!并保留了最近100行内容!"
rm -f ${File}.bak
else
echo "清空操作失败!"
fi
[root@web /scripts/day04]# cat if-3.sh
#!/bin/bash
#1.判断是否是root用户
if [ $USER == "root" -a $UID -eq 0 ];then
File=/var/log/messages
if [ -f $File ];then
if [ -s $File ];then
tail -100 $File >${File}.bak && cat ${File}.bak >$File
if [ $? -eq 0 ];then
echo "日志清空成功!并保留了最近100行内容!"
rm -f ${File}.bak
else
echo "清空操作失败!"
fi
else
echo "文件存在,但是文件中没有任何内容!"
exit
fi
else
echo "$FIle 文件不存在!"
exit
fi
else
echo "该用户$USER 对此脚本$0 没有执行权限!"
exit
fi
20.判断某个服务是否正常启动
位置变量 $1
判断用户是否执行脚本时加了位置变量
是否运行
端口是否存在
进程是否存在
systemctl status $1
netstat -lntup |grep $1
ps aux|grep $1 |grep -v grep
[root@web /scripts/day04]# cat if-5.sh
#!/bin/bash
if [ $# -ne 1 ];then
echo "请输入一个位置变量。"
echo "Usage: $0 {sshd|nginx|php-fpm|rsync|mariadb}"
exit
fi
Server=$1
if [ $Server == "mariadb" ];then
Server=mysqld
fi
#1.判断服务是否运行
systemctl status $Server &>/dev/null
Rc=$?
if [ $Rc -eq 0 ];then
echo "服务$Server 正在运行....."
elif [ $Rc -eq 4 ];then
echo "没有$Server 这个服务!"
exit
elif [ $Rc -eq 3 ];then
echo "服务$Server 没有运行..."
else
echo "你输入的服务名称不正确!"
fi
#2.判断端口号是否存在
netstat -lntup |grep $Server &>/dev/null
if [ $? -eq 0 ];then
echo "服务$Server 端口号存在!"
else
echo "服务$Server 端口号不存在!"
fi
#3.判断进程是否存在
ps aux |grep $Server | grep -v grep |grep -v 'pts' &>/dev/null
if [ $? -eq 0 ];then
echo "服务$Server 进程存在!"
else
echo "服务$Server 进程不存在!"
fi
21.根据不同的系统进行安装不同的yumy源,Centos6和Centos7
[root@web /scripts/day05]# cat yum.sh
#!/bin/bash
Version=$(awk '{print $(NF-1)}' /etc/redhat-release)
if [ ${Version%%.*} -eq 6 ];then
rm -rf /etc/yum.repos.d/* &>/dev/null
if [ $? -eq 0 ];then
echo "操作系统6系列的旧有的yum备份完毕!"
echo "开始更新Base源....."
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo &>/dev/null
if [ $? -eq 0 ];then
echo "Base更新成功!"
echo "开始更新Epel源....."
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo &>/dev/null
if [ $? -eq 0 ];then
echo "Epel源更新成功!"
else
echo "Epel源更新失败!"
fi
else
echo "Base更新失败!"
fi
else
echo "操作系统6系列的旧有的yum备份失败!"
exit
fi
elif [ ${Version%%.*} -eq 7 ];then
rm -rf /etc/yum.repos.d/* &>/dev/null
if [ $? -eq 0 ];then
echo "操作系统7系列的旧有的yum备份完毕!"
echo "开始更新Base源....."
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
if [ $? -eq 0 ];then
echo "Base更新成功!"
echo "开始更新Epel源....."
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo &>/dev/null
if [ $? -eq 0 ];then
echo "Epel源更新成功!"
else
echo "Epel源更新失败!"
fi
else
echo "Base更新失败!"
fi
else
echo "操作系统7系列的旧有的yum备份失败!"
exit
fi
else
echo "没有该系统版本的yum源!"
exit
fi
22.rsync启动脚本
思路
启动 /usr/bin/rsync --daemon
停止 pkill rsync
状态
创建一个pid文件
[root@web /scripts/day05]# cat case-3.sh
#!/bin/bash
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
if [ $# -ne 1 ];then
echo "请输入一个参数。"
echo "Usage: $0 {start|stop|restart|status}"
exit
fi
Pid=/var/run/rsync.pid
case $1 in
start)
if [ -f $Pid ];then
action "Rsync服务正在运行...." /bin/true
else
touch $Pid &>/dev/null && /usr/bin/rsync --daemon &>/dev/null
if [ $? -eq 0 ];then
action "Rsync服务启动成功!" /bin/true
else
action "Rsync服务启动失败!" /bin/false
rm -f $Pid &>/dev/null
exit
fi
fi
;;
stop)
if [ -f $Pid ];then
rm -f $Pid &>/dev/null
pkill rsync &>/dev/null || pkill rsync &>/dev/null
if [ $? -eq 0 ];then
action "Rsync服务停止成功!" /bin/true
else
action "Rsync服务停止失败!" /bin/false
fi
else
action "Rsync没有运行....." /bin/true
fi
;;
restart)
if [ -f $Pid ];then
rm -f $Pid &>/dev/null
pkill rsync &>/dev/null || pkill rsync &>/dev/null
if [ $? -eq 0 ];then
action "Rsync服务停止成功!" /bin/true
else
action "Rsync服务停止失败!" /bin/false
fi
sleep 3
touch $Pid &>/dev/null && /usr/bin/rsync --daemon &>/dev/null
if [ $? -eq 0 ];then
action "Rsync服务启动成功!" /bin/true
else
action "Rsync服务启动失败!" /bin/false
rm -f $Pid &>/dev/null
exit
fi
else
action "Rsync没有运行....." /bin/true
touch $Pid &>/dev/null && /usr/bin/rsync --daemon &>/dev/null
if [ $? -eq 0 ];then
action "Rsync服务启动成功!" /bin/true
else
action "Rsync服务启动失败!" /bin/false
exit
fi
fi
;;
status)
if [ -f $Pid ];then
action "Rsync服务正在运行....." /bin/true
else
action "Rsync服务没有运行....." /bin/true
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit
esac
23.nginx启动脚本
启动 /usr/sbin/nginx
停止 /usr/sbin/nginx -s stop
平滑重启 /usr/sbin/nginx -s reload 服务在运行才能平滑重启
重启 restart 当ip地址改变
[root@web /scripts/day05]# cat nginx.sh
#!/bin/bash
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
#加锁机制
suo=/opt/nginx.txt
if [ -f $suo ];then
echo "此脚本正在使用......"
exit
fi
if [ ! $USER == "root" -a ! $UID -eq 0 ];then
echo "该用户$USER 对此脚本$0 没有执行权限"
exit
fi
if [ $# -ne 1 ];then
echo "请输入一个参数!"
echo "Usage: $0 {start|stop|restart|status}"
exit
fi
touch $suo &>/dev/null
Pid=/var/run/nginx.pid
case $1 in
start)
if [ -f $Pid ];then
action "Nginx服务正在运行......" /bin/true
else
/usr/sbin/nginx &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务启动成功......" /bin/true
else
action "Nginx服务启动失败......" /bin/false
fi
fi
;;
stop)
if [ -f $Pid ];then
/usr/sbin/nginx -s stop &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务停止成功......" /bin/true
else
action "Nginx服务停止失败......" /bin/false
fi
else
action "Nginx服务没有运行......." /bin/true
fi
;;
reload)
if [ -f $Pid ];then
/usr/sbin/nginx -s reload &>/dev/null
if [ $? -eq 0 ];then
action "Nginx重载成功....." /bin/true
else
action "Nginx重载失败....." /bin/false
fi
else
action "Nginx服务没有运行!无法进行重载操作!" /bin/false
fi
;;
status)
if [ -f $Pid ];then
action "Nginx服务正在运行......" /bin/true
else
action "Nginx服务没有运行......" /bin/true
fi
;;
restart)
if [ -f $Pid ];then
/usr/sbin/nginx -s stop &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务停止成功....." /bin/true
else
action "Nginx停止失败....." /bin/false
fi
sleep 3
/usr/sbin/nginx &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务启动成功......" /bin/true
else
action "Nginx服务启动失败......" /bin/false
fi
else
action "Nginx服务没有运行....." /bin/true
/usr/sbin/nginx &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务启动成功......" /bin/true
else
action "Nginx服务启动失败......" /bin/false
fi
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac
rm -f $suo &>/dev/null
高级版nginx启动脚本
[root@web /scripts/day05]# cat nginx.sh
#!/bin/bash
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
#加锁机制
suo=/opt/nginx.txt
if [ -f $suo ];then
echo "此脚本正在使用......"
exit
fi
if [ ! $USER == "root" -a ! $UID -eq 0 ];then
echo "该用户$USER 对此脚本$0 没有执行权限"
exit
fi
if [ $# -ne 1 ];then
echo "请输入一个参数!"
echo "Usage: $0 {start|stop|restart|status}"
exit
fi
touch $suo &>/dev/null
Pid=/var/run/nginx.pid
case $1 in
start)
if [ -f $Pid ];then
action "Nginx服务正在运行......" /bin/true
else
/usr/sbin/nginx -t &>/dev/null
if [ $? -eq 0 ];then
/usr/sbin/nginx &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务启动成功......" /bin/true
else
action "Nginx服务启动失败......" /bin/false
fi
else
Err=/opt/nginx_err.log
/usr/sbin/nginx -t &>$Err
Nginx_Err_File=$(awk -F '[ :]' 'NR==1{print $(NF-1)}' $Err )
Nginx_Err_Line=$(awk -F '[ :]' 'NR==1{print $NF}' $Err )
echo "Nginx语法检查错误!在$Nginx_Err_File 文件中,在$Nginx_Err_Line 行。"
cat $Err
read -p "是否进入该文件进行修改[Y|N]:" qr
case $qr in
Y|Yes|yes|y)
vim +$Nginx_Err_Line $Nginx_Err_File
/usr/sbin/nginx -t &>/dev/null
if [ $? -eq 0 ];then
/usr/sbin/nginx &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务启动成功....." /bin/true
else
action "Nginx服务启动失败....." /bin/false
fi
else
echo "语法还是错误!继续加油修改!"
fi
;;
N|No|no|n)
echo "你选择自己手动修改!"
;;
*)
echo "你输入的不正确,请输入[Y|N]。"
esac
fi
fi
;;
stop)
if [ -f $Pid ];then
/usr/sbin/nginx -s stop &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务停止成功......" /bin/true
else
action "Nginx服务停止失败......" /bin/false
fi
else
action "Nginx服务没有运行......." /bin/true
fi
;;
reload)
if [ -f $Pid ];then
/usr/sbin/nginx -s reload &>/dev/null
if [ $? -eq 0 ];then
action "Nginx重载成功....." /bin/true
else
action "Nginx重载失败....." /bin/false
fi
else
action "Nginx服务没有运行!无法进行重载操作!" /bin/false
fi
;;
status)
if [ -f $Pid ];then
action "Nginx服务正在运行......" /bin/true
else
action "Nginx服务没有运行......" /bin/true
fi
;;
restart)
if [ -f $Pid ];then
/usr/sbin/nginx -s stop &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务停止成功....." /bin/true
else
action "Nginx停止失败....." /bin/false
fi
sleep 3
/usr/sbin/nginx &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务启动成功......" /bin/true
else
action "Nginx服务启动失败......" /bin/false
fi
else
action "Nginx服务没有运行....." /bin/true
/usr/sbin/nginx &>/dev/null
if [ $? -eq 0 ];then
action "Nginx服务启动成功......" /bin/true
else
action "Nginx服务启动失败......" /bin/false
fi
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac
rm -f $suo &>/dev/null
#!/bin/bash
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
ZT=$1
PID=/var/run/nginx.pid
State () {
if [ $? -eq 0 ];then
action "nginx 服务 $ZT 成功" /bin/true
else
action "nginx 服务 $ZT 失败" /bin/false
fi
}
Start () {
if [ -f $PID ];then
action "nginx 启动中" /bin/true
else
/usr/sbin/nginx &>/dev/null
ZT=start
State
fi
}
Stop () {
if [ -f $PID ];then
action "nginx 启动失败" /bin/true
else
/usr/sbin/nginx -s stop &>/dev/null
ZT=stop
State
fi
}
Reload () {
if [ -f $PID ];then
action "nginx 启动中" /bin/true
else
/usr/sbin/nginx -s reload &>/dev/null
echo "正在加载中"
fi
}
Status () {
if [ -f $PID ];then
action "nginx 启动中" /bin/true
else
action "nginx 没启动" /bin/false
fi
}
case $ZT in
start)
Start
State
;;
stop)
Stop
State
;;
restart)
Stop
sleep 2
Start
;;
status)
Status
;;
*)
echo "你输入的不对!"
exit
esac
网友评论