Shell作为一种命令语言和程序设计语言,其优势显而易见,shell脚本的优势在于它能实现自动化运维,能提高运维效率,帮助运维人员摆脱繁杂的操作,让运维工作变得得心应手。
今天分享一份shell脚本100例,包含常用的shell脚本知识点,从脚本编程的常见工具用法到实用技能,讲解十分细致,可自由复制,拿来练习,对于提高实操技能有很大的帮助,建议收藏!
【文章末尾有领取方式!】
【文章末尾有领取方式!】
内容展示
一键部署LNMP(RPM包版本)
#!/bin/bash
#使用 yum 安装部署 LNMP,需要提前配置好 yum 源,否则该脚本会失败
#本脚本使用于 centos7.2 或 RHEL7.2
yum ‐y install httpd
yum ‐y install mariadb mariadb‐devel mariadb‐server
yum ‐y install php php‐mysql
systemctl start httpd mariadb
systemctl enable httpd mariadb
编写脚本测试192.168.4.0/24整个网段中哪些主机处于开机状态,哪些主机处于关机状态(for版本)
#!/bin/bash
for i in {1..254}
do
ping ‐c2 ‐i0.3 ‐W1 192.168.4.$i &>/dev/null
if [ $? –eq 0 ];then
echo "192.168.4.$i is up"
else
echo "192.168.4.$i is down"
fi
done
使用死循环实时显示ethn0网卡发送的数据包流量
#!/bin/bash
while :
do
echo '本地网卡 eth0 流量信息如下: '
ifconfig eth0 | grep "RX pack" | awk '{print $5}'
ifconfig eth0 | grep "TX pack" | awk '{print $5}'
sleep 1
done
编写批量修改扩展名脚本,如批量将txt文件修改为doc文件
#!/bin/bash
#执行脚本时,需要给脚本添加位置参数
#脚本名 txt doc(可以将 txt 的扩展名修改为 doc) #脚本名 doc jpg(可以将 doc 的扩展名修改为 jpg)
for i in "ls *.$1"
do
mv $i ${i%.*}.$2
done
统计 13:30 到 14:30 所有访问 apache 服务器的请求有多少个
#!/bin/bash
#awk 使用‐F 选项指定文件内容的分隔符是/或者: #条件判断$7:$8 大于等于 13:30,并且要求,$7:$8 小于等于 14:30
#最后使用 wc ‐l 统计这样的数据有多少行,即多少个
awk ‐F "[ /:]" '$7":"$8>="13:30" && $7":"$8<="14:30"' /var/log/httpd/access_log |wc ‐l
检测 MySQL 服务是否存活
#!/bin/bash
#host 为你需要检测的 MySQL 主机的 IP 地址,user 为 MySQL 账户名,passwd 为密码
#这些信息需要根据实际情况修改后方可使用
host=127.0.0.1
user=root
passwd=123456
mysqladmin ‐h 127.0.0.1 ‐u root ‐p'$passwd' ping &>/dev/null
if [ $? ‐eq 0 ];then
echo "MySQL is UP"
else
echo "MySQL is down"
fi
Shell是用户使用Linux的桥梁,任何一家it大厂,掌握Linux是基本技能,学好shell脚本也是it人的i必修课。这份shell脚本经典100例,建议大家收藏学习,必对你学好shell有所帮助。
【资料领取见下图!】