
shell
shell
我的紫霞辣辣
须知少时凌云志 曾许人间第一流
展开
-
/目录使用大于80%,自动删除/var/log/messages系统日志脚本
根目录磁盘使用情况大于百分之80,删除/var/log/messages系统日志创建定时任务# 添加定时任务,每隔小时执行一下脚本crontab -e0 * * * * bash /opt/clear.sh编写脚本vim /opt/clear.sh#!/bin/bashpathwd='/var/lib'usage=`df / | awk 'NR==2 {print $(NF-1)}' | cut -d '%' -f1`if [ $usage -ge 79 ];then原创 2022-02-16 11:26:54 · 1947 阅读 · 0 评论 -
批量检查主机ip之间的连通性脚本和端口的连通性脚本
批量检查主机ip之间的连通性脚本#!/bin/bash#定义一个函数ping成功一次则显示successsuccess() { if ping -c 1 $ip >/dev/null then echo "$ip Ping is success" continue fi}# 将ip地址放到数组IP_LIST=" 192.168.15.12192.168.15.15192.168.15.18" .原创 2021-12-22 18:23:43 · 2024 阅读 · 0 评论 -
systemctl管理脚本 进程锁脚本
systemctl管理脚本一 介绍systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分1、/usr/lib/systemd/system 系统服务,开机不需要登陆就能运行的程序(相当于开启自启)2、/usr/lib/systemd/user 用户服务,需要登录后才能运行的程序/usr/lib/systemd/目录下又存在两种类型的文件:1、*.service 服务unit文件2、*.target原创 2021-06-27 20:52:55 · 532 阅读 · 1 评论 -
三剑客命令grep sed awk
剑客之grep命令grep介绍grep命令主要用于过滤文本,grep家族如下grep: 在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行egrep:扩展的egrep,支持更多的正则表达式元字符fgrep:固定grep(fixed grep),有时也被称作快速(fast grep),它按字面解释所有的字符grep命令格式如下grep [选项] PATTERN 文件1 文件2 ...[root@egon ~]# grep 'root' /etc/passwd[root@ego原创 2021-06-24 15:23:27 · 438 阅读 · 0 评论 -
cpu飙升问题排查 编写脚本文件===》 统计1分钟内访问nginx次数超过10次的ip地址 找出nginx访问的峰值 批量处理文本信息
cpu飙升排查思路先排查进程的cpu占比R:运行状态 S:睡眠状态排查一些短频快的进程,(例如写一个计划任务,每个0.01秒运行一次)查看计划任务有无异常等排查硬盘的io,(io本身并不占用cup资源,但是io行为需要cpu下发指令)cpu有可能一直在下发io指令;ps aux | grep “D+” D+表示不可能中断状态(硬盘忙不过来,cpu一直在下发io指令)iostat 1 3每个1秒刷一次,刷3次,查看%iowait(cpu在执行io命令时的占比)查看sw原创 2021-06-23 20:02:53 · 665 阅读 · 0 评论 -
shell编程 expect自动交互
expectexpect介绍expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。说白了,expect就是一套用来实现自动交互功能的软件。yum install -y expectexpect基础在使用expect时,基本上都是和以下四个命令打交道:命令作用spawn启动新的进程expect从进程接收字符串send用于向进程发送字符串interact允许用户交互expect实例[root@m01 ~]# vim exp原创 2021-06-23 19:07:19 · 323 阅读 · 0 评论 -
shell编程 信号处理
信号控制信号说明查看信号的命令kill -l[root@m01 ftp]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) S原创 2021-06-22 19:43:51 · 965 阅读 · 1 评论 -
shell语法 数组
数组数组介绍什么是数组?数组就是一系列元素的集合,一个数组内可以存放多个元素为何要用数组?我们可以用数组将多个元素汇总到一起,避免单独定义的麻烦数组的使用数组的定义方式一:array=(元素1 元素2 元素3)[root@m01 ~]# a=(nana 18 female)方式二:array=([key1]=value1 [key2]=value2 [key3]=value3)[root@m01 ~]# b=([0]=111 [1]="nana" [2]="biubiubiu原创 2021-06-22 16:32:05 · 482 阅读 · 0 评论 -
shell语法 函数
函数介绍函数就是用来盛放一组代码的容器,函数内的一组代码完成一个特定的功能,称之为一组代码块,调用函数便可触发函数内代码块的运行,这可以实现代码的复用,所以函数又可以称之为一个工具。为何要用函数1、减少代码冗余2、提升代码的组织结构性、可读性3、增强扩展性函数的基本使用具备某一功能的工具=>函数事先准备好哦工具=>函数的定义遇到应用场景,拿来就用=>函数的调用所以函数的使用原则:先定义,后调用定义函数# 语法:[ function ] funnam原创 2021-06-21 17:15:51 · 549 阅读 · 0 评论 -
流程控制之for循环 流程控制之select语句
流程控制之for循环语法#===========》Shell风格语法for 变量名 [ in 取值列表 ]do 循环体done#===========》C语言风格语法for ((初值;条件;步长))do 循环体donecontinue:默认退出本次循环break:默认退出本层循环for循环案例判断/dev目录下所有文件的类型#!/bin/bashfor i in `ls /dev`do if [[ -d /dev/$i ]];then原创 2021-06-21 15:48:38 · 452 阅读 · 0 评论 -
while循环 经典案例整理(九九乘法表打印加边框、金字塔)
流程控制之while循环语法# 一、while语句结构:条件为真时,执行循环体代码while 条件do 循环体done# 二、until语法结构:条件为假时,一直执行循环体代码,直到条件变为真until 条件do 循环体done求1-100以内2和3的公倍数,until实现until判断条件为假时,一直执行循环体代码,直到条件变为真#!/bin/bashnum=100until (( $num <= 0 )) # until 条件<=0(条件为假) ;原创 2021-06-18 17:27:22 · 1880 阅读 · 0 评论 -
流程控制之case语句
case语句语法case 变量 in模式1) 命令序列1 ;;模式2) 命令序列2 ;;模式3) 命令序列3 ;;*) 无匹配后命令序列esac编写nginx启动脚本写法一、if 判断写法#!/bin/bashread -p "请输入你想要执行的操作(start/stop/restart)" nginxif [[ $nginx == "start" ]];then systemctl start nginx if [ $? -eq原创 2021-06-18 16:29:52 · 254 阅读 · 0 评论 -
初学shell必做的 if判断、while循环小练习
用shell语言写一个登陆功能,超过三次,禁止登陆vim name.sh #!/bin/basha=1while truedo if (($a <= 3));then read -p "username:" name read -p "password:" pwd if [ $name = "nana" ] && [ $pwd = 123 ];then原创 2021-06-17 19:28:21 · 430 阅读 · 0 评论 -
shell基础 元字符
元字符元字符指的是能够被shell解释的特殊字符,每个特殊字符都有其特殊含义,这些字符一方面可用于变量值的运算、我们可以称之为运算符,另外一方面可以和shell命令配合使用来达到更高级的效果一 算数运算符算数运算符需要配合下述操作使用# 浮点运算bc # 整数运算expr$(())$[]letbc是比较常用的linux计算工具了,而且支持浮点运算[root@m01 ~]# res=`echo 1+1 | bc` [root@m01 ~]# echo $res2[ro原创 2021-06-16 18:55:16 · 921 阅读 · 0 评论 -
shell 基本数据类型
shell的基本数据类型在shell语法中,单引号和双引号是不同的。"" 弱引用,引号的特殊字符有意义'' 强引用,引号内所有的特殊字符都取消意义[root@m01 ~]# name="nana"[root@m01 ~]# echo "${name} is beautiful gril"nana is beautiful gril[root@m01 ~]# echo '${name} is beautiful gril'${name} is beautiful gril数组分为两种原创 2021-06-16 16:01:53 · 3051 阅读 · 0 评论 -
shell编程基础补充整理
shell本身就是一门解释型、弱类型、动态语言,与python相对应,Python属于解释型、强类型、动态语言,我们平时登录成功一个用户后进入的就是bash解释器的交互式环境,我们敲的命令其实都属于shell这门语言的语法如何区别强类型与弱类型语言shell属于弱类型语言echo "1+abc"1+abcpython属于强类型语言pythonPython 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat原创 2021-06-15 18:26:34 · 1110 阅读 · 4 评论 -
正则表达式习题整理
正则表达式习题整理1、显示/proc/meminfo文件中以不区分大小的s开头的行grep -i "^s" /proc/meminfo i不区分大小写2、显示/etc/passwd中以nologin结尾的行grep "nologin$" /etc/passwd3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意字符的行egrep "^\ *#\ +[^ ]" /etc/inittab 空格需要用\来转义4、显示/etc/inittab中包含了:.原创 2021-04-15 00:24:39 · 387 阅读 · 0 评论 -
编写脚本文件===》 批量修改文件名 批量修改服务器root密码 命令同步多个服务器 修改模板机的主机IP和主机名
批量修改目录下的文件名需求:将test目录下所有以.txt结尾的文件名字修改成.log结尾mkdir /testtouch {1..5}.txttouch {1..5}.jpgtouch {1..5}.mp4- 需求逻辑1. 切换到test目录cd /test2. 打开目录,查看目录下的内容ls *.txt3. 遍历出.txt文件结尾的文件for i in $(ls *.txt) # i=1.txt , i=2.txt ...4. 将.txt结尾的文件名部分进行切割,切原创 2021-04-14 20:05:24 · 394 阅读 · 0 评论 -
grep 正则表达式 sed awk expect
今日内容grep : 过滤sed :非交互式编辑文本awk :格式化处理有规律的文本expect : expect帮忙处理交互三剑客命令的共性 :1. 都支持正则表达式2. 都支持管道- 非交互式改密码echo 123 | passwd nana --stdin# Changing password for user egon.# passwd: all authentication tokens updated successfully.grep命令grep命令主要.原创 2021-04-13 15:34:53 · 605 阅读 · 0 评论 -
元字符 if判断 while循环 for循环
元字符1. & 符号,命令在后台运行ping www.baidu.com & 在后台也运行ping www.baidu.com2. &&符号,前面一个命令执行成功,才会继续执行下一条命令pwd && haha && ls# /root# -bash: haha: command not found3. ;符号,前面一个命令不管执行是否成功,都会运行下一条命令 pwd ; haha ; ls# /root# -bas原创 2021-04-12 16:54:31 · 185 阅读 · 0 评论 -
Shell基础 认识变量 系统环境变量 元字符
Bash Shell介绍介绍类比: shell语法 <====> python语法 bash解释器 <====> python解释器 平台 <====> 平台原创 2021-04-09 14:51:07 · 401 阅读 · 0 评论