zoukankan      html  css  js  c++  java
  • Shell 07 项目案例

    案例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 '33[43m 33[0m'
            sleep 0.3
    done
    }
    jindu &
    cp -r  $1  $2
    kill $!
  • 相关阅读:
    点击滚动到任意位置
    设置滚动条
    突破浏览器限制字体大小不能低于12px的限制
    font-family 字体及各大主流网站对比
    可视区尺寸改变的时候,重绘Echarts
    <input />
    switch (xx) { case xx: break ......}
    让页面随浏览器的窗口大小缩放而缩放
    对后端返回的 html 标签不识别的解决办法
    html 标签分类:块级元素、内联元素 ......
  • 原文地址:https://www.cnblogs.com/luwei0915/p/10496676.html
Copyright © 2011-2022 走看看