zoukankan      html  css  js  c++  java
  • 小练习

    ####################################

    shell  脚本编程

    一、一键部署脚本(源码包安装软件nginx

    tar  -xf  lnmp_soft....gz

    cd  lnmp_soft

    tar  -xf   nginx...gz

    cd  nginx..

    yum -y install  gcc  pcre-devel  zlib-devel

    ./configure

    make

    make  install

    确认:ls  /usr/local/nginx

    netstat  -nulpt | grep  80      /nginxapache冲突

    systemctl stop httpd

    二、nginx启动脚本

    用法:/usr/local/nginx/sbin/nginx   回车  无提示则启动成功

    网页输入172.40.55.115看到nginx欢迎界面

    或做个连接  ln  -s  /usr/local/nginx/sbin/nginx     /sbin

    echo  $PATH

    nginx  -s  stop  关闭服务  

    没有重启,需要脚本里先关闭再开,没有查状态,需脚本

    /usr/local/nginx/logs/nginx.pid  文件有代表服务开着,没有则代表关闭,判断服务是否启动

    nginx 回车 开服务   

    #cat  nginx.sh

    #!/bin/bash

    case  $1  in  

    start)  

    if [ ]

    fi

    nginx;;     #启动

    stop)

    if [ ]

    fi

    nginx  -s  stop;;

    restart)

    nginx  -s  stop

    nginx;;

    status)

    if  [ -f /usr/local/nginx/logs/nginx.pid  ];then

    echo  “running”

    else

    echo  “stop”

    fi;;

    *)

    echo  “nginx[ start |  stop | restart  |status ]”

    esac

    优化思路:if 判断

    三、进度条脚本(可以给任何程序用)

    cp   -r  /bin/  /tmp/

    ############  loading ..............     10%  20%...

    jindu(){

    while :

    do

    echo   -ne   “33[42m     33[0m”

    sleep 0.1

    done

    }

    jindu  &    /后台

    cp  -a  $1  $2  

    kill   $!

    echo “结束!

    echo $!   /最后一个后台进程的id

    du  -sh  /etc  

    du  -sh  /tmp/etc

    10/100*100

    四、5分钟自动检测一次,将破解密码尝试远程本机的ip提取到ip.txt

     相同ip不导入,自己连自己除外,密码输入错误3次,才写入黑名单

    awk ‘Failed/{print $11}’   /var/log/secure  >>ip.txt  取出失败登录的ip

    grep   

    五、分布式存储、分布式集群(fastdfs,swift分布式软件)

    大数据 【数据量大,存不下】(EB

    num=$[RANDOM%4+1]      /4台电脑

    cp  a.txt  $num

    1.启动脚本

    编写nginx启动脚本

    -脚本支持startstopreloadrestartstatus

    -脚本支持报错提示

    -脚本具有判断是否已经开启或关闭的功能

    思路:使用case语句实现主体功能、使用case语句调用函数实现具体启动、关闭等操作、使用if测试判断程序是否已经开启

    2.一键部署软件脚本

    一键安装nginx

    - 一键源码安装nginx软件

    -脚本自动安装相关软件的依赖包

    -脚本自动判断yum是否可用

    -脚本安装支持日志,日志文件为/var/log/nginx.log

    思路:使用数据过滤以及if语句判断yum源是否可用、case语句根据安装的软件自动安装依赖包、通过重定向生成日志文件/var/log/nginx.log

    3.编写分布式存储脚本

    -使用记录日志实现简单分布式存储

    -4rhel6.5主机,3台共享服务器,1台分布式存储服务器

    -分布式存储服务器,通过mount3台共享服务器的共享目录挂载到本地{123}目录

    -用户使用脚本进行数据读写时,脚本随机将数据文件分发到3个共享目录下

    思路:创建文件存档日志文件、根据日志文件读取数据、脚本  -w  文件名--将文件随机写入123目录、脚本  -r  文件名---123中读取文件

    4.编写安全检测脚本

    防止远程ssh暴力破解密码

    - 检测ssh登录日志,如果远程登录帐号名错误3次,则屏蔽远程主机的IP

    -检测ssh登录日志,如果远程登录密码错误3次,则屏蔽远程主机的IP

    思路:ssh登录日志/var/log/secure、分析日志文件格式、找出用户名密码错误的规律并提取有效数据、对有效数据汇总统计,实现黑名单过滤

    5.编写进度显示脚本

    实现带进程显示的复制脚步

    -默认linuxcp命令不具有进度显示

    -我们需要自己编写脚本实现进度显示

    -可以使用进度条的方式,或者显示百分比的方式

    思路:根据文件数量、或容量统计进度、进度算法:当前进度/总进度*100

     

     

  • 相关阅读:
    软件工程实践总结
    beta答辩总结
    beta冲刺(6/7)
    beta 冲刺(5/7)
    beta冲刺(4/7)
    beta冲刺(3/7)
    beta冲刺(2/7)
    beta冲刺(1/7)
    CentOS7安装新版git
    NameError: name 'reload' is not defined
  • 原文地址:https://www.cnblogs.com/fuzhongfaya/p/8952540.html
Copyright © 2011-2022 走看看