shell
温柔梦9527
只要努力,什么都会成为可能
展开
-
检测机房里面的服务器的工作情况,将正常工作的服务器的主机名称和ip抓取出来放到指定文件当中
#!/bin/bashAuto_Ssh(){/usr/bin/expect <<EOFspawn ssh root@$1 hostnameexpect {"yes/no" { send "yes\r" ;exp_continue }"password" { send "Asimov\r" }}expect eofEOF}for IP in {1..10}do...原创 2019-06-17 08:09:56 · 303 阅读 · 0 评论 -
shell中的case语句的定义与示例
1.case语句的格式(横向比较:点名式,效率比if高)caseword1 )action1;;word2)action2;;........*)action_lastesac2.case语句的示例if会比较多次,从第一条开始比较,直到遇到匹配的才会停止比较...原创 2019-06-10 18:31:49 · 427 阅读 · 0 评论 -
编写脚本实现创建指定文件中的用户并且设置用户的密码
编写脚本实现创建用户create_user.sh userfile(用户名文件) passwdfile(用户密码文件)(1)调用脚本后面要跟两个文件才可以(2)跟的文件要判断在不在...原创 2019-06-10 18:20:48 · 1950 阅读 · 0 评论 -
shell中if语句的定义与示例
1.if语句的格式if如果then那么elif又如果then那么。。。如果那么可以有任意多次else否则(可加可不加)fi结束2.if语句的示例vim if.shif [ "$1"="linux" ](条件成立)then echo westoselif [ "$1"="westos"]then echo linuxelse(条件不成立)可加可不加 echo ...原创 2019-06-10 18:03:19 · 311 阅读 · 0 评论 -
编写脚本实现10s监控一次系统的负载并且显示到shell终端界面
3s监控一次系统的负载(uptime命令查看负载)并且显示到shell终端界面vim test.shwhile truedo clear先将屏幕清空 uptime查看系统负载 sleep 3停留3sdone因为条件一直成立,因此会一直做下去sh test.sh中间有一次没截上...原创 2019-06-10 17:40:18 · 1315 阅读 · 0 评论 -
shell中的for语句的定义与示例
1.for语句的格式for NUM in 1 2 3for NUM in {1..3}for NUM in `seq 1 3` 或者 for NUM in `seq 1 2 10`dodone2.for语句的示例示例一vim for.sh#!/bin/bashfor i(变量的名字) in {1..10}(变量的范围)do echo $i(输出变量i的所有值)don...原创 2019-06-10 17:00:46 · 1202 阅读 · 0 评论 -
shell中的while语句与until语句的定义与示例
1.while语句的格式while 条件(只有条件为真时才执行,条件为假不作任何处理)dodone2.while语句的示例示例一vim while.sh#!/bin/bashwhile ture(只有为真才执行)do read -p "please input word: " WORD条件为真会一直执行,不会中断 echo $WORDdonesh while....原创 2019-06-10 17:26:45 · 208 阅读 · 0 评论 -
编写脚本检测同一个机房里的服务器哪些是通的
例如:检测教室里面的前10台主机哪个是通着的vim check_ip.sh#!/bin/bashfor IP in {1..10}定义循环的变量以及范围do ping -c1 -w1 172.25.254.$IP &> /dev/null [ "0"="$?" ] && { echo 172.25.254.&IP }done在企业当...原创 2019-06-10 17:09:43 · 206 阅读 · 0 评论 -
shell中数组的使用
实验步骤a=(`ls /mnt`) 数组a的内容就是/mnt下面的所有的东西echo ${a[0]} 输出数组a的第一个元素echo ${a[1]} 输出数组a的第二个元素echo ${a[*]} 输出数组a的所有元素dfdf -h /df -h / | sed -n '/\/$/p'a=(`df -h / | sed -n '/\/$/p'`)定义数组aecho ${a[4...原创 2019-06-10 16:45:21 · 512 阅读 · 0 评论 -
编写脚本uesr_ctrl.sh实现建立用户和删除用户 (脚本函数的应用)
先要有个简单的思想,分为几个模块,每个模块怎样写第一部分#!/bin/bashecho -e "[C]reate [D]elete [E]xit\n" 调用这个脚本会先出现三个选项掉用这个脚本会出现三个选项:创建用户、删除用户、退出第二部分Choose_Action_Func() 定义选择选项的函数{ read -p "Please input Action: "...原创 2019-06-10 16:38:14 · 519 阅读 · 0 评论 -
shell中expect语句的定义与示例,具有自己的执行环境
1.安装expect服务2.expect语句的定义expect 是自动应答命令用于交互式命令的自动执行spawn 是 expect 中的监控程序,其运行后会监控命令提出的交互问题send发送问题答案给交互命令"\r"表示回车exp_continue 标示当问题不存在时继续回答下面的问题expect eof 标示问题回答完毕退出 expect 环境interact标示问题...原创 2019-06-10 18:59:29 · 341 阅读 · 0 评论 -
编写脚本实现ssh自动连接远程主机
原创 2019-06-10 19:08:13 · 2794 阅读 · 0 评论 -
编写脚本自动查看机房的通着的服务器的主机名字(for语句、if语句、expect语句的结合)
== 查看机房的前10台主机哪个开着,远程hostname,查看其主机名字,并且返回到当前shell==调用该脚本就可以实现自动连接查看主机名字原创 2019-06-10 19:18:06 · 456 阅读 · 0 评论 -
编写实现字符反转的脚本
#!/bin/bashSTR=`echo -n $1 | wc -c`for ((;STR>0;STR--))do echo -n `echo $1 | cut -c $STR`doneecho -e "\r"#!/bin/bashecho $1 | rev原创 2019-06-16 22:34:55 · 393 阅读 · 0 评论 -
编写脚本实现自动备份数据库(这个在企业当中非常有用)
#!/bin/bashif [ ! -e "/var/lib/mysql/mysql.sock" ] 判断这个文件是否存在then echo "Error: Mysql is not running" 不存在就说明数据库是关着的 exit 1 退出elif [ -z "$1" ] 判断脚本后面是否跟着密码then echo "Error: Please show db passwor...原创 2019-06-16 22:06:00 · 919 阅读 · 0 评论 -
运算方式的倒计时脚本
#!/bin/bashMIN=1 1分钟SEC=10 10秒钟clear 倒计时的时候先清空一下ALL_SEC=$[$MIN*60+$SEC]总的秒数for ((;ALL_SEC>0;ALL_SEC--))循环do Show_MIN=$[$ALL_SEC/60]计算分钟 Show_SEC=$[$ALL_SEC%60]计算秒 ...原创 2019-06-16 21:45:46 · 143 阅读 · 0 评论 -
逻辑判断方式的倒计时脚本
#!/bin/bashread -p "please input time: " TIME当调用脚本的时候就输入开始倒计时的时间minute=`echo $TIME | awk -F : '{print $1}'`截取第一列为分钟second=`echo $TIME | awk -F : '{print $2}'`截取第二列为秒while (( $minute >= 0 ))当分钟大...原创 2019-06-16 21:36:24 · 249 阅读 · 0 评论 -
编辑一个10s倒计时的脚本
原创 2019-06-10 20:06:15 · 912 阅读 · 0 评论 -
shell中的运算符号与运算命令
原创 2019-06-10 19:55:18 · 585 阅读 · 0 评论 -
脚本中的语句控制器之一continue
continue:提前结束循环内部的命令,但不终止当前循环原创 2019-06-10 19:45:06 · 169 阅读 · 0 评论 -
脚本中的语句控制器之一break
break:退出当前循环,但不退出脚本原创 2019-06-10 19:39:48 · 173 阅读 · 0 评论 -
脚本中的语句控制器之一exit
exit n:脚本退出,退出值为n实验步骤如下vim test.sh#!/bin/bashfor i in {1..10}do if [ "$i" = "5" ] then echo lucky number fi echo $idonesh test.shvim file.sh#!/bin/bashfor i in {1..10}do if [...原创 2019-06-10 19:32:58 · 229 阅读 · 0 评论 -
shell中函数的定义与调用
1.什么是脚本中的函数?首先得了解什么是脚本,脚本一般是网站的服务器端程序,主要用于动态网站的服务请求响应故脚本函数就是写在脚本中的特定功能函数了脚本中的函数是把一个复杂的语句块定义成一个字符串的方法然后每次想使用某一个功能的时候,直接调用函数就可以比如:Host_Message(){ read -p "Please input you action: " Action [ ...原创 2019-06-10 16:13:33 · 2371 阅读 · 0 评论 -
shell中命令执行完之后产生的退出值$?
$? 是命令在执行完成之后产生的退出值,范围是 0到255当 $0=0 时标示命令执行没有错误输出,这个值可以用 exit 命令指定一般情况下echo $?为0就说明上述命令执行正确如果echo $?非0就说明上述执行命令错误当然,我们也可以自己指定退出值,不一定非0就是错误的命令执行结果的数字一般情况下0表示上一条命令执行正确,非0表示错误(错误原因可以查$?的值)先执行一条命...原创 2019-06-10 15:49:55 · 3800 阅读 · 0 评论 -
shell中变量引用的两种方式$()和``,后者叫做反向单引号
怎样引用变量(就是让系统识别这个变量)?有两种方式:$() 和 ````适合于所有的,反向单引号$()适合于shell实验步骤如下echo time is dateecho time is `date`echo time is $(date)time=`date`echo $timevim test.pl#!/bin/bashprint $(date)...原创 2019-06-10 15:25:14 · 5042 阅读 · 0 评论 -
编写脚本实现查看ip的时候只看到ip地址,没有其它的冗余信息(想看啥就是啥)
查看ip的时候想看什么就看什么其实就是把ifconfig eth0命令写在脚本里面执行,并且在执行结果上截取想要的信息要有这样的一个思想ifconfig eth0只要ipvim show_ip.sh#!/bin/bashifconfig eth0 | grep '\<inet\>' | cut -d " " -f 10echo the ip of eth0 is :...原创 2019-06-05 18:25:54 · 785 阅读 · 0 评论 -
编写一个脚本,调用该脚本就可以知道能登录系统的用户有哪些
找出可以登陆系统的用户,即使新建一个可以登陆或者不能登陆的用户,调用脚本都能识别原创 2019-06-05 18:11:15 · 787 阅读 · 0 评论 -
编写一个判断文件类型的脚本,执行脚本+文件名字,立马给出文件类型
如何实现给出一个文件名字,就立马判断文件类型?----->脚本原创 2019-06-05 17:49:46 · 923 阅读 · 0 评论 -
如何编写脚本实现检测ip的工作情况时不加任何东西会报错?比较人性化的脚本
如何实现执行脚本不加ip的话会自动报错,而且还会退出?vim ping.sh#!/bin/bash[ -z "$1" ] && {其实就相当于加了一个比较的命令,$1是不是空的 echo "Error: please input ipaddress following scripts!" exit}ping -c1 -w1 $1 &>...原创 2019-06-05 17:21:30 · 165 阅读 · 0 评论 -
如何每分钟检测一次/(根)的使用率,如果超过80% 就给/var/log/messages报警?在企业当中非常实用
如何每分钟检测一次/(根)的使用率,如果超过80% 就给/var/log/messgae报警?dfvim checkstorage.shdf -h /df -h / | tail -n 1vim checkstorage.sh#!/bin/bash["df -h / | tail -n 1 | cut -d " " -f 15 | cut -d "%" -f 1" -ge “31...原创 2019-06-05 17:05:25 · 638 阅读 · 0 评论 -
如何利用脚本快速查看一个ip是up还是down?
如何查看一个ip的工作情况?vim ping.shping -c1 -w1 $1 &> /dev/null && echo $1 is up || echo $1 is down(echo表示输出)chmod +x ping.shsh ping.sh 后面写一个ip,就可以看出ip是up还是downping -c1(次数) -w1(等待时间)如何实现...原创 2019-06-05 11:02:56 · 1126 阅读 · 0 评论 -
写一个脚本实现调用脚本就可知道谁ssh远程连接自己的次数最多
如何检测谁ssh连接自己的次数最多?last命令 查看谁都ssh连过自己last -i 查看并且显示ip 0.0.0.0是主机自己,172网段的才是别人last -i | grep 0.0.0.0 -v过滤last -i | grep 0.0.0.0 -v | cut -d " " -f 14 截取只要ip列last -i | grep 0.0.0.0 -v | awk ‘{...原创 2019-06-05 10:35:57 · 339 阅读 · 0 评论 -
shell中的文本处理正则表达式(grep+sed+awk:俗称linux中的三剑客)
1.什么是正则表达式?正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本许多程序设计语言都支持利用正则表达式进行字符串操作,例如,在Perl中就内建了一个功能强大的正则表达式引擎正则表达式这个概念最初是由Unix中的工具软件(例如sed和...原创 2019-06-05 10:09:40 · 562 阅读 · 1 评论 -
shell 脚本中的常用命令(编写脚本的前提)(diff+patch+cut+sort+uniq+tr+test+&&+||)
搭建实验环境注意:每次实验之前都要搭建一个纯净的实验环境,这样有利于将实验效果很好的展现给大家(1)在真机中重置并且打开我的desktop虚拟机rht-vmctl reset desktoprht-vmctl start desktoprht-vmctl view desktop(2)给desktop虚拟机配置网络cd /etc/sysconfig/network-scripts...原创 2019-06-04 21:23:57 · 388 阅读 · 0 评论 -
编写脚本实现:自动建立执行脚本时所跟文件里面的用户
怎样实现调用脚本就能自动建立文件里面的用户?编写脚本的时候要有思想:要实现什么功能,实现的每一步都要干什么,然后按顺序将命令写在脚本里面即可调用不加任何东西的时候要提醒调用后面加一个不存在的文件名字的时候要提醒调用正确的文件才会实现我们想要功能接下来先实现一个简单的for循环for循环#!/bin/bashfor i in {1..30}(`seq 1 30`)do ...原创 2019-06-05 19:09:40 · 657 阅读 · 0 评论 -
编写脚本实现轻松改变apache服务的端口(默认是80端口)
怎样实现sh apache.sh 端口,调用脚本改端口?yum install httpd -ysystemctl start httpdvim apache.sh#!/bin/bash[ -z "$1" ] && { echo "Error:please input number following script" exit} sed ...原创 2019-06-05 19:26:28 · 644 阅读 · 0 评论 -
怎样解决ssh连接慢的问题?
因为DNS的原因连接谁就在哪设置,客户端连接服务端,在服务端设置vim /etc/ssh/sshd_config在服务端编辑ssh服务的配置文件UseDNS no设置ssh连接不使用DNSsystemctl restart sshd重启服务w -i查看自己被谁都连接了然后在客户端连接服务端就可以很快了...原创 2019-06-06 11:47:51 · 261 阅读 · 0 评论 -
linux中别名的设置以及删除
1.linux中别名的设定以前我们一直都是 vim file来编辑文件现在想通过xie file来编辑文件也就是说,给vim 取一个别名叫xie实验步骤如下直接xie file找不到alias xie='vim' 这个是在当前shell中生效(相当于环境级的设置),关闭这个shell,重新打开一个shell不再生效xie file可以exitxie file不行...原创 2019-06-10 15:08:12 · 3380 阅读 · 0 评论 -
shell中交互式变量的编写(用 read 实现变量传递)
1.什么是交互式变量?当我们在shell中输入一条命令回车的时候,会让填写一些内容才会继续往下走也就是传统的一问一答的模式比如passwd命令2.编写脚本实现交互式的操作vim test1.sh#!/bin/bashread -p "ni chou sha: " TARGET使用read命令实现交互式echo "$TARGET"sh test1.shvim tes...原创 2019-06-10 11:23:05 · 3718 阅读 · 0 评论 -
shell中变量的命名、字符的转义、变量的声明以及变量值的传递
1.shell中变量名称的规范变量名称中通常包含大小写字母,数字,下划线不是变量名中同时需要具备字母、数字、下划线,变量名只能出现这三种字符变量名不能以数字开头,只能以字母或者下划线开头变量名称格式定义:WESTOS_LINUXWestos_LinuxwestoS_Linux2.字符的转译|转译单个字符“”‘’‘’ 与 “” 两者的区别在于...原创 2019-06-10 11:06:03 · 3261 阅读 · 0 评论