一、单分支if条件语句
格式如下
if语句的结尾是”fi“,这里的“[ 条件判断式 ]”即上一节的《内容Shell编程--条件判断》,使用test命令进行判断;then表示"那么"的意思。
if单分支是说,只有条件判断式判断成功,则执行”程序“;如果不成功,则不执行任何操作。
应用场景:判断分区使用率大于等于80,则报警或者发送到邮件
第一行:标称以下语言是linux bash脚本语言,不能省略。
第二行:作者注释
第三行:将提取出使用率的数字赋予us_rage变量
第四行:使用-ge判断大于等于
第六行:实际工作中用的较多的是发送邮件,这里只是举例。
脚本编写完毕,实际工作中,应该怎么使用呢?
windows server有定时任务,同样的linux也有,在特定的时间执行特定的工作,包括脚本。所以正常来说,bash shell脚本很大一部分是为crontab定时任务服务的。关于这个crontab以后再说,只需要知道就可以了。
df -hT我明明可以直接执行就可以看到,为什么我还需要脚本来执行呢?
如果只是几台服务器,可以直接键入命令。可是如果管理的是成百上千的服务器,这个时候shell脚本的作用就体现出来了。所以,Linux Shell最大的好处就是所有的系统命令都可以在脚本当中直接调用,而不需要每天去敲命令(有时候还忘记)大大减少工作量。
二、双分支if条件语句
这也是最常见的条件判断方式。
应用场景1:备份mysql数据库(完整备份)
备份的意思是说从原始的位置进行复制,做一个压缩放到其他地方。备份分完整备份与差异备份,完整备份是把整个目录全部备份,下一次备份又把整个目录进行备份;而差异备份是在第一次完整备份的基础上,仅仅备份新出现的数据。
第十四行:-d判断目录是否存在
这个脚本同样的需要定时任务,每天指定的时间执行一次。
应用场景2:判断apache是否启动(也可以稍微修改判断其对外服务是否启动)
判断服务是否启动且正常接收客户端请求在实际的生产服务器上非常常见,这里推荐使用nmap命令。nmap是一个远程扫描命令,nmap的选项非常的多,常见的是-sT与-sU,对应扫描的是TCP与UDP。
这里我采用rpm包安装httpd,启动服务如下图:
脚本的内容如下:
利用双等于号判断两个字符串是否相等。事先我启动了httpd服务,这是执行脚本后的内容:
同样需要系统的定时任务,每隔15分钟定时执行一次。
三、多分支if条件语句
格式如下:
应用场景:判断用户输入的是什么文件
赋予755权限,然后执行。
领取专属 10元无门槛券
私享最新 技术干货