案例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 $!

最新文章

  1. 嵌入式linux开发环境构建
  2. OS初识
  3. iOS - Mac OS X 终端命令
  4. PHP学习之一晚撸下W3chscool
  5. 【MongoDB】mongoimport and mongoexport of data (一)
  6. 【Java基础】Java内部类
  7. Js 直接下载保存文件
  8. navicat如何导入sql文件
  9. JNDI中 java:comp/env 的理解
  10. python 关于操作文件的相关模块(os,sys,shutil,subprocess,configparser)
  11. Linux背背背(5)
  12. LR运行负载测试场景-笔记
  13. spring gateway 截取response 长度缺失
  14. html 速查表
  15. [SQL ERROR 800]Corresponding types must be compatible in CASE expression.
  16. 每日英语:The Most Destructive, Unpredictable Force in Tech
  17. python3 清除过滤emoji表情
  18. Sprint2
  19. 初识JVM
  20. [BZOJ4311]向量(凸包+三分+线段树分治)

热门文章

  1. cv2.VideoWriter()指定写入视频帧编码格式
  2. S03_CH06_AXI_VDMA_OV7725摄像头采集系统
  3. nodejs 入门学习
  4. 解决https 请求过程中SSL问题
  5. js的页面交互
  6. vue之生命周期与导航守卫
  7. JS 知识图
  8. menustrip选项怎么设置竖向分割线
  9. Oracle insert /*+ APPEND */原理解析
  10. 案例:selenium实现登录百度(如有验证码,需要手动输入)