
黄葬红尘技术QQ: 499839808
Linuxif语句外壳脚本示例
脚本1: 编写Shell脚本以监视主机
使用vi命令在/根目录下创建一个新的脚本文件sysmon.sh,内容如下:
附加:
a: 使用df命令提取根分区的磁盘占用率: 如下图所示:
使用df-h命令检查磁盘分区的使用情况,其中根分区的已用空间为10%
使用以下命令过滤磁盘的已用空间
b: 使用mpstat命令提取CPU使用率(确保已安装sysstat软件包). 如下图所示: %idle表示CPU空闲时间的百分比
使用下图中的命令获取CPU使用空间并将其分配给变量CUG
c: 使用free命令查看内存使用情况. 红线表示可用内存.
使用下图中的命令获取内存使用率并将其分配给变量MUG
2. 使用chmod命令向sysmon.sh文件添加执行(x)权限.

3. 测试sysmon.sh脚本的执行情况
a: 配置DNS服务以解析邮件服务器的MX和A记录
b: 修改/etc/resolv.conf文件以指向DNS服务器地址
c: 配置邮件服务器
如果是后缀服务器,则配置如下:
用以下内容修改main.cf文件:
重新启动后缀服务. 并发测试电子邮件.
d: 确认邮件服务器可用,然后降低监视阈值并执行sysmon.sh脚本进行测试
e: 检查名为monitor@benet.com的邮箱并确认警告电子邮件的内容
消息如下:
4. 设置crontab以安排任务并每半分钟调用sysmon.sh脚本
重新启动crond服务.
脚本2: 提示用户指定备份目录的路径
编写一个SHELL脚本(mkbak.sh),以提示用户指定备份目录的路径. 如果目录已经存在,请显示提示信息并跳过它,否则,在显示相应信息后创建目录.

脚本3: 每5分钟监视一次系统服务mysqld的运行状态
每5分钟编写一个脚本程序(chkdbsvr.sh)监视系统服务mysqld的运行状态. 如果发现mysqld进程已停止,请添加日志信息(包括时间),然后重新启动mysqld服务. 否则,什么都不做
脚本4: 监视系统服务httpd的运行状态
编写脚本程序以监视系统服务httpd的运行状态,要求如下
当服务状态异常时,将信息记录在“ /var/log/htmon.log”文件中.
自动重新启动出现故障的httpd服务. 如果重新启动httpd服务失败,请尝试重新启动服务器主机.
与crond计划的任务结合使用,监视任务在每个星期一至星期五每15分钟执行一次
在/ opt目录中创建脚本htmon.sh,脚本内容如下
#! / bin / bash
/ sbin / servicehttpd状态&> / dev / null
如果[$? -ne 0];然后
回显“ httpd isdown. at time: `date`” >> / var / log / htmon.log
/ sbin / servicehttpd重新启动
/ sbin / servicehttpd状态&> / dev / null
如果[$? -ne 0];然后
/ sbin / chkconfig-2345级httpd on
/ sbin / shutdown -rnow

fi
fi
Crontab创建任务
* / 15 * * * * / opt / htmon.sh
脚本5(单个分支): 创建目录
许多Linux用户习惯于将CD-ROM设备挂载在/ media / cdrom目录中,但是在RHEL5系列中,默认情况下未创建此目录. 如果要在外壳程序脚本中执行安装CD-ROM的操作,建议首先确定安装点的目录. 是否存在,请创建此目录.
向脚本添加执行权限,最后成功创建目录
脚本6(单分支): 普通用户无法执行根脚本
某些特权命令操作需要以root用户身份执行. 如果当前用户不是root用户,则无需再次执行这些命令(肯定会失败). 在这种情况下,您可以首先确定当前用户是否为脚本的root用户,如果不是,则报告错误并执行“ exit1”退出脚本(1表示退出后的返回状态值),并且不执行其他任何代码.
授予脚本执行权限
root用户执行的结果
以root用户身份执行脚本时linux shell if语句,“非root”条件不成立,因此if语句不执行任何操作,并且if之后的脚本代码正常执行
切换到其他用户以执行脚本结果

当普通用户执行脚本时,由于建立了“非root”条件,因此将提示他权限不足并退出脚本(使用“ exit1”退出脚本后,在fi之后执行fdisk命令)将不会执行)
脚本7(双分支): ping测试脚本
双分支if语句仅在单个分支的基础上基于“单一条件”执行另一操作,而不是“静坐而无所事事”. 例如linux shell if语句,如果要编写连接性测试脚本pinghost.sh,并通过location参数$ 1提供目标主机地址,然后根据ping检测结果给出相应的提示,则可以参考操作过程. / p>
向脚本添加执行权限
在上面的脚本代码中,为了提高ping命令的测试效率,“-c”,“-i”和“ -W”选项用于指定三个测试数据包的发送,间隔为0.2秒,超时为3. 此外,ping命令执行过程的输出被“&> / dev / null”阻止. 执行pinghost.sh脚本的效果如下所示.
脚本8: 检查mysqld服务是否正在运行
检查mysqld服务是否正在通过Shell脚本运行. 如果已在运行,请列出其侦听地址和FID编号,否则输出将提示“警告: mysqld服务不可用”. 其中,Pgrep命令的“ -x”选项表示搜索. 使用完全匹配.
授予脚本执行权限
脚本执行将显示以下结果(启动服务时显示的信息及其关系)
脚本9(多分支):
与单分支和双分支if语句相比,多分支if语句的实际应用很少. 该结构可以根据多个互斥条件执行不同的操作,这实际上等效于嵌套. 例如,如果使用语句编写一个gradediv.sh脚本,该脚本根据输入的测试分数区分优,合格和不合格三个等级,则可以参考操作过程.
授予脚本执行权限并执行脚本. 输入67点,78点和89点以测试脚本是否可用.
if语句外壳脚本“ />”的示例
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-150912-1.html
结果生了好多小蛆
3333333333333333