1、ping主机测试

[root@localhost shell]# vim ping.sh//脚本内容如下:
#!/bin/bash
read -p "请输入域名:" ad
if ping -c4 $ad &> /dev/null
thenecho $ad is up
elseecho $ad is down
fi//测试:
[root@localhost shell]# sh ping.sh
请输入域名:www.baidu.com
www.baidu.com is down

2、判断一个用户是否存在

[root@localhost shell]# vim user.sh//脚本内容如下:
#!/bin/bashread -p "请输入用户名:" us
id $us
if [ $? -eq 0 ]
thenecho "用户已存在!"
elseecho "用户不存在!"
fi//测试:
[root@localhost shell]# sh user.sh
请输入用户名:root
uid=0(root) gid=0(root) groups=0(root)
用户已存在!

3、判断当前内核主版本是否为3,且次版本是否大于10

[root@localhost shell]# uname -r
3.10.0-1160.el7.x86_64[root@localhost shell]# vim banben.sh
//脚本内容如下:
#!/bin/bash
main=`uname  -r | awk -F . '{print $1 }'`
minor=`uname -r | awk -F . '{print $2}'`
if [ "$main"  -eq 3 ] && [ "$minor" -ge 10 ]
thenecho "主版本是:$main
次版本是:$minor"
elseecho "主版本不是 3"
fi//测试:
[root@localhost shell]# sh banben.sh
主版本是:3
次版本是:10

4、判断vsftpd软件包是否安装,如果没有则自动安装

[root@localhost shell]# vim yum.sh
//脚本内容如下:
#!/bin/bash
if rpm -q vsftpd &> /dev/null
thenecho "已经安装"
elseecho "未安装我将自动安装!"yum install vsftpd -y &> /dev/nullecho "安装成功"
fi//测试:
[root@localhost shell]# sh yum.sh
未安装我将自动安装!
安装成功
[root@localhost shell]# rpm -q vsftpd
vsftpd-3.0.2-29.el7_9.x86_64

5、判断httpd是否运行

[root@localhost shell]# vim httpdsun.sh
//脚本内容如下:
#!/bin/bash
if [ $(ps -elf | grep httpd | grep -v grep|wc -l) -eq 0 ]
thenecho "httpd没有运行"
elseecho "httpd正在运行"
fi//测试:
[root@localhost shell]# sh httpdsun.sh
httpd正在运行

6、判断指定的主机是否能ping通,必须使用$1变量

[root@localhost shell]# vim ping2.sh
//脚本内容如下:
#!/bin/bash
ping -c 2 $1 &> /dev/null
if [ $? -eq 0 ]
thenecho "成功ping通"
elseecho "未能ping通!"
fi//测试:
[root@localhost shell]# sh ping2.sh www.baidu.com
未能ping通!

7、报警脚本,要求如下:
根分区剩余空间小于20%
内存已用空间大于80%
向用户alice发送告警邮件
配合crond每5分钟检查一次
[root@locaklhost ~]# echo "邮件正文" | mail -s "邮件主题" alice

[root@localhost shell]# sh baojing.sh
//脚本内容如下:
total_mem=$(free -m | tr -s " " | cut -d " " -f 2 | head -2 | tail -1)
used_mem=$(free -m | tr -s " " | cut -d " " -f 3 | head -2 | tail -1)
used_memper=$(echo "scale=2;$used_mem/$total_mem*100" | bc)
total_root=$(df | grep "/"$ |tr -s " " | cut -d " " -f 2)
used_root=$(df | grep "/"$ |tr -s " " | cut -d " " -f 4)
free_rootper=$(echo "scale=2;$used_root/$total_root*100" | bc)
v1=$(echo "used_memper > 80" | bc)
v2=$(echo "free_rootper < 20" | bc)
if [ $v1 -eq 1 ];thenecho "内存已用空间大于80%" | mail -s "警告信息" alice
elif [ $v2 -eq 1 ];thenecho "根分区剩余空间小于20%" | mail -s "警告信息" alice
elseecho "正常使用"
fi//测试:
[root@localhost shell]# sh baojing.sh
You have mail in /var/spool/mail/root

8、判断用户输入的是否是数字

[root@localhost shell]# vim number.sh
//脚本内容如下:
#!/bin/bash
read -p "请输入一个数字:" num
if expr $num + 1 &> /dev/null
thenecho "是数字"
elseecho "不是数字!"
fi//测试:
[root@localhost shell]# sh number.sh
请输入一个数字:2
是数字
[root@localhost shell]# sh number.sh
请输入一个数字:a
不是数字!

