小练习
Posted 腐种发芽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小练习相关的知识,希望对你有一定的参考价值。
####################################
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 /nginx与apache冲突
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 “\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
四、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启动脚本
-脚本支持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
以上是关于小练习的主要内容,如果未能解决你的问题,请参考以下文章