在centos6系统里,我们可以使用ntsysv关闭不需要开机启动的服务,当然也可以使用chkconfig工具来实现。写一个shell脚本,用chkconfig工具把不常用的服务关闭。脚本需要写成交互式的,需要我们给它提供关闭的服务名字。#!/bin/bashLANG=enwhile:dochkconfig--list2>/dev/null|grep'3:on'|awk
阿里云的机器,今天收到客服来的电话,说服务器的磁盘io很重。于是登录到服务器查看,并没有发现问题,所以怀疑是间歇性地。正要考虑写个脚本的时候,幸运的抓到了一个线索,造成磁盘io很高的幕后黑手是mysql。此时去showprocesslist,但未发现有问题的队列。原来只是一瞬间。只好继续来写脚本,思路是,每5s检测一次磁盘io,当发现问题去查询mysql的processlist。#!/bin/ba
linux系统中,目录/root/下有一个文件ip-pwd.ini,内容如下:10.111.11.1,root,xyxyxy10.111.11.2,root,xzxzxz10.111.11.3,root,12345610.111.11.4,root,xxxxxx……文件中每一行的格式都为linux服务器的ip,root用户名,root密码,请用一个shell批量将这些服务器中的所有tomcat进程
判断所给目录内哪些二级目录下有没有text.txt文件。有text.txt文件的二级目录,计算出该test.txt文件里面所给出单词的次数。假如脚本名字为1.sh,运行脚本的格式为./1.sh123root,其中123为目录名字,而root为要计算数量的单词#!/bin/bashif[$#-ne2]thenecho"请提供两个参数,第一个参数是目录名字,第二个参数是单词"exi
写一个脚本:判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendorid一行中。如果其生产商为AuthenticAMD,就显示其为AMD公司;如果其生产商为GenuineIntel,就显示其为Intel公司;否则,就说其为非主流公司。#!/bin/bashcpu=grep'^vendor_id'/proc/cpuinfo|head-1|awk-F':
有两个文件a.txt和b.txt,需求是,把a.txt中有的但b.txt中没有的行找出来,并写入到c.txt,然后计算c.txt文件的行数。#!/bin/bashcata.txt|whilereadlinedoif!grep-q"$line"b.txtthenecho$linefidone>c.txtwc-lc.txt把当前用户下所有进程名字中含有"xxx&qu
在文本文档1.txt第5行(假设文件行数大于5)后面增加如下内容:#Thisisatestfile.#Testinsertlineintothisfile.#!/bin/bashn=0cat1.txt|whilereadlinedon=$[$n+1]if[$n-eq5]thenecho$lineecho-e"#Thisisatestfile.\n#Testinsertlineintoth
写一个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
写一个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]
编写一个问候程序,它执行时能根据系统当前的时间向用户输出问候信息。假设从半夜到中午为早晨,中午到下午六点为下午,下午六点到半夜为晚上。!/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
用shell实现,把一个文本文档中只有一个数字的行给打印出来。文件名filename#!/bin/bashwhilereadlinedon=echo$line|sed's/[^0-9]//g'|wc-Lif[$n-eq1]thenecho$linefidone<filename系统logrotate工具,可以完成日志切割、归档。写一个shell脚本实现类似的归档功能。举例:假
提示用户输入网卡的名字,然后我们用脚本输出网卡的ip,需要考虑下面问题:输入的字符不符合网卡名字规范,怎么应对。名字符合规范,但是根本就没有这个网卡又怎么应对。#!/bin/bashipadd|awk-F':''$1~"^[1-9]"{print$2}'>/tmp/eth.listwhile:doeths=cat/tmp/eth.list|
假设,当前MySQL服务的root密码为123456,写脚本检测MySQL服务是否正常(比如,可以正常进入mysql执行showprocesslist),并检测一下当前的MySQL服务是主还是从,如果是从,请判断它的主从服务是否异常。如果是主,则不需要做什么。#!/bin/bashmysql="/usr/local/mysql/bin/mysql-uroot-p123456"i
写个shell,看看你的Linux系统中是否有自定义用户(普通用户),若是有,一共有几个?#!/bin/bashv=awk-F'release''{print$2}'/etc/redhat-release|cut-d"."-f1panduan(){if[$1-eq0]thenecho"meiyouzidingyiyonghu"
输入数字执行命令输入1执行date命令输入2执行ls命令可以使用case判断#!/bin/bashecho"cmdmanu1date2ls3pwd"read-p"pleaseinputanumber;"nif[-z$n]thenecho"shuruyigeshuzi"exitfin1=echo$n|sed's/[0-9]//g
#!/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
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
expect分发系统实现远程自动登录#!/usr/bin/expectsethost"192.168.200.128"#定义变量setpasswd"123456"spawnsshroot@$hostexpect{"yes/no"{send"yes\r";exp_continue}#\r表示回车"passwor
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'/'
shell中的函数函数就是把一段代码整理到一个小单元中,并给这个小单元起名字,当用到这段代码的时候,只需要调用这个小单元的名字即可。格式functionf_name(){command}其中function可以省略举例1vim/usr/local/sbin/inp.sh#!/bin/bashinp(){echo$1$2$#$0}inpabc输出结果为ab3inp.sh$#输出参数格式当前为3$0输
while循环语法while条件;do......;done举例1#!/bin/bashwhile:#冒号表示死循环等同于whiletruedoload=w|head-1|awk-F'loadaverage:''{print$2}'|cut-d.-f1#将w命令输出第一行,已loadaverage:为分隔符输出第二段,并将输出内容已“.”为分隔符截取第一段输出,将其
文件目录属性判断[-ffile]判断是否为普通文件,且存在[-ddir]判断是否为目录,且存在[-efile]判断文件或目录是否存在[-rfile]判断文件是否可读[-wfile]判断文件是否可写[-xfile]判断文件是否可执行*[!-ffile]取反表示不存在if的特殊用法if[-z"$a"]表示当变量a的值为空if[-n"$a"]表示当变量a的值不为空
shell编程shell是一种编程语言,可以使用逻辑判断,循环等语法。可以自定义函数。shell是系统命令的集合。shell脚本意识实现自动化运维,提高工作效率。shell脚本的结构和执行1.开头要使用#!/bin/bash——文件头,已什么解释器执行2.#开头为解释说明3.脚本以.sh结尾,用于区分这是一个shell脚本。有两种脚本执行方式1bashfile.sh2chmod+xfile.sh;
awk命令-F指定分段符,若不指定分隔符默认以空格空白为分隔符awk-F':''{print$1,$3}'file打印第一段,第三段awk-F':''{print$0}'file打印全段awk'/word/'file打印包含word的行awk-F':''{print$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-
10.特殊字符任意个任意字符?任意一个字符#注释字符\脱义字符|管道符$变量前缀!$正则中表示行尾;多条命令写在一行执行~用户家目录,在正则中表示匹配&把命令放在后台运行command&<输入重定向,>输出重定向,>>输出追加重定向,2>错误重定向,2>>错误追加重定向,&>正确错误重定向,&>>正确错误追
6.管道符号与作业控制管道符|把左边命令输出结果交给右边执行。cat/etc/passwd|grep-iroot列出passwd中包含root的行。作业控制Ctrl+z暂停任务执行;command&把命令放在后台执行;jobs查看后台运行的任务;fgid把对应id的任务调回至前台运行;bgid把对应id的任务放在后台运行7-8.shell变量env查看系统内置环境变量;set查看系统环境变
1.shell基础介绍shell是一个命令解释器。人机交互有特定的语法forifwhile等centos7中默认shell为bash,但也有ksh,zsh等shell2.命令历史history查看命令历史记录,默认为1000条记录。可以通过修改/etc/profile中HISTESIZE调整命令历史记录数,修改过后执行source/etc/profile后生效。history-c清空内存中历史命令
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号