Shell脚本
运维常用shell脚本编程
白-胖-子
白胖子 sunmy@sunmy.pro
展开
-
Linux下Ngxin服务器防DDos攻击自动加iptables的Shell脚本
这个脚本通过分析Ngxin的访问日志,自动筛选出访问量大于5000的IP,并将其加入到iptables的进制黑名单中,多少对DDos攻击有些帮助。原创 2022-07-14 20:41:01 · 11609 阅读 · 1 评论 -
Linux校验比对文件一致性的shell脚本
#!/bin/bashcheck_dir=/var/html/www[ -e $check_dir ] || exit 1 #目录不存在就退出脚本zhiwendb="/opt/zhiwen.db" #原始指纹库路径filedb="/opt/wenjian.db" #原始文件库路径errlog="/opt/err.log" #监测后的内容日志[ -e $zhiwendb ] || exit 1[ -e $filedb ] || exit 1echo "`md5sum -c --quiet /o原创 2022-01-24 21:53:16 · 1107 阅读 · 0 评论 -
实现判断CentOS的主版本号
#!/bin/bashcentos_version() { sed -rn 's#^.* +([0-9]+)\..*#\1#p' /etc/redhat-release}centos_version原创 2021-12-29 00:23:59 · 562 阅读 · 0 评论 -
Linux脚本shell编程通过数组实现石头剪刀布小游戏
通过实现石头剪刀布小游戏了解Shell编程数组的应用#!/bin/bash###***********************************************************************## Author: sunmy## MAil: sunmy@sunmy.pro## Date: 2021-12-16## FileName:Rock_Game_v2.sh## URL: https://www.sunmy.pro## Description:Play.原创 2021-12-16 23:50:11 · 3029 阅读 · 0 评论 -
批量下载Python不同版本源码包的小脚本
#!/bin/bash###***********************************************************************## Author: sunmy## MAil: sunmy@sunmy.pro## Date: 2021-12-7## FileName:downPython_v1.sh## URL: https://www.sunmy.pro## Description:Auto optimize script of linux run原创 2021-12-07 22:01:29 · 146 阅读 · 0 评论 -
离线安装pyenv的shell脚本
Python多版本共存神器-pyenvPython最大的问题是版本问题,不光是python2和python3有代差,在python3中的小版本间也有不同版本问题在不适用docker或者虚拟机技术的情况下,实现同一台服务器部署多版本python环境成为了关键pyenv很好解决了单机多版本python部署的问题pyenv在github上的项目在线安装pyenvpyenv官方提供了多种安装方式,最方便的就是通过git clone从项目中直接克隆到本机即可。使用普通用户python在线安装原创 2021-10-27 13:50:08 · 731 阅读 · 0 评论 -
写shell脚本的一种开头方式,给你的脚本加个保险
shell脚本这种解释性语言的程序通常在执行的时候会跳过报错的语句继续往下执行我们使用set -e确保在脚本发生错误的第一时间就停下,以免发生后边不可挽回的结果所以在一个shell脚本的开头,尤其是测试阶段,我们通常可以加上以下字段set -e[ -n "$SUNTEST_DEBUG" ] && set -x脚本只要发生错误,就终止执行。set -e根据返回值来判断一个命令是否运行失败。写脚本的时候要注意,如果需用用到返回值来进行其他判断,则使用set -e来推出程.原创 2021-10-26 10:05:47 · 446 阅读 · 0 评论 -
Linux自建CA并颁发证书的shell脚本
创建私有CA创建CA所需要的文件#生成证书索引数据库文件touch /etc/pki/CA/index.txt#指定第一个颁发证书的序列号echo 01 > /etc/pki/CA/serial生成CA私钥cd /etc/pki/CA/(umask 066; openssl genrsa -out private/cakey.pem 2048)生成CA自签名证书openssl req -new -x509 -key /etc/pki/CA/private/cakey原创 2021-09-09 20:23:52 · 760 阅读 · 0 评论 -
使用shell脚本计算文本中数字求和
问题:文件abc中有且只有一行数字32 2 43 6 77,编写shell脚本通过循环求和。准备文本echo "32 2 43 6 77" > abc编写脚本 1 #!/bin/bash 2 # 3 #***************************************************************************** 4 #Author: sunmy 5 #Mail:原创 2021-09-07 16:54:49 · 4221 阅读 · 0 评论 -
Linux编写shell脚本实现磁盘使用率检测
一个简单实用的小shell脚本 1 #!/bin/bash 2 # 3 #***************************************************************************** 4 #Author: sunmy 5 #Mail:原创 2021-09-03 17:09:03 · 1609 阅读 · 0 评论 -
Linux一键部署Java环境JDK+Tomcat二进制安装脚本(亲测CentOS和Ubuntu通用)
#!/bin/bash###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$## Author: sunmy## MAil: 8528379[@]sina.com## Date: 2021-8-8## FileName:installTC_v1.sh## URL: www.sunmy.pro## Description:Auto install JDK & Tomcat script of linu原创 2021-08-08 15:31:37 · 618 阅读 · 0 评论 -
Linux系统初装资源限制和内核参数优化脚本(CentOS和Ubuntu通用)
#!/bin/bash###***********************************************************************## Author: sunmy## MAil: 8528379@sina.com## Date: 2021-8-8## FileName:setOp_CU_v1.sh## URL: https://www.sunmy.pro## Description:Auto optimize script of linux runni原创 2021-08-08 10:29:52 · 397 阅读 · 0 评论 -
CentOS修改网卡名eth0并交互式修改IP地址脚本
#!/bin/bash# CentOS交互式修改网卡地址CF="\e[1;31m"CE="\e[0m"centos_net_name(){grep 'net.ifnames=0 biosdevname=0' /etc/default/grub &>/dev/nullif [ $? = 1 ];then sed -ri '/GRUB_CMDLINE_LINUX=/s#(")$# net.ifnames=0 biosdevname=0"#' /etc/default/grub gr原创 2021-08-08 07:16:20 · 331 阅读 · 0 评论 -
Linux修改网卡名为eth0并配置IP地址脚本(CentOS和Ubuntu 通适)
#!/bin/bash###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$## Author: sunmy## MAil: 8528379[@]sina.com## Date: 2021-8-8## FileName:setNew_CU_v2.sh## URL: www.sunmy.pro## Description:Auto optimize script of linux running in pro原创 2021-08-07 23:51:06 · 668 阅读 · 0 评论 -
Linux实现脚本写入数据到 Redis
Shell 脚本写入数据到Redis#!/bin/bashNUM=100PASS=123456for i in `seq $NUM`;do redis-cli -h 127.0.0.1 -a "$PASS" --no-auth-warning set key${i} value${i} echo "key${i} value${i} 写入完成"doneecho "$NUM个key写入到Redis完成"Python3 脚本写入数据到Redis使用redis-py 连接 r原创 2021-07-01 18:30:57 · 1006 阅读 · 0 评论 -
Linux一键编译安装Nginx脚本
[root@c7-183 ~]# curl 10.0.0.88/shell/installNginx.sh#!/bin/bashSRC_DIR=/usr/local/srcNGINX_URL=http://nginx.org/download/NGINX_FILE=nginx-1.20.1TAR=.tar.gzNGINX_INSTALL_DIR=/apps/nginxNGINX_DIR=`echo ${NGINX_FILE}${TAR}| sed -nr 's/^(.*[0-9]).*/\1/原创 2021-06-08 11:33:53 · 416 阅读 · 0 评论 -
Linux编写shell脚本实现同网段活机互相免密登录
#!/bin/bash##********************************************************************#Author: timonium#E-mail: 8528379[AT]]sina.com#Date: 2021-05-25#FileName: sshnopass.sh#BlogUR原创 2021-05-25 14:36:56 · 247 阅读 · 0 评论 -
二进制安装MySQL8.0.25的Shell脚本
详细步骤请参阅:CetnOS8 适应Linux通用二进制包安装MySQL最新社区版Server8.0.25脚本具体实现:我们此次选择Linux通用二进制安装包rpm包省事省时,需要联网,无法定制功能和目录源码包,无需联网,可定制功能和目录,但编译费时编译好的二进制包介于两者之间无需联网,可定制功能和目录,同时不需要再进行费时的编译过程[root@C8-185 ~]# curl 10.0.0.88/shell/installMySQL8.sh#!/bin/bash. /etc/init原创 2021-05-18 13:58:54 · 467 阅读 · 0 评论 -
Linux编写Shell脚本利用expect实现免问答ssh登录服务器
脚本调用expect将脚本设置为开机运行,每次ssh登录相应服务器时,spawn会监控到ssh动作,并匹配IPLIST,从而自动进行用户名密码及登陆后动作#!/bin/bashNET=10.0.0user=rootpassword=timoniumIPLIST="81828384858"for ID in $IPLIST ;doip=$NET.$IDexpect <<EOFset timeout 20spawn ssh $user@$ipexpe.原创 2021-05-11 12:59:19 · 242 阅读 · 1 评论 -
Linux编写脚本自动实现系统初始化-CentOS版
CentOS系统最小安装后初始化CentOS禁用SELinuxdisable_selinuxCentOS关闭防火墙disable_firewalldCentOS设置系统别名set_aliasCentOS设置vimrc配置文件set_vimrcCentOS设置mailrc配置文件#set_mailrcCentOS设置YUM源set_yumCentOS_Minimal安装建议安装软件centos_minimal_installCentOS修改网卡名和IP地址set_eth_ip原创 2021-04-29 22:39:59 · 184 阅读 · 0 评论 -
Linux编写shell脚本批量实现服务器基于key验证ssh免密登录
用expect实现基于key的免密登陆验证sshpass -e #将环境变量SSHPASS作为密码#!/bin/bashIPL="10.0.0.810.0.0.1810.0.0.710.0.0.610.0.0.200"rpm -q sshpass &> /dev/null || yum -y install sshpass [ -f /root/.ssh/id_rsa ] || ssh-keygen -f /root/.ssh/id_rsa -P ''exp.原创 2021-04-29 12:15:30 · 431 阅读 · 0 评论 -
Linux编写shell脚本实现自动设置yum源仓库
手动设置yum源仓库太枯燥了!当你需要将一件事做上5遍以上,就需要写脚本了。脚本跑一跑,yum源就设好![23:33:27 root@C8-3-55 ~]#cat setYum.sh #!/bin/bashos_rel(){uname -a | awk '{print $1,$2}'}bak_yum(){tar -zcvf /etc/yum.repos.d/CentOSRepo.bak.tar.gz /etc/yum.repos.d/CentOS*.repo --remove-fil.原创 2021-04-29 11:59:29 · 1178 阅读 · 0 评论 -
Linux编写shell脚本实现签发CA证书
实现自动创建证书文件夹自动创建客户端私钥自动创建客户端证书请求自动签发证书文件自动拷贝证书文件至用户文件夹####################################################Author: timonium#E-mail: 8528379[AT]sina.com#Date: 2021-04-27#FileName: creatCA.1.0.1.sh#BlogURL: https://blog.c.原创 2021-04-27 20:45:34 · 372 阅读 · 0 评论 -
Linux编写shell脚本实现快速创建私有CA证书服务器
creatCA.1.0.1.sh####################################################Author: timonium#E-mail: 8528379[AT]sina.com#Date: 2021-04-27#FileName: creatCA.1.0.1.sh#BlogURL: https://blog.csdn.net/timonium#Description: Auto Creat原创 2021-04-27 17:04:40 · 469 阅读 · 0 评论 -
Linux编程检查IP是否合法的shell脚本
设定IP或编写脚本时,我们往往需要对文本或输入的IP地址进行合法性查,此脚本简单的实现了IPv4地址合法性检查。read 入读用户输入IP使用grep检查每一段是否是3位数使用awk判断每一段是否都小于255read -p "请输入IP地址:" IPIP_CHECK=$(echo $IP|awk -F. '$1<255&&$2<255&&$3<255&&$4<255{print "R"}')if echo $IP.原创 2021-04-22 16:58:48 · 740 阅读 · 0 评论 -
Linux编程Shell脚本实现关闭CentOS6,7,8防火墙
关闭防火墙内网服务器防火墙需要在初始化时关闭。#!/bin/bash### 常规操作,添加系统函数. /etc/init.d/functions### 前置操作系统判断os_v(){uname -a|awk -F" u|c|C|-" '{print $2}'}### CentOS7和8关闭防火墙disable_78fw(){systemctl disable --now firewalld &> /dev/nullaction "CentOS`os_v`防火墙已关闭!原创 2021-04-22 14:32:01 · 686 阅读 · 0 评论 -
Linux生成随机颜色的小脚本
内建随机数标量生成器$RANDOM 取值范围:0-32767随机颜色随机数对7取模代表0-6[0-6]+31代表31到37,为linuxshell内置支持的颜色数值COLOR=$[RANDOM%7+31];echo -e "\E[1;${COLOR}m hello\E[0m" 1 #!/bin/bash 2 # 3 #$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 4 #Author: SunMY 5 #E-ma..原创 2021-04-05 11:47:11 · 383 阅读 · 0 评论 -
Linux显示系统信息的shell小脚本
显示系统相关信息#!/bin/bash##***************************************#Author: SunMY#Date: 2021-04-1#FileName: showsysinfo.sh#blog: https://blog.csdn.net/timonium#Des: Show System Info#******************************************#ColorRED=".原创 2021-04-01 12:06:10 · 22999 阅读 · 1 评论 -
Linux备份文件的Shell小脚本
实现一个小小的交互式备份文件的功能#!/bin/bashCB="\033[1;32m"CE="\033[0m"DATE=`date +%F_%T`read -p "Please enter the full path of your DIR:" SDIRDEST=/data/backup/${SDIR}_${DATE}echo -e "${CB}Starting Backup ${SDIR} ${CE}"sleep 3cp -av ${SDIR} ${DEST}echo -e "原创 2021-03-31 23:55:49 · 240 阅读 · 0 评论 -
Shell脚本编程基础之shell脚本命令执行顺序
命令执行顺序就是指命令执行的优先级,就像四则运算的优先级bash shell运行命令本来是从左往右依次执行,但期间会遇到种种潜规则把命令查分成单个的命令单词shell先把拿到手的命令行拆分成一段一段的单词展开别名突然遇到了一个别名,就去查找alias指向哪里?找到了把对应的内容拿进来摆好展开大括号{}的声明继续往下看,突然遇到了大括号声明{},里边可能是通配符、代码块之类的鬼东西,计算出结果,摆好展开波浪符的声明 ~继续往下看,突然又遇到了倒霉的波浪符~,转换为家目录的路径,摆好转载 2021-03-31 17:21:47 · 1757 阅读 · 0 评论