《云计算》Shell的基础应用(3)

本文详细介绍了如何使用Shell脚本来实现循环结构,包括for循环和while循环,以及如何编写带有case分支的服务脚本,用于启动、停止、重启服务。文章通过具体的案例展示了如何检测主机存活状态、批量添加和删除用户账号,以及检测网络中不在线的主机。同时,文章还介绍了如何创建自定义服务myprog,并将其添加到系统服务管理中。
摘要由CSDN通过智能技术生成

1.使用for循环结构
问题
本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下:
待检测的多个目标IP地址,存放在ipadds.txt文件内
ping检测可参考前一天的pinghost.sh脚本
脚本能遍历ping各主机,并反馈存活状态
执行检测脚本以后,反馈结果如图-1所示。

图-1在这里插入图片描述
方案
在Shell脚本应用中,常见的for循环采用遍历式、列表式的执行流程,通过指定变量从值列表中循环赋值,每次复制后执行固定的一组操作。
for循环的语法结构如下所示:
for 变量名 in 值列表
do
命令序列
done
步骤
实现此案例需要按照如下步骤进行。
步骤一:练习for循环基本用法
脚本1,循环输出“我来自 XX 。”,其中XX替换为指定的几个城市名:
[root@svr5 ~]# vim for01.sh
#!/bin/bash
for i in “北京” “上海” “长沙” “香港” “台湾”
do
echo “我来自 $i 。”
done
[root@svr5 ~]# chmod +x for01.sh
脚本1的运行结果测试:
[root@svr5 ~]# ./for01.sh
我来自 北京 。
我来自 上海 。
我来自 长沙 。
我来自 香港 。
我来自 台湾 。
脚本2,列出Yum库中vsftpd、bind、httpd、mysql-server四个软件包的摘要描述信息(Summary行的描述文本):
[root@svr5 ~]# vim for02.sh
#!/bin/bash
for i in “vsftpd” “bind” “httpd” “mysql-server”
do
yum info KaTeX parse error: Expected 'EOF', got '#' at position 39: …e [root@svr5 ~]#̲ chmod +x for02…(cat /root/ipadds.txt)
for IP in $HLIST
do
ping -c 3 -i 0.2 -W 3 $IP &> /dev/null
if [ $? -eq 0 ] ; then
echo “Host $IP is up.”
else
echo “Host $IP is down.”
fi
done

[root@svr5 ~]# chmod +x chkhosts.sh
4)测试、验证脚本
[root@svr5 ~]# ./chkhosts.sh
Host 192.168.4.5 is up.
Host 192.168.4.205 is up.
Host 172.16.16.78 is down.
Host 202.106.178.234 is down.
2.使用while循环结构
问题
本案例要求编写三个使用while循环的脚本程序,分别实现以下目标:
批量添加用户账号:stu1-stu20
批量删除用户账号:stu1-stu20
检测192.168.4.0/24网段,列出不在线的主机地址
方案
while循环属于条件式的执行流程,会反复判断指定的测试条件,只要条件成立即执行固定的一组操作,直到条件变化为不成立为止。所以while循环的条件一般通过变量来进行控制,在循环体内对变量值做相应改变,以便在适当的时候退出,避免陷入死循环。
while循环的语法结构如下所示:
while 条件测试
do
命令序列
done
步骤
实现此案例需要按照如下步骤进行。
步骤一:批量添加用户账号stu1-stu20
添加的账号有固定的前缀stu(练习中可自行设置),多个账号从1开始编号,比如stu1、stu2、stu3、……、stu20。—— 编写脚本uaddwhile.sh,实现批量添加这20个用户账号的功能,密码均设为123456。
脚本编写参考如下:
[root@svr5 ~]# vim uaddwhile.sh
#!/bin/bash
PREFIX=“stu” //定义用户名前缀
i=1
while [ $i -le 20 ]
do
useradd P R E F I X {PREFIX} PREF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值