shell 第三次练习相关推荐

  1. Linux Shell高级技巧(三)

    十三.格式化输出指定用户的当前运行进程: 在这个例子中,我们通过脚本参数的形式,将用户列表传递给该脚本,脚本在读取参数后,以树的形式将用户列表中用户的所属进程打印出来.       /> cat ...

  2. Shell脚本三种循环

    Shell脚本三种循环 文章目录 Shell脚本三种循环 一.for循环 for语句结构 二.while循环 while语句结构 三.until循环 until语句结构 四.常用转义字符 一.for循 ...

  3. Linux的冒号和波浪号用法,shell 学习三十五天---波浪号展开与通配符

    shell 学习三十五天---波浪号展开与通配符 shell 中两种与文件名相关的展开.第一种是波浪号展开,第二种是通配符展开式. 波浪号展开 如果命令行字符串的第一个字符为波浪号(~),或者变量指定 ...

  4. Shell第三篇:基本语法

    一 什么是shell script 将OS命令堆积到可执行的文件里,由上至下的顺序执行文本里的OS命令 就是脚本了. 再加上些智能(条件/流控)控制,就变成了智能化脚本了. 二 变量 part1 为何 ...

  5. Linux的shell编程(三)

    接下来以bash为例向大家介绍shell程序设计的高级部分:shell编程的流程控制.调试方法及shell程序的运行方法,顺便也向大家介绍一下bash的内部命令. 四.shell程序设计的流程控制 和 ...

  6. Shell编程(三)grep sed awk文本处理三剑客

    上一章: Shell编程(二)_做测试的喵酱的博客-CSDN博客 一.ps命令 指令: ps 作用: 主要是查看服务器的进程信息 选项含义: -e:等价于 '-A' ,表示列出全部的进程 -f:显示全 ...

  7. shell脚本--三种引号的区别

    shell脚本中,三种引号分别为:单引号(''),双引号(""),反引号(``),反引号就是键盘esc下面的那个键. (1) 单引号:在单引号之间的内容,是不会被解析的,会原样输出 ...

  8. [网络安全自学篇] 七十五.Vulnhub靶机渗透之bulldog信息收集和nc反弹shell(三)

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步.前文分享了APT攻击检测溯源与常见APT组织的攻击案例,并介绍防御措施.这篇文章将讲 ...

  9. Shell第三天-讲义

    学习目标 理解expr命令的作用 能够使用(())进行整数的数学运算 能够使用let进行整数的数学运算 能够使用bc进行数学运算 掌握流程控制语句的使用 掌握自定义函数的使用 掌握Shell重定向输入 ...

  10. shell学习三十五天----波浪号展开与通配符

    波浪号展开与通配符 shell中两种与文件名相关的展开.第一种是波浪号展开,第二种是通配符展开式. 波浪号展开 如果命令行字符串的第一个字符为波浪号(~),或者变量指定(例如PATH或CDPATH变量 ...

最新文章

  1. 007_Vue style样式绑定
  2. NYOJ 303 序号转换 数学题
  3. (Prototype)原型模式的Java实现(转)
  4. 秒杀多线程第十二篇 多线程同步内功心法——PV操作上
  5. 平台建设的根节与基础保障——互联网平台建设系列...
  6. (四)数据结构与算法-链表
  7. 计算机注销命令,Win7使用DOS命令实现定时自动关机,注销、重启的方法
  8. js导出变量 vue_vue.js前端实现excel表格导出和获取headers里的信息
  9. 微信支付需要证书认证时报“出现了内部错误”
  10. Esp8266(1)
  11. 你所不知道的@ComponentScan注解用法之包路径占位符
  12. 阿里图标库使用(在线使用)
  13. iOS 10 消息推送
  14. ES6(ECMAScript)快速使用
  15. 大一训练赛-20180929-整套代码
  16. 彻底解决烦人的win10更新
  17. java如何创建枚举类型_Java如何创建枚举类型?
  18. 传统餐桌行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  19. 360 网站卫士 香港服务器,360网站卫士全民HTTPS免费开启
  20. Zabbix系列一:开启Zabbix的部署及安装之旅

热门文章

  1. 机器学习—数据清洗总结
  2. 实用贴丨正确的「递归」打开方式:让计算机像计算机一样去计算
  3. 学习强化学习无法避开的两个词:Model-Based与Model-Free
  4. 《Effective STL中文版》译序
  5. C/C++中static与const的区别与联系
  6. matplotlib绘图基础
  7. pandas小记:pandas数据结构和基本操作
  8. 【SimpleITK】Resampling重采样
  9. Identity Mappings in Deep Residual Networks2016【论文理解】
  10. 如何在邮件中加入html代码,如何在电子邮件正文中嵌入HTML文件