案例1:编写一键部署软件脚本
案例2:启动脚本
案例3:编写监控脚本
案例4:编写安全检测脚本
案例5:编写进度显示脚本
 
一.编写一键部署软件脚本
#!/bin/bash
N=$(yum repolist | awk '/repolist/{print $2}' | sed 's/,//')
if [$N -le 0];then
  echo "yum不可用"
  exit
fi
yum -y install gcc openssl-devel pcre-devel
tar -xf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure
make
make install
/usr/local/nginx/sbin/nginx -V
 
二.编写监控脚本
#!/bin/bash
case $1 in
start)
      usr/local/nginx/sbin/nginx;;
stop)
      usr/local/nginx/sbin/nginx -s stop;;
restart)
      usr/local/nginx/sbin/nginx -s
      usr/local/nginx/sbin/nginx;;
status)
      netstat -ntulp | grep -q nginx
      if [ $? -eq 0 ];then
          echo "服务已启动"
      else
          echo "服务未启动"
      fi;;
*)
     echo "ERROR";;
esac
 
三.编写监控脚本
本案例要求编写脚本,实现计算机各个性能数据监控的功能,具体监控项目要求如下:
CPU负载
网卡流量
内存剩余容量
磁盘剩余容量
计算机账户数量
当前登录账户数量
计算机当前开启的进程数量
本机已安装的软件包数量
#!/bin/bash
ip=`ifconfig enp2s0 | awk '/inet /{print $2}'`
echo "本地IP地址是:"$ip
cpu=`uptime | awk '{print $NF}'`
echo "本机CPU最近15分钟的负载是:$cpu"
net_in=`ifconfig enp2s0 | awk '/RX p/{print $5}'`
echo "入站流量为:"$net_in
net_out=`ifconfig enp2s0 | awk '/TX p/{print $5}'`
echo "出站流量为:"$net_out
mem=`free | awk '/Mem/{print $4}'`
echo "内存剩余容量为:"$mem
disk=`df -h | awk '/\/$/{print $4}'`
echo "根分区剩余容量为:"$disk
user=`cat /etc/passwd | sed -n '$='`
echo "本地用户数量为:"$user
login=`who | wc -l`
echo "当前可登陆的用户数量为:"$login
process=`ps aux | wc -l`
echo "当前计算机启动的进程数量为:"$process
soft=`rpm -qa | wc -l`
echo "当前计算机已安装的软件数量为:"$soft
 
四.编写安全检测脚本
本案例要求编写脚本,防止远程ssh暴力破解密码,具体监控项目要求如下:
检测ssh登录日志,如果远程登陆账号名错误3次,则屏蔽远程主机的IP
检测ssh登录日志,如果远程登陆密码错误3次,则屏蔽远程主机的IP
#!/bin/bash
awk '/Faile/{print "登陆失败的有:" $11}' /var/log/secure
awk '/Acc/{print "登陆成功的有:" $11}' /var/log/secure
 
五.编写进度条
#!/bin/bash
jindu(){
while :
do
    echo -ne '\033[43m \033[0m'
        sleep 0.3
done
}
jindu &
cp -r  $1  $2
kill $!

Shell 07 项目案例的更多相关文章

  1. Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗

    网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例 ...

  2. Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

    网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例 ...

  3. 02.02.03第3章 餐饮项目案例(Power BI商业智能分析)

    02.02.03第3章 餐饮项目案例 02.02.03.01餐饮数据理解与读入 00:06:12 02.02.03.02餐饮数据处理 00:29:57 处理生成的表为: 02.02.03.03餐饮数据 ...

  4. vue-cli脚手架——2.0版本项目案例

    一.[准备工作] Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/. Git 各平台安装包下载地址为:http://git-scm.com/dow ...

  5. 100个Linux Shell脚本经典案例(附PDF)

    转载自:https://mp.weixin.qq.com/s/tCKAM67_7K7q2vJthaIsDQ 原文链接:https://wenku.baidu.com/view/4f089430a116 ...

  6. Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析

    网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:http://www.cnbl ...

  7. shell讲解-小案例

    shell讲解-小案例 一.文件拷贝输出检查 下面测试文件拷贝是否正常,如果cp命令并没有拷贝文件myfile到myfile.bak,则打印错误信息.注意错误信息中basename $0打印脚本名.如 ...

  8. Selenium自动化测试项目案例实践公开课

    Selenium自动化测试项目案例实践公开课: http://gdtesting.cn/news.php?id=55

  9. Java学生管理系统项目案例

    这是一个不错的Java学生管理系统项目案例,希望能够帮到大家的学习吧. 分代码如下 package com.student.util; import java.sql.Connection; impo ...

随机推荐

  1. cv2.VideoWriter()指定写入视频帧编码格式

    帧速率 fps 和 帧大小,通过VideoCapture类的get()函数得到. 编码参数:cv2.VideoWriter_fourcc('I','4','2','0')---未压缩的YUV颜色编码, ...

  2. glib系列1 编译

    1 安装 meson glib 使用 meson进行构建,需要python3,首先下载meson, meson/meson.py 就是程序本身了,可以直接运行 git clone https://gi ...

  3. go 结构体2 文法

    结构体文法表示通过结构体字段的值作为列表来新分配一个结构体. 使用 Name: 语法可以仅列出部分字段.(字段名的顺序无关.) 特殊的前缀 & 返回一个指向结构体的指针. //分配的v1结构体 ...

  4. 其实每个行业都有各自的辛苦,好的程序员并不累,他们乐此不疲(见过太多在职位事业、人生方向上随转如流的人,累了疲乏了就去做别的事情了。必须有自己的坚守和立足的点,自我驱动,否则沦为在别人的体制制度中被驱赶一生)good

    作者:陈柯好链接:https://www.zhihu.com/question/39813913/answer/104275537来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  5. 怎样获取当前对象的原型对象prototype

    1. 使用 Object.getPrototypeOf(); function Person(name){ this.name = name; } var lilei = new Person(&qu ...

  6. JS OOP -01 面向对象的基础

    JS面向对象的基础: 1.用定义函数的方式定义类 2.用new操作符获得一个类的实例 3.使用 [ ] 引用对象的属性和方法 4.动态添加,修改,删除对象的属性和方法 5.使用 { } 语法创建无类型 ...

  7. js移动端回退监听 popstate

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. 操作RDS文档说明

    操作RDS文档,让你对阿里云的知识更加了解.

  9. navicat 控制mysql某个数据库只属于某个用户

    1.使用navicat 1)首先使用root用户新建连接 2)新建mysql用户 3)点击权限,选择添加权限,出现MySQL中已存在的数据库列表,选择你要为该新建用户开放的数据库,此处选择“maiba ...

  10. [LeetCode] 22. 括号生成 ☆☆☆(回溯)

    描述 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(()( ...