前几天学习了一些shell脚本编写,今天把它记下来。
下面的脚本是修改电脑的ip地址、子网掩码、网关。
#!/bin/bash //这句话是指定脚本的解释器是bash
read -p "please input IPADDR:"IP //read -p这个语句就是通过键盘让自己输入要输入的内容
read -p "please input NETMASK:"MASK
read -p "please input gateway:"WAY
cd /etc/sysconfig/network-scripts/
echo "TYPE=Ethernet" >> ifcfg-ens33
echo "BOOTPROTO=static" >> ifcfg-ens33
echo "DEVICE=ens33" >> ifcfg-ens33
echo "ONBOOT=yes" >> ifcfg-ens33
echo "IPADDR=$IP" >> ifcfg-ens33
echo "NETMASK=$MASK" >> ifcfg-ens33
echo "GATEWAY=$WAY" >> ifcfg-ens33
ifdown ens33
ifup ens33
下面是脚本的一些符号及作用。这两张图片来自这个网址https://blog.csdn.net/qq_40964554/article/details/100899628。这个人写的shell的知识点很好,很详细。
下面的脚本是测试主机存活量。
#!/bin/bash
read -p "please input:"IP
if `ping -c2 -i0.2 -w2 $IP &>/dev/null` //这里的if语句是通过命令执行的成功还是失败来决定执行then语句,还是else语句。
then echo "$IP is up"
else echo "$IP is down"
fi
下面的脚本也是测试主机存活量,不过加入了for循环。
#!/bin/bash
W=100.100.100.
for I in {1..254}
do
if `ping -c2 -i0.2 -w2 $W$I &>/dev/null`
then echo "$W$I is up"
else echo "$W$I is down"
fi
done
下面的脚本也是测试主机存活量,不过加入了while循环。
#!/bin/bash
W=100.100.100.
IP=0
while [$IP -lt 254]
do
let IP=IP+1
if `ping -c2 -i0.2 -w2 $W$IP &>/dev/null`
then echo "$W$I is up"
else echo "$W$I is down"
fi
done
下面介绍一下case语句和函数。
funa(){
echo "hello1"
return 0
}
funb(){
echo "hello2"
return 0
}
func(){
echo "hello3"
return 0
}
case $1 in
funa)
funa
;;
funb)
funb
;;
func)
func
;;
*)
echo "please input correct sentence"
;;
esac
下面写一个nginx开机启动脚本。
#!/bin/bash
nginx=/usr/local/nginx/sbin/nginx //这个路径是nginx的命令路径
chkconfig:- 66 25
description:nginx script
startd(){
echo "nginx starting success"
$nginx
}
startus(){
if `ss -antpl | grep nginx > /dev/null`
then echo "nginx starting success"
else echo "nginx stoping "
}
stop(){
echo "nginx stoping success"
$nginx -s stop
}
case $1 in
startd)
startd
;;
startus)
startus
;;
stop)
stop
;;
restart)
stop
startd
;;
*)
echo "Usage :$0 {startd | stop | startus | restart}"
esac
脚本已经编完,下面是让脚本开机自启。首先执行这条命令,查看chkconfig对nginx控制的配置文件有没有问题,是否在管理列表。
chkconfig --list 脚本名
下面的命令是加入管理列表。
chkconfig add 脚本名
再次执行【chkconfig --list 脚本名】这个命令,发现没问题。接下来是把图形级别5打开。
chkconfig --level 5 脚本名 on
再次执行【chkconfig --list 脚本名】这个命令,发现5后面已经打开。
下面是重启系统【reboot】。重启之后执行【ss -antpl | grep 80]命令,查看80端口打开,这说明nginx已经开机自启了。这个实验前最好把httpd关掉。
结束