shell基础练习
原创 2019-01-24 11:30:22
456阅读
1点赞
阿里云的机器,今天收到客服来的电话,说服务器的磁盘io很重。于是登录到服务器查看,并没有发现问题,所以怀疑是间歇性地。正要考虑写个脚本的时候,幸运的抓到了一个线索,造成磁盘io很高的幕后黑手是mysql。此时去showprocesslist,但未发现有问题的队列。原来只是一瞬间。只好继续来写脚本,思路是,每5s检测一次磁盘io,当发现问题去查询mysql的processlist。#!/bin/ba
原创 2019-01-24 20:57:40
3408阅读
1点赞
grepegrep匹配grep-[cinrvABC]'word'filegrep-c'abc'file列出file中包含abc的行grep-n'abc'file列出file中包含abc的行,并显示行号grep-i'abc'file不区分字母大小写grep-v'[0-9]'file取反,列出不包含[0-9]的行grep-
原创 2018-12-20 16:23:14
324阅读
文件目录属性判断[-ffile]判断是否为普通文件,且存在[-ddir]判断是否为目录,且存在[-efile]判断文件或目录是否存在[-rfile]判断文件是否可读[-wfile]判断文件是否可写[-xfile]判断文件是否可执行*[!-ffile]取反表示不存在if的特殊用法if[-z"$a"]表示当变量a的值为空if[-n"$a"]表示当变量a的值不为空
原创 2018-12-25 19:26:13
431阅读
shell项目-告警系统main.shmain.sh内容#!/bin/bash#是否发送邮件的开关exportsend=1#过滤ip地址exportaddr=/sbin/ifconfig|grep-A1"ens33:"|awk'/inet/{print$2}'dir=pwd#只需要最后一级目录名last_dir=echo$dir|awk-F'/'
原创 2018-12-28 21:03:14
413阅读
expect分发系统实现远程自动登录#!/usr/bin/expectsethost"192.168.200.128"#定义变量setpasswd"123456"spawnsshroot@$hostexpect{"yes/no"{send"yes\r";exp_continue}#\r表示回车"passwor
原创 2018-12-29 21:26:52
525阅读
#!/bin/bashn=netstat-lntp|grep':80'|wc-l#stat=nmap-p80127.0.0.1|grep'tcp/80'|awk'{print$2}'m=123qq@.comwhile:doif[$n-eq0]if[$stat=="closed"]then/usr/local/apache2.4/b
原创 2019-01-03 22:15:07
449阅读
在centos6系统里,我们可以使用ntsysv关闭不需要开机启动的服务,当然也可以使用chkconfig工具来实现。写一个shell脚本,用chkconfig工具把不常用的服务关闭。脚本需要写成交互式的,需要我们给它提供关闭的服务名字。#!/bin/bashLANG=enwhile:dochkconfig--list2>/dev/null|grep'3:on'|awk&#3
原创 2019-01-25 10:02:30
430阅读
awk命令-F指定分段符,若不指定分隔符默认以空格空白为分隔符awk-F':''{print$1,$3}'file打印第一段,第三段awk-F':''{print$0}'file打印全段awk'/word/'file打印包含word的行awk-F':''{print$1"#"
原创 2018-12-21 19:07:35
426阅读
shell编程shell是一种编程语言,可以使用逻辑判断,循环等语法。可以自定义函数。shell是系统命令的集合。shell脚本意识实现自动化运维,提高工作效率。shell脚本的结构和执行1.开头要使用#!/bin/bash——文件头,已什么解释器执行2.#开头为解释说明3.脚本以.sh结尾,用于区分这是一个shell脚本。有两种脚本执行方式1bashfile.sh2chmod+xfile.sh;
原创 2018-12-24 19:18:34
393阅读
1.以日期格式(xxxx-xx-xx)每日生成一个文件,例如生成的文件名为2019-01-02.log,并且把磁盘的使用情况写到到这个文件中,不用考虑cron,仅仅写脚本即可#!/bin/bashd=date+%Fdisklogfile=$d.logdf-h>$disklogfile#!/bin/bashd=date+%Fdir=/data/logs/disklogif[!-d$dir]th
原创 2019-01-02 21:29:22
417阅读
写个shell,看看你的Linux系统中是否有自定义用户(普通用户),若是有,一共有几个?#!/bin/bashv=awk-F'release''{print$2}'/etc/redhat-release|cut-d"."-f1panduan(){if[$1-eq0]thenecho"meiyouzidingyiyonghu"
原创 2019-01-07 19:15:29
525阅读
假设,当前MySQL服务的root密码为123456,写脚本检测MySQL服务是否正常(比如,可以正常进入mysql执行showprocesslist),并检测一下当前的MySQL服务是主还是从,如果是从,请判断它的主从服务是否异常。如果是主,则不需要做什么。#!/bin/bashmysql="/usr/local/mysql/bin/mysql-uroot-p123456"i
原创 2019-01-09 21:16:23
421阅读
编写一个问候程序,它执行时能根据系统当前的时间向用户输出问候信息。假设从半夜到中午为早晨,中午到下午六点为下午,下午六点到半夜为晚上。!/bin/bashd=date+%Hif[$d-ge0-a$d-lt7]#-a表示并且thentag=1elif[$d-ge7-a$d-lt12]thentag=2elif[$d-ge12-a$d-lt18]thentag=3elsetag=4ficase$tag
原创 2019-01-14 20:31:44
307阅读
写一个getinterface.sh脚本可以接受选项[i,I],完成下面任务:1)使用格式:getinterface.sh[-iinterface|-Iip]2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项时,显示其指定ip所属的网卡。例:shgetinterface.sh-ieth0或者shgetinterface.sh-I192.168.0.13)当用户使用除[-i|-I]
原创 2019-01-15 21:39:36
508阅读
写一个shell脚本,通过curl-I返回的状态码来判定所访问的网站是否正常。比如,当状态码为200时,才算正常。#!/bin/bashurl="http://www.baidu.com"mail_user=123@qq.comcode=curl-I$url2>/tmp/curl.err|head-1|awk'{$2}'if[-z"$code&q
原创 2019-01-16 19:15:28
363阅读
判断所给目录内哪些二级目录下有没有text.txt文件。有text.txt文件的二级目录,计算出该test.txt文件里面所给出单词的次数。假如脚本名字为1.sh,运行脚本的格式为./1.sh123root,其中123为目录名字,而root为要计算数量的单词#!/bin/bashif[$#-ne2]thenecho"请提供两个参数,第一个参数是目录名字,第二个参数是单词"exi
原创 2019-01-22 20:32:46
446阅读
1.shell基础介绍shell是一个命令解释器。人机交互有特定的语法forifwhile等centos7中默认shell为bash,但也有ksh,zsh等shell2.命令历史history查看命令历史记录,默认为1000条记录。可以通过修改/etc/profile中HISTESIZE调整命令历史记录数,修改过后执行source/etc/profile后生效。history-c清空内存中历史命令
原创 2018-12-17 20:35:41
394阅读
6.管道符号与作业控制管道符|把左边命令输出结果交给右边执行。cat/etc/passwd|grep-iroot列出passwd中包含root的行。作业控制Ctrl+z暂停任务执行;command&把命令放在后台执行;jobs查看后台运行的任务;fgid把对应id的任务调回至前台运行;bgid把对应id的任务放在后台运行7-8.shell变量env查看系统内置环境变量;set查看系统环境变
原创 2018-12-18 16:16:02
408阅读
10.特殊字符任意个任意字符?任意一个字符#注释字符\脱义字符|管道符$变量前缀!$正则中表示行尾;多条命令写在一行执行~用户家目录,在正则中表示匹配&把命令放在后台运行command&<输入重定向,>输出重定向,>>输出追加重定向,2>错误重定向,2>>错误追加重定向,&>正确错误重定向,&>>正确错误追
原创 2018-12-19 11:52:07
319阅读
  • 1
  • 2
  • 3
  • 4
  • 5