####################################linux
shell 脚本编程nginx
1、一键部署脚本(源码包安装软件nginx)算法
tar -xf lnmp_soft....gzshell
cd lnmp_softapache
tar -xf nginx...gz编程
cd nginx..swift
yum -y install gcc pcre-devel zlib-devel安全
./configurebash
make服务器
make install
确认:ls /usr/local/nginx
netstat -nulpt | grep 80 /nginx与apache冲突
systemctl stop httpd
2、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 判断
3、进度条脚本(能够给任何程序用)
cp -r /bin/ /tmp/
############ loading .............. 10% 20%...
jindu(){
while :
do
echo -ne “\033[42m \033[0m”
sleep 0.1
done
}
jindu & /后台
cp -a $1 $2
kill $!
echo “结束!”
echo $! /最后一个后台进程的id号
du -sh /etc
du -sh /tmp/etc
10/100*100
4、5分钟自动检测一次,将破解密码尝试远程本机的ip提取到ip.txt
相同ip不导入,本身连本身除外,密码输入错误3次,才写入黑名单
awk ‘Failed/{print $11}’ /var/log/secure >>ip.txt 取出失败登陆的ip
grep
5、分布式存储、分布式集群(fastdfs,swift分布式软件)
大数据 【数据量大,存不下】(EB)
num=$[RANDOM%4+1] /4台电脑
cp a.txt $num
1.启动脚本
编写nginx启动脚本
-脚本支持start、stop、reload、restart、status
-脚本支持报错提示
-脚本具备判断是否已经开启或关闭的功能
思路:使用case语句实现主体功能、使用case语句调用函数实现具体启动、关闭等操做、使用if测试判断程序是否已经开启
2.一键部署软件脚本
一键安装nginx
- 一键源码安装nginx软件
-脚本自动安装相关软件的依赖包
-脚本自动判断yum是否可用
-脚本安装支持日志,日志文件为/var/log/nginx.log
思路:使用数据过滤以及if语句判断yum源是否可用、case语句根据安装的软件自动安装依赖包、经过重定向生成日志文件/var/log/nginx.log
3.编写分布式存储脚本
-使用记录日志实现简单分布式存储
-4台rhel6.5主机,3台共享服务器,1台分布式存储服务器
-分布式存储服务器,经过mount将3台共享服务器的共享目录挂载到本地{1,2,3}目录
-用户使用脚本进行数据读写时,脚本随机将数据文件分发到3个共享目录下
思路:建立文件存档日志文件、根据日志文件读取数据、脚本 -w 文件名--将文件随机写入1、2、3目录、脚本 -r 文件名---从1、2、3中读取文件
4.编写安全检测脚本
防止远程ssh暴力破解密码
- 检测ssh登陆日志,若是远程登陆账号名错误3次,则屏蔽远程主机的IP
-检测ssh登陆日志,若是远程登陆密码错误3次,则屏蔽远程主机的IP
思路:ssh登陆日志/var/log/secure、分析日志文件格式、找出用户名密码错误的规律并提取有效数据、对有效数据汇总统计,实现黑名单过滤
5.编写进度显示脚本
实现带进程显示的复制脚步
-默认linux的cp命令不具备进度显示
-咱们须要本身编写脚本实现进度显示
-可使用进度条的方式,或者显示百分比的方式
思路:根据文件数量、或容量统计进度、进度算法:当前进度/总进度*100