shell脚本从入门到精通
文章平均质量分 55
【shell脚本天天练】系列是【循序渐进学运维-脚本篇】的延伸, 这里有日常工作脚本,也有学员学习练习的脚本收录。
互联网老辛
云原生讲师,创业公司负责人,还有一堆虚名:CSDN博客专家,华为云-云享专家,阿里云专家博主等;
展开
-
shell脚本之购物车清单脚本
脚本需要反复练习原创 2022-10-19 07:02:34 · 1330 阅读 · 0 评论 -
shell脚本-创建用户的4种思路
新招募的助理来了原创 2022-10-20 10:07:57 · 3137 阅读 · 0 评论 -
实战:一个脚本实现统计linux进程相关的信息
公司实战:统计服务器进程相关的信息原创 2022-12-29 22:52:25 · 2616 阅读 · 1 评论 -
shell脚本实战-实现磁盘使用率超过90%就告警的三种方法v1版
实现磁盘使用率的三种方法原创 2022-12-29 10:16:17 · 2258 阅读 · 1 评论 -
shell脚本实战-部署nginx脚本
shell脚本实战-nginx部署脚本原创 2022-12-26 16:40:30 · 2962 阅读 · 0 评论 -
shell脚本四剑客--sed的应用
别无他法,多练多写原创 2022-12-25 10:14:53 · 1581 阅读 · 0 评论 -
Linux运维面试中常被问到的两个shell脚本
脚本一:在公司里有一个网段是 192.168.3.0的网段,现在想判断一下哪些主机在线,哪些主机不在线。shell脚本解决方案:方法一:思路首先要循环目标主机的IP地址,IP地址分为两部分:str=192.168.3.num=1-255的自然数,所以num需要先遍历,然后与str拼接IP=${str}${num}#!/bin/bash#定义变量strstr="192.168.31." # for循环遍历num#num是1-255的自然数,可以使用{1..255}for n原创 2021-11-11 19:33:30 · 2701 阅读 · 1 评论 -
备份
#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHLANG=en_US.UTF-8cd ~setup_path="/www"python_bin=$setup_path/server/panel/pyenv/bin/pythoncpu_cpunt=$(cat /proc/cpuinfo|grep processor|wc -l)if [ "$1" ];t原创 2021-01-28 08:54:06 · 2762 阅读 · 0 评论 -
【shell实战】使用shell实现一个进度条
前言之前有小伙伴留言说,有没有那种花里胡哨的东西,比如进度条,今天他来了。思路1. 进度条的组成进度条由 五个字符组成:主进度条: #花里胡哨的转圈圈: | \ - /#号用于生成进度:| \ - / 这四个用于在百分比后面转圈2. 进度条的进度一共是100%, 我们按照 每次增加4%的速度往上增加, 即: 0% ,4% 8%,12%,一直到百分百。定义i =0 ; $i*4就表示每次增加4i 每次增加1 let i++每增加4% 我们就打印原创 2020-09-22 16:16:43 · 7337 阅读 · 2 评论 -
【shell案例】一个判断指定脚本是否有语法问题的脚本
写一个脚本,判断一个指定的脚本是否有语法错误,如果用提醒用户按Q/q 无视错误,并退出其他任何键盘可以通过vim打开这个指定的脚本[root@xinsz08 ~]# cat check.sh #!/bin/bash[ $# -ne 1 ] && echo '后面要接你要测试的脚本名字' && exit 1if bash -n $1 &>/dev/null;thenecho '脚本语法正确,可正常使用'elseread -p '语法有误!按Q退出,按原创 2020-09-06 18:13:13 · 2715 阅读 · 2 评论 -
【安全脚本】 centos 下的病毒木马查杀脚本
文章目录前言源码解释说明1) clamv 的安装方式2) 常用参数和命令后续总结前言病毒木马查杀脚本使用的是clamAV , 它是开源工具包,用于检测特洛伊木马,病毒,恶意软件,以及其他威胁。特点:安装使用简单,在centos6下yum安装即可,在centos7下也可以用yum,比6稍微复杂点支持读写扫描提供病毒数据更新可以扫描档案和压缩文件源码#!/bin/bashDATE="$( date +%F )"LOGD="${WORKDIR}/log.d"RC=0DIR=/D原创 2020-09-04 22:33:04 · 4255 阅读 · 3 评论 -
【shell案例】学员管理系统
前言学员管理系统涉及到学员的增删改查,这是一个综合性比较强的项目,在所有的编程语言里都会有不同版本的学员信息管理系统,难度适中效果截图学员管理系统源码#!/bin/bash## 随机点名册while truedo echo "学生随机点名系统" echo "1. 添加学员名单" echo "2. 遍历学员名单" echo "3. 随机点名" echo "4. 删除某个学员的信息" echo "5. 退出" read -p "请输入你要选择的序号: " num case原创 2020-08-27 21:23:45 · 7125 阅读 · 81 评论 -
【shell案例】一个脚本让你从此再也不怕删错文件
前言最近又有学员删文件时候不小心删除了,导致删除错误删除了文件,之前也有过误删数据库,误删根的。我也是在带出了这么多学员之后才发现,真的有人会误删,还没做讲师之前我以为这只是个梗。解决误删除文件,我们有很多措施,等你删除了在去恢复,这种就属于第三流的运维了,第二流的运维有备份,第一流的运维不但有备份还有防止误删除的机制。今天我们就来写一个脚本,先解决删除文件没有提示的问题,然后解决删除前备份的问题脚本源码[root@ecs-c13b test]# cat rm.sh #!/bin/bashN原创 2020-08-25 21:02:36 · 2692 阅读 · 4 评论 -
【shell案例】CentOS7安装MySQL脚本案例
前言此脚本为一个学员在工作中遇到在centos7中安装mysql的问题,于是安排一个学员花了15分钟写了一个脚本,可以正常安装使用。mysql的版本为5.7版本此脚本涉及到安装好mysql后,日志中没有临时密码的问题,所以该学员使用了破解mysql密码登陆修改去修改密码的方法,也算是一种好方法,在工作中,能解决问题才是根本,其他的技巧都是扯淡。虽然脚本还存在一些问题,但测试后发现可以正常安装,敢写就是一种进步。脚本源码因时间紧张,该学员未加注释,但我相信只要学完了shell基础的小伙伴都可以看懂原创 2020-08-24 22:41:30 · 6076 阅读 · 0 评论 -
【shell案例】检查url的可用性
前言此脚本源于一个学员的刷流量脚本,刷流量脚本使用的是ab命令,但效果似乎并不好,使用ab压测有点大材小用,而且还容易被封号,所以做了下改进,改为公司常用的判断网站是否存活的脚本。脚本源码[root@ecs-c13b ~]# cat url.sh #!/bin/bash check_url() {HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $1) if [ $HTTP_CODE -ne原创 2020-08-24 13:37:46 · 3010 阅读 · 0 评论 -
【shell案例】nginx编译安装脚本
前言本脚本没有使用函数,脚本安装的是nginx-1.16.1 , 如果你要安装其他版本,可以适当修改脚本的版本号sed -i ‘s/原字符串/新字符串/g’ /app/nginx-install.sh注意: 此脚本名字为nginx-install.sh, 存放在/app路径下:脚本源码#!/bin/bashsystemctl stop firewalld && setenforce 0#首先安装nginx的依赖环境yum -y install gcc pcre-devel z原创 2020-08-23 18:04:09 · 2758 阅读 · 0 评论 -
【shell案例】创建用户案例
面试题让用户输入一个名称,检查这个用户名是否存在**如果存在,显示该用户已经存在如果不存在,创建这个用户,然后设置与用户的同名密码,最后提示创建成功解答#!/bin/bashread -p "enter a username: " userNameif id $userName &>/dev/null;then echo "user $userName exists"else # echo "user $1 not exists" useradd $原创 2020-08-23 17:27:21 · 2721 阅读 · 0 评论 -
【shell案例】判断主机是否在线
原题扫描192.168.31.0/24网络中哪些主机在线,如果在线,用绿色显示在线,如果不在线,用红色显示不在线思路首先需要循环升目标主机的IP地址,生成方法就是通过{ }或者seq生成1到255的数字,然后将数字和192.168.31进行字符串组合。然后用ping命令来判断这个ip是否可以ping的通,在平的时候需要-c1和-w1最后根据判断结果输出信息shell源码方法一:#!/bin/bashstr="192.168.31."for num in {1..255}do原创 2020-08-23 17:23:20 · 4002 阅读 · 0 评论 -
【shell案例】nginx检测脚本
脚本说明此脚本用于检测nginx是否运行,若没有运行,则可以选择启动或者重新加载,当然也有关闭功能脚本源码#!/bin/bashnginx=/usr/local/nginx/sbin/nginxread -ep "请输入要执行的命令(start/stop/status/reload):" stacase $sta in #启动nginx选项 start) #先检测nginx是否已经启动 netstat -nlpt | grep nginx &> /dev/null if原创 2020-08-23 17:17:50 · 3423 阅读 · 0 评论 -
【shell案例】由一个猜数字游戏引发的血案
脚本释义本脚本是学员练习脚本的一个案例,脚本的名字叫 猜数字骗局, 脚本一开始,输入用户密码,就是一个简单的猜数字游戏,当你猜了三次的时候,提示是否还玩来刷选用户。当用户玩到第六次的时候,突然中奖,可以免费送一个礼品,礼品需要自己选购,但只有鼠标有货, 当你选好鼠标后,,网站会以网站安全为理由对用户进行审查,要求用户输入必要的信息来兑奖。同时要求用户帮网站做一套架构,LAMP的架构,如果顺利做出来LAMP的架构的,可以获得礼品,否则将再次进入黑名单。本脚本看上去荒诞无奇,但是可以很好的锻炼学员的脚本原创 2020-08-23 16:20:01 · 8624 阅读 · 35 评论 -
【shell案例】一键部署wordpress网站
前言此脚本是学员日常的练习脚本,在实训做过的每个项目都可以变成shell脚本,在不断的写脚本的过程中,克服对脚本的恐惧。源码#! /bin/bash##搭建LAMP架构yum -y install mariadb mariadb-server php php-mysql httpd unzip &> /dev/nullrm -rf /var/www/*### 将wordpress移动到www目录下解压mv /root/wordpress-4.9.4-zh_CN.zip /var原创 2020-08-23 16:04:47 · 3004 阅读 · 0 评论