小练习

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

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

 

 

原文地址:https://www.cnblogs.com/fuzhongfaya/p/8952540.html