
shell脚本
大江东去了吗
让我们面对现实,让我们面对理想
展开
-
shell脚本(三)
20.11/20.12 while循环20.13 break跳出循环20.14 continue结束本次循环20.15 exit退出整个脚本while循环语法 while 条件; do … ; done案例1#!/bin/bashwhile :do load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -...原创 2018-12-26 23:27:17 · 389 阅读 · 2 评论 -
shell习题100(十三)
as原创 2019-01-18 21:49:09 · 365 阅读 · 0 评论 -
shell习题100(五)
题目要求计算文档a.txt中每一行中出现的数字个数并且要计算一下整个文档中一共出现了几个数字。例如a.txt内容如下:12aa*lkjskdjalskdflkskdjflkjj我们脚本名字为 ncount.sh, 运行它时:bash ncount.sh a.txt输出结果应该为:20sum:2参考答案#!/bin/bashsum=0while read linedo ...原创 2019-01-08 22:01:57 · 280 阅读 · 0 评论 -
shell习题100(十七)
题目要求阿里云的机器,今天收到客服来的电话,说服务器的磁盘io很重。于是登录到服务器查看,并没有发现问题,所以怀疑是间歇性地。正要考虑写个脚本的时候,幸运的抓到了一个线索,造成磁盘io很高的幕后黑手是mysql。此时去show processlist,但未发现有问题的队列。原来只是一瞬间。只好继续来写脚本,思路是,每5s检测一次磁盘io,当发现问题去查询mysql的processlist。参考...原创 2019-01-24 22:48:27 · 440 阅读 · 0 评论 -
shell习题100(九)
题目要求编写一个问候程序,它执行时能根据系统当前的时间向用户输出问候信息。假设从半夜到中午为早晨,中午到下午六点为下午,下午六点到半夜为晚上。参考答案#!/bin/bashd=`date +%H`if [ $d -ge 0 -a $d -lt 7 ]then tag=1elif [ $d -ge 7 -a $d -lt 12 ]then tag=2elif [ $...原创 2019-01-14 22:06:53 · 1932 阅读 · 2 评论 -
shell习题100(六)
题目要求写一个脚本,执行后,打印一行提示“Please input a number:",要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值。直到用户输入"end"停止。参考答案#!/bin/bashwhile :do read -p "Please input a number: " n if [ -z "$n" ] th原创 2019-01-09 22:01:10 · 711 阅读 · 0 评论 -
shell习题100(十八)
题目要求在centos6系统里,我们可以使用ntsysv关闭不需要开机启动的服务,当然也可以使用chkconfig工具来实现。写一个shell脚本,用chkconfig工具把不常用的服务关闭。脚本需要写成交互式的,需要我们给它提供关闭的服务名字。参考答案#!/bin/bash#这个脚本用来关闭服务#作者:猿#日期:2018-12-14LANG=enwhile :do ...原创 2019-01-25 21:57:52 · 384 阅读 · 0 评论 -
shell习题100(十)
题目要求写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务:1)使用格式:getinterface.sh [-i interface | -I ip]2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项时,显示其指定ip所属的网卡。例:sh getinterface.sh -i eth0 或者sh getinterface.sh -I 19...原创 2019-01-15 22:25:28 · 328 阅读 · 0 评论 -
shell习题100(十四)
题目要求写一个脚本:判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor id一行中。如果其生产商为AuthenticAMD,就显示其为AMD公司;如果其生产商为GenuineIntel,就显示其为Intel公司;否则,就说其为非主流公司。参考答案#!/bin/bash#这个脚本用来判断CPU厂商#作者:猿#日期:2018-12-10cpu=...原创 2019-01-21 21:45:47 · 485 阅读 · 0 评论 -
shell习题(十一)
题目要求写一个shell脚本,通过curl -I 返回的状态码来判定所访问的网站是否正常。比如,当状态码为200时,才算正常。参考答案#!/bin/bash#这个脚本用来判断一个网址是否正常#作者:猿课-阿铭 www.apelearn.com#日期:2018-11-01url="http://www.apelearn.com/index.php"mail_user=306798...原创 2019-01-16 22:24:47 · 432 阅读 · 0 评论 -
shell习题100(十五)
题目要求判断所给目录内哪些二级目录下有没有text.txt文件。有text.txt文件的二级目录,计算出该test.txt文件里面所给出单词的次数。假如脚本名字为1.sh, 运行脚本的格式为 ./1.sh 123 root,其中123为目录名字,而root为要计算数量的单词。参考答案#!/bin/bash#这个脚本用来判断文件是否存在并计算单词个数#作者:猿#日期:2018...原创 2019-01-22 22:16:19 · 418 阅读 · 0 评论 -
shell习题100(十九)
题目要求用shell脚本实现,部署mysql主从,假设两台机器上已经安装了mysql,并且目前无新库。参考答案#!/bin/bash#这个脚本用来配置MySQL主从同步#作者:猿#日期:2018-12-17#!/bin/bashmaster_ip=192.168.100.12slave_ip=192.168.100.13mysqlc="mysql -uroot -paming...原创 2019-01-28 22:13:01 · 385 阅读 · 0 评论 -
shell习题100(二十)
题目要求需求背景:领导要求小明备份数据库服务器里面的100个库(数据量在几十到几百G),需要以最快的时间完成(5小时内),并且不能影响服务器性能。参考答案#!/bin/bash#这个脚本用来并发备份数据库#作者:猿#日期:2018-12-19##假设100个库的库名、host、port以及配置文件路径存到了一个文件里,文件名字为/tmp/databases.list##格式:d...原创 2019-01-30 07:39:36 · 313 阅读 · 0 评论 -
here 文档
here文档Linux的Here DOC即为Here 文档,是一种特殊的程序区域,可以用来设置变量等操作、向一条命令传递输入。它使用I/O重定向的形式将一个命令序列传递到一个交互程序或者命令中。它允许一条命令在获得输入数据时就好像是在读取一个文件或键盘一样,而实际是从脚本程序中得到输入数据。基本的格式:命令 << 标记内容.... .....标记说明:上面的位于两个标记...原创 2019-05-17 17:17:01 · 1157 阅读 · 0 评论 -
发邮件的脚本
mail下面是一个使用python2写的发e-mail的脚本,调用方式:python mail.py 目标邮箱 “title” “content”#!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport sm...原创 2019-08-15 10:46:46 · 1013 阅读 · 0 评论 -
shell习题100(十六)
题目要求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批量将这些服务器...原创 2019-01-23 22:51:50 · 369 阅读 · 0 评论 -
shell习题100(四)
题目要求写个shell,看看你的Linux系统中是否有自定义用户(普通用户),若是有,一共有几个?参考答案#!/bin/bashv=`awk -F 'release ' '{print $2}' /etc/redhat-release |cut -d '.' -f1`user(){ if [ $1 -eq 0 ] then echo "系统没...原创 2019-01-08 08:30:58 · 480 阅读 · 0 评论 -
shell习题100(十二)
题目要求在文本文档1.txt第5行(假设文件行数大于5)后面增加如下内容:# This is a test file.# Test insert line into this file.参考答案#!/bin/bash#这个脚本用来给文件增加行#作者:猿课-阿铭 www.apelearn.com#日期:2018-11-01n=0cat 1.txt |while read li...原创 2019-01-17 22:28:39 · 1979 阅读 · 0 评论 -
shell中定义文件描述符
原创 2018-09-29 07:47:48 · 916 阅读 · 0 评论 -
shell中关联数组使用
关联数组其实就是python中的字典原创 2018-09-29 07:49:48 · 766 阅读 · 0 评论 -
shell中alias别名
用alias别名saferm,系统环境变量无法使用$@传递变量。试验发现只能编写函数或者脚本才能传递变量。原创 2018-09-29 08:01:31 · 485 阅读 · 0 评论 -
shell擦除回显(不在终端显示)
gl@gl-pc ~ $ cat 1.shecho -e "enter password: "stty -echoread passwordstty echoechoecho password readgl@gl-pc ~ $ bash 1.shenter password:password readgl@gl-pc ~ $gl@gl-pc ~ $gl@gl-pc ~ $ ...原创 2018-09-29 22:28:01 · 3642 阅读 · 0 评论 -
shell时间戳
gl@gl-pc ~ $ date +%s1538232995gl@gl-pc ~ $ date -d “2018/10/1” +%s1538323200原创 2018-09-29 23:01:21 · 3170 阅读 · 0 评论 -
shell脚本(四)
20.16/20.17 shell中的函数20.18 shell中的数组20.19 告警系统需求分析shell函数函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。格式:function f_name() { command }函数必须要放...原创 2018-12-27 23:26:21 · 176 阅读 · 0 评论 -
shell脚本(五)
20.20 告警系统主脚本20.21 告警系统配置文件20.22 告警系统监控项目20.23/20.24/20.25 告警系统邮件引擎告警系统需求分析需求:使用shell定制各种个性化告警工具,但需要统一化管理、规范化管理。思路:指定一个脚本包,包含主程序、子程序、配置文件、邮件引擎、输出日志等。主程序:作为整个脚本的入口,是整个系统的命脉。配置文件:是一个控制中心,用它来开关各个...原创 2018-12-28 23:23:50 · 186 阅读 · 0 评论 -
shell习题100(二)
题目要求写一个脚本,判断本机的80端口(假如服务为httpd)是否开启着,如果开启着什么都不做,如果发现端口不存在,那么重启一下httpd服务,并发邮件通知你自己。脚本写好后,可以每一分钟执行一次,也可以写一个死循环的脚本,30s检测一次。核心要点检测80端口使用nmap -p 80 127.0.0.1或者netstat -lntp|grep -w 80重启httpd服务的命令要知道...原创 2019-01-03 22:36:56 · 465 阅读 · 0 评论 -
shell脚本(一)
20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量20.5 shell脚本中的逻辑判断shell脚本介绍shell是一种脚本语言,可以使用逻辑判断、循环等语法,可以自定义函数。与其他编程语言不同的是shell没有语言库,许多任务都需要从头实现。但是shell可以调用linux系统命令,这大大扩展了shell脚本的功...原创 2018-12-24 23:11:24 · 1383 阅读 · 0 评论 -
shell习题100(三)
题目要求写一个脚本实现如下功能: 输入一个数字,然后运行对应的一个命令。显示命令如下:cmd meau* 1 - date 2 - ls 3 - who 4 - pwd当输入1时,会运行date, 输入2时运行ls, 以此类推。核心要点case判断参考答案#!/bin/bashecho "*cmd meau** 1 - date 2 - l...原创 2019-01-04 23:06:58 · 400 阅读 · 0 评论 -
shell脚本(二)
20.6 文件目录属性判断20.7 if特殊用法20.8/20.9 case判断20.10 for循环文件目录属性判断[ -f file ]判断是否是普通文件,且存在[ -d file ] 判断是否是目录,且存在[ -e file ] 判断文件或目录是否存在[ -r file ] 判断文件是否可读[ -w file ] 判断文件是否可写[ -x file ] 判断文件是否可执行...原创 2018-12-25 23:56:06 · 218 阅读 · 0 评论 -
shell习题100(七)
题目要求提示用户输入网卡的名字,然后我们用脚本输出网卡的ip,需要考虑下面问题:输入的字符不符合网卡名字规范,怎么应对。名字符合规范,但是根本就没有这个网卡又怎么应对。参考答案#!/bin/baship add |awk -F ': ' '$1 ~ "^[1-9]" {print $2}' > /tmp/eth.listwhile :do eths=`cat /t...原创 2019-01-10 21:51:32 · 399 阅读 · 0 评论 -
shell习题100(八)
题目要求用shell实现,把一个文本文档中只有一个数字的行给打印出来。参考答案#!/bin/bashwhile read linedo n=`echo $line |sed 's/[^0-9]//g'|wc -L` if [ $n -eq 1 ] then echo $line fidone < 1.txt题目要求系统logrotate工...原创 2019-01-11 22:11:57 · 502 阅读 · 0 评论 -
shell习题100(一)
1【题目要求】请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如生成的文件名为2017-12-20.log,并且把磁盘的使用情况写到到这个文件中,不用考虑cron,仅仅写脚本即可【习题答案】本题答案:#! /bin/bashd=`date +%F`logfile=$d.logdf -h > $logfile需求升级:#!/bin/bashd=`da...原创 2019-01-02 22:41:03 · 2935 阅读 · 0 评论 -
vim配置文件
vim配置2018-10-11最近在看老男孩的shell编程书。之前vim使用只是限于初始化配制,只是懂点基本使用方法,这远远不够。先借鉴下别人的vim配置文件,这样学习快一点。以下摘自《跟老男孩学linux运维——shell编程》p298。每一个设置都加了备注,我在最后附了无备注版,直接复制到~/.vimrc中重启vim即可生效。&amp;quot;&amp;quot;&amp;quot;&amp;quot;&am转载 2018-10-11 16:13:42 · 175 阅读 · 0 评论