shell 脚本编程07

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
####################################

shell 脚本编程
day 07

下载ftp://172.40.50.118/NSD1704/share/lnmp_soft-2017-03-28.tar.gz

一、一键部署脚本(源码包安装软件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

猜你喜欢

转载自blog.csdn.net/qq_41703438/article/details/88563717
今日推荐