shell脚本中 '$' 与不同的符号搭配其表示的意义也会不同 特殊标志符 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。...例如,第一个参数是$1,第二个参数是$2 $# 传递给脚本或函数的参数个数 $* 传递给脚本或函数的所有参数 $@ 传递给脚本或函数的所有参数 $?...上个命令的退出状态 $$ 当前Shell进程ID $() 与 `(反引号) 一样用来命令替换使用 ${} 引用变量划分出边界 注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" "...)包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。...但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
因为访问github很麻烦,每次都需要更新dns ,于是写了这个脚本。...: return ctypes.windll.shell32.IsUserAnAdmin() except: return False if is_admin...handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost 127.0.0.1 www.xmind.net # 以上为你默认配置的hosts...文件,删除github相关,其余的全部复制粘贴进去 \n #{now} \n {r.text} """ with open('C:\\Windows\\System32\...DNS刷新成功") sleep(3) else: # Re-run the program with admin rights ctypes.windll.shell32.ShellExecuteW
概述 在shell中开启alias 实际操作 概述 众所周知,shell脚本使用的是非交互式方式,在非交互式模式下alias扩展功能默认是关闭的,此时虽然可以定义alias别名,但是shell不会将alias...别名扩展成对应的命令,而是将alias别名本身当作命令执行,如果shell内置命令和PATH中均没有与alias别名同名的命令,则shell会找不到指定的命令。...---- 在shell中开启alias 使用shell内置命令shopt命令来开启alias扩展选项。...在非交互式模式下是关闭的,但可以用可shopt来将其开启 shopt -s expand_aliases ---- 实际操作 在我们的项目中某个模块的双机启动脚本(root用户下操作),其中应用的启停使用了...alias建立的同义词来操作,如果想要在脚本中使用,必须开启同义词才。
最近使用的一个集群hp1,因为维护集群的人不给力,节点总是过一段时间就掉一两个。今天发现重启Hadoop时,HDFS已经进入保护模式了。...决定把slaves节点中的无法访问的节点全部过滤掉,所以写了一个小脚本,在这里记录一下,以后方便直接拿来使用。 PS:用C Shell编写的 代码如下: #!...== 0 ) then echo $NODE endif end 顺便附带一个ssh检查的脚本: #!
在Linux系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被我们运维人员广泛应用于...shell脚本,完成各中自动化配置任务。...awk可以直接处理目标文件,也可以和sed命令一样通过“ -f ”选项读取脚本对目标文件进行处理。 awk的语法格式如下: ?...sed命令常用于整行处理,而awk比较倾向于将一行分成多个字段,awk可以使用逻辑操作符“&&”,表示“与”,“||”表示“或”,“ !”...3)通过管道、双引号调用shell命令: ?
下面我们将介绍Shell脚本的基本语法和变量定义及使用方法。 一、Shell脚本的基本语法 1.文件头:Shell脚本文件的第一行必须指定解释器。例如,#!.../bin/bash表示脚本将使用bash解释器。 2.注释:在Shell脚本中使用“#”符号来注释代码。 3.变量:可以使用变量来存储值,并在脚本的不同部分重复使用。...变量可以是数字、字符串或其他类型的数据。在Shell脚本中,变量使用$符号来引用。 4.条件语句:Shell脚本支持if/else条件语句来执行不同的操作,取决于条件是否满足。...5.循环语句:Shell脚本支持for、while和until循环语句。 6.函数:Shell脚本中的函数是可以重复使用的代码块,可用于将一组命令封装到一个单元中,从而简化脚本代码。...在上面的示例中,定义了两个变量$name和$age,并在字符串中使用了这些变量。使用echo命令输出的结果为“My name is John and I am 25 years old.”。
星期六我们子公司受到攻击,我们的网络监测显示有连续6小时的巨大异常流量,我立即联系在场IT,没有得到回应,我修改和限制了他们的 VPS,使得个别 VPS 受攻击不会对整个服务器和其他 VPS 用户造成任何影响...登录到 VPS 第一件事情就是查当前连接和 IP,来自中国的大量 IP 不断侵占80端口,典型的 DDoS....因为攻击源在国内,所以我们决定切断来自国内的所有访问,这样看上去网站好像是被墙了而不是被攻击了,有助于维护客户网站的光辉形象,那么如何屏蔽来自某个特定国家的 IP 呢?.../countries/cn.zone 有了国家的所有 IP 地址,要想屏蔽这些 IP 就很容易了,直接写个脚本逐行读取 cn.zone 文件并加入到 iptables 中: 复制代码 代码如下: #!...我们被攻击的网络流量,在18点到0点所有带宽都被攻击流量占用,这时候客户无法登录 VPS,访问者也无法访问网站!
CentOS7最小化安装后的一些常用的工具初始化安装脚本 #!/bin/bash yum update -y #进行系统更新 if [ $?...fi yum install lrzsz -y #文件传输的工具 if [ $?...= 0 ];then echo "net-tools install succes" fi MariaDB10.3 数据库安装脚本 #!
数组定义: shell中数组的定义是使用 小括号来表示的,其中数组元素之间用空格作为分隔,比如: $ a=(1 2 3 abcd China) 2. 数组的访问: a....访问特定的数组元素,比如访问第2个元素,那么利用下标index=1进行访问: index支持负值,表示从后向前访问, 第一个元素的index =0, 如果从后向前,那么最后一个元素index 可以表示为...访问所有的数组元素,这时候index 用* 表示就可以了;如下: $ echo ${a[*]} 1 2 3 abcd China c....数组名称中含有shell变量: 当数组名称中含有shell变量的时候,此时随着shell变量的变化,那么引用的数组自然也就不同;此时可以通过如下的方式实现 变量的嵌套: 嵌套变量有两个符号,一个用来组合成完整的变量名称...,另一个用于 标记组合后的内容是一个变量,而后一个符号需要用 单引号括起来,剩余的部分需要用双引号括起来;然后用echo 来显示这个变量,但因为 单引号 引用的字符不会被shell解释,所以输出结果是单引号
#前言:今天我们来聊聊shell脚本中的函数知识,看一下函数的优势,执行过程和相关的使用案例,我们也来看一下shell和python的函数书写方式有什么不同 #简介 1、函数也具有别名类似的功能 2、函数是把程序里多次调用相同的代码部分定义成一份...$@)都可以时函数的参数 #$0比较特殊,仍然是父脚本的名称 #在shell函数里面,return命令功能与shell里的exit类似,作用时跳出函数 #在shell函数里面使用exit会退出整个shell...,通过其他脚本进行调用然后传参 #/etc/init.d/functions boy(){ echo "I am $1" } #提示:$1:脚本的传入的第一个参数 [root@shell scripts...#例9:使用shell函数开发rsync服务启动脚本 #使用start、stop、restart函数将代码 模块化,使用系统函数action优化显示 [root@shell init.d]# cat rsyncd...if判断传入的参数是不是为一个,如果不是就调用帮助函数,然后使用case语句获取传入的参数,再调用相关的函数,$*:把命令行接收的所有参数作为函数参数传给函数内部 #测试 [root@shell init.d
#!/bin/bash for((i=3;i++;i>1)) do catip=(`netstat -ano | grep tcp | grep -v -E...
小红 是不相等的 是空的小明 不是空的小明 不是空的3....-gt检测左边的数是否大于右边的,如果是,则返回 true。[ $a -gt $b ] 返回 false。-lt检测左边的数是否小于右边的,如果是,则返回 true。...-ge检测左边的数是否大于等于右边的,如果是,则返回 true。[ $a -ge $b ] 返回 false。-le检测左边的数是否小于等于右边的,如果是,则返回 true。...文件可读/Users/xx/Documents/study/shell/shell_if_boolean.sh 文件可写/Users/xx/Documents/study/shell/shell_if_boolean.sh...文件可执行/Users/xx/Documents/study/shell/shell_if_boolean.sh 文件存在/Users/xx/Documents/study/shell/shell_if_boolean.sh
分析java进程cpu使用率过高的shell脚本 #!
作者:老油条IT记 公众号:老油条IT记 #前言:今天我们来聊聊shell脚本中的函数知识,看一下函数的优势,执行过程和相关的使用案例,我们也来看一下shell和python的函数书写方式有什么不同 #...:函数的传参和脚本的传参类似 #shell的位置参数($1 $2 $3 $4 $5 $# $* $?...$@)都可以时函数的参数 #$0比较特殊,仍然是父脚本的名称 #在shell函数里面,return命令功能与shell里的exit类似,作用时跳出函数 #在shell函数里面使用exit会退出整个shell...,通过其他脚本进行调用然后传参 #/etc/init.d/functions boy(){ echo "I am $1" } #提示:$1:脚本的传入的第一个参数 [root@shell scripts...#例9:使用shell函数开发rsync服务启动脚本 #使用start、stop、restart函数将代码 模块化,使用系统函数action优化显示 [root@shell init.d]# cat rsyncd
Shell脚本在运维工作中是极其重要的,而数组在shell脚本里的运用无论是在循环或运算方面都是非常实用的一个环节。...下面是对shell脚本中数组方面一些操作在此进行记录,希望能帮助到有兴趣的朋友~ 1.数组定义 [root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8) [root@bastion-IDC...bastion-IDC ~]# echo ${a[*]} 1 3 4 5 6 7 8 [root@bastion-IDC ~]# echo ${#a[*]} 7 直接通过:unset 数组[下标] 可以清除相应的元素...3.特殊使用 1)分片: [root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8) [root@bastion-IDC ~]# echo ${a[@]:0:3} 1 2 3 [
字符串 可以使用单引号和双引号定义字符串变量但是单引号中不支持变量解析 #!...username}" str_2='hello ${username}' echo $str_1 # hello mayuan echo $str_2 # hello ${username} 获取字符串的长度.../bin/bash username="mayuan" echo $(expr index "${username}" y) #查找y在指定字符的位置 数组 #!
shell-mysql (1)脚本背景: 由于要在Linux上,远程读取mysql的表的数据,然后做一定清洗后,把数据上传至Hadoop集群中,使用Java写吧,感觉太麻烦了,得在Win上开发好,还得打成...,所以就花了点时间,封装了一个小脚本 (2)功能介绍: 直接在Linux下使用shell脚本远程分页读取MySQL表的数据的一个小脚本,已测过读取600万+的数据 效率与jdbc相差无几 (3...)脚本介绍: 主要有三个脚本构成 1,page.sh 这是一主脚本,里面定义了分页的条件,大家看下便知 2,f.sh 一个小包装的脚本吧,里面会用sed去掉表头一些信息 3,port.sh 分页读取数据的执行脚本...(4)如何使用?...使用非常简单,需要改下page.sh里面的查询字段,以及分页查询的数量,默认是10000,然后执行sh page.sh databaseName tableName传入数据库名和表名即可 Github
本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作; profiles指定不同环境的配置 maven-assembly-plugin...descriptor节点:用来指定assembly插件对应的assembly.xml配置文件 有了上面mvn配置,我们还需要assembly.xml的配置,这里提取了结合shell脚本发布程序的配置:...,我们再分享下启动程序的shell脚本,该脚本具有的功能如: 解压zip+启动jar包 启动jar包 停止对应jar运行 重启jar程序 目前该shell中封装了两种启动jar命令的方式: java -...的properties中提供,是可变的参数,脚本代码本身不需要人工去修改,只需要变的是mvn的参数即可;其实在我们生成zip包的时候,shell中的参数就被替换了,可以看zip中shell文件内容如:.../shenniu_publish.sh脚本时候,提示了错误信息;是由于我是在windows上编辑的这个脚本,其空格等和linux上不一样,所以运行会有问题,要解决可以使用vim命令在linux把该文件转成
在上一篇文章讲述了如何在Linux系统中配置BitBucket、GitHub和Coding这三个平台的git账户,这篇文章就分享如何通过shell脚本定时获取自己的CentOS7.1服务器上的备份文件,...2 shell脚本的思路和流程 根据上面的需求,整理出脚本思路:先获取最新的备份文件,然后复制到本地的BitBucket、GitHub和Coding仓库目录下,然后通过Git命令同步到远端仓库即可,整个过程执行的命令以追加的方式保存到同一个日志文件中..." # exit 0 4 单独执行该shell脚本 可以将这个脚本保存为git.sh,然后使用时通过chmod +x git.sh命令添加执行权限,最后通过....附图如下: 同步到BitBucket仓库时的截图: 同步到GitHub仓库时的截图: 5 定时执行该shell脚本 利用Linux系统的crontab定时任务工具执行该脚本,例如下面这个配置就是每天凌晨...1点的时候执行该shell脚本。
虽然有一些自动化安装的工具,但是功能越多,越专业的工具,可能也需要越高的学习成本,而我们并非专业运维,但是又必须做这些事情的话,不妨选择用 Shell 脚本来完成集群的安装。...当然了,现在也有很多使用 docker 的做法,安装与部署也非常方便。 整个过程其实很简单,就是对安装过程中的一些手动操作使用 Shell 脚本进行替代。对脚本比较熟悉的话,应该很容易看懂。...在所有安装步骤中,最重要的一步是配置 SSH 无密码登录。如果不明白脚本的内容,不要使用我的安装脚本,明白可以抽取部分自用。...以下所涉及的所有脚本我都已经放到了 GitHub 上,点击 这里 查看,距离脚本写完已经有一段时间,懒得对代码结构进行优化了:)。如果对某个脚本有疑问,可以自行单独拿出来,在本地进行测试与验证。...一两台机器完全可以手动安装,稍微多点的话,写个脚本也还是十分有用的。本文涉及的安装文件已经放在了 GitHub:cluster-auto-installer .
领取专属 10元无门槛券
手把手带您无忧上云