随笔分类 -  Shell

摘要:getpots是Shell命令行参数解析工具,旨在从Shell Script的命令行当中解析参数。getopts被Shell程序用来分析位置参数,option包含需要被识别的选项字符,如果这里的字符后面跟着一个冒号,表明该字符选项需要一个参数,其参数需要以空格分隔。冒号和问号不能被用作选项字符。ge 阅读全文
posted @ 2019-10-28 16:40 散尽浮华 阅读(31835) 评论(1) 推荐(3) 编辑
摘要:科学计数法使用e标识数值,将科学计算学转化为数字的思路:按e右边的数字移动小数点位数。e右边的数字如果是负数,则向左移动小数点。示例如下: 1.2345678e2 = 123.45678 1.2345678e-2 = 0.012345678 1.7615562e+06 = 1761556.2 1.8 阅读全文
posted @ 2019-10-09 19:32 散尽浮华 阅读(12765) 评论(0) 推荐(0) 编辑
摘要:线上某些系统业务跑一段时间后,日志就会越来越多,考虑到业务机器磁盘有限,需要添加业务日志清理功能。根据日志所在分区磁盘使用情况来判断是否清理日志,比如当日志分区磁盘空间使用超过90%时,将一周前的日志打包转移到别处 (别的分区下或远程存储设备上)。脚本 (/opt/script/log_clear. 阅读全文
posted @ 2019-09-20 12:17 散尽浮华 阅读(3356) 评论(3) 推荐(2) 编辑
摘要:测试文件test.file 1) 打印奇数行的方法 2) 打印偶数行的方法 打印奇偶行的方法总结 其他相关正则取值说明 shell脚本,实现奇数行等于偶数行 阅读全文
posted @ 2019-03-16 00:18 散尽浮华 阅读(4829) 评论(0) 推荐(2) 编辑
摘要:在日常运维工作中, 经常会碰到以秒为单位去定时执行某些命令或监控脚本的需求。 说到定时任务就要用到crontab,通常来说,crontab的最小单位是分钟级别,要想实现秒级别的定时任务,就要进行特殊设置了。 测试:每隔2秒钟向/root/test.log文件输入"beijing is so good 阅读全文
posted @ 2019-01-04 16:49 散尽浮华 阅读(18593) 评论(1) 推荐(2) 编辑
摘要:MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的 阅读全文
posted @ 2018-12-31 11:57 散尽浮华 阅读(123288) 评论(1) 推荐(10) 编辑
摘要:案例一、 自定义删除版本库目录线上业务系统版本在版本机上的存放目录为/opt/data/ONLINE,目录结构为: /opt/data/ONLINE/系统名称/应用名称/版本号,版本号是以日期(年月日)8位数字命令的。 案例二、自定义删除日志目录线上某些业务系统的日志不定期产生, 有的每天产生, 有 阅读全文
posted @ 2018-12-13 15:35 散尽浮华 阅读(1105) 评论(0) 推荐(1) 编辑
摘要:由于线上业务用的squid,根据经验值如果长时间运行则缓存目录下的swap.state会慢慢变大,一旦超过60M,squid的性能就会急剧下降,因此需要定时去清理大于60M的swap.state文件。由此引出需求,查找cache目录下的所有大于60M的swap.state文件并清除,即:1)查找ca 阅读全文
posted @ 2018-10-11 00:29 散尽浮华 阅读(6202) 评论(5) 推荐(1) 编辑
摘要:在日常运维中,经常需要监控某个进程,并打印某个进程的监控结果,通常需要打印匹配某个结果的行以及其前后各N行。这里注意下:echo使用-e参数,对打印的结果中进行\n换行 echo的-n、-e参数: echo后面跟双引号或单引号问题: 示例1 示例2 阅读全文
posted @ 2018-10-10 20:42 散尽浮华 阅读(11452) 评论(0) 推荐(0) 编辑
摘要:IDC两台机器上部署了Nginx+Keepalived主从模式的LB代理负载层,现在需要对LB进行每日巡检和服务监控,利用SendEmail邮件监控。 0)SendEmail部署 1)SendEmail脚本配置 2)LB每日巡检脚本(VIP资源为10.0.11.26) 3)LB监控脚本 温馨提示 邮 阅读全文
posted @ 2018-09-20 11:59 散尽浮华 阅读(2252) 评论(0) 推荐(0) 编辑
摘要:grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来。grep主要作用是过滤出指定的行,指定的行满足什么条件,满足的 阅读全文
posted @ 2018-07-12 14:18 散尽浮华 阅读(24817) 评论(1) 推荐(4) 编辑
摘要:比如现在需要对172.16.50.0/24网段的ip进行检查,检查哪些ip现在被占用,哪些ip没有被占用,可以通过ping命令来检查,脚本如下: 阅读全文
posted @ 2018-05-22 09:19 散尽浮华 阅读(15583) 评论(0) 推荐(4) 编辑
摘要:通过shell脚本,判断172.16.60.0/24网络里,当前在线的ip有哪些?能ping通则认为在线。 案例一:单纯地对某些ip进行ping监控 案例二:对/etc/hosts列表里的ip映射关系进行ping监控报警 案例三:通过nc工具对/etc/hosts列表里的ip的443端口跟本机通信是 阅读全文
posted @ 2018-04-24 16:00 散尽浮华 阅读(2815) 评论(2) 推荐(1) 编辑
摘要:在日常运维工作中,经常会碰到需要在一个字符串中截取我们需要的某些字符的需求,之前介绍了Shell脚本中数组的使用方法,这里介绍下基于字符串的截取的方法。在shell中截取字符串的方法有下面集中:${var#*/}${var##*/}${var%/*}${var%%/*}${var:start:len 阅读全文
posted @ 2018-04-17 17:39 散尽浮华 阅读(22553) 评论(4) 推荐(2) 编辑
摘要:这里以kevin.txt文件内容(单词由一个或多个空格字符分隔)为例进行简单说明 统计kevin.txt文件中出现的单词次数 第一种方法:结合grep和awk编写shell脚本 第二种方法:使用grep匹配表达式 第三种方法:使用awk匹配表达式 第四种方式:统计kevin.txt文件中的单词个数, 阅读全文
posted @ 2018-03-29 16:25 散尽浮华 阅读(5936) 评论(0) 推荐(0) 编辑
摘要:使用awk取某一行数据中的倒数第N列:$(NF-(n-1))比如取/etc/passwd文件中的第2列、倒数第1、倒数第2、倒数第4列(以冒号为分隔符)。($NF表示倒数第一列,$(NF-1)表示倒数第二列) linux实现将文本文件每一行中相同第一列对应的其他列进行拼接 使用awk命令获取文本的某 阅读全文
posted @ 2018-02-28 09:39 散尽浮华 阅读(88220) 评论(2) 推荐(5) 编辑
摘要:为了监控到各业务的访问质量,基于LB层的Nginx日志,实现LB层到Real Server之间访问请求的响应时间(即upstream_response_time)及HTTP状态码(即upstream_status)的监控及报警。操作记录如下: 阅读全文
posted @ 2018-02-01 15:13 散尽浮华 阅读(2305) 评论(0) 推荐(0) 编辑
摘要:需求:对一个目录(比如/data/test)进行监控,当这个目录下文件或子目录出现变动(如修改、创建、删除、更名等操作)时,就发送邮件!针对上面的需求,编写shell脚本如下: 确保本机能连上shell脚本中指定的smtp服务器的25好端口 下面开始测试 查看邮件,就能看到/data/test目录下 阅读全文
posted @ 2018-01-10 17:59 散尽浮华 阅读(6742) 评论(3) 推荐(3) 编辑
摘要:即对日志文件中的error进行监控,当日志文件中出现error关键字时,即可报警!(grep -i error 不区分大小写进行搜索"error"关键字,但是会将包含error大小写字符的单词搜索出来) 1)第一类日志在每天的日志目录下生产的error日志,此日志文件每天都会自动生成,里面有没有er 阅读全文
posted @ 2017-10-13 15:45 散尽浮华 阅读(14327) 评论(0) 推荐(0) 编辑
摘要:由于公司业务比较多,部署的站点也比较多。为了网站安全运行,以防故障发生时能第一时间知晓,特意编写下面监控脚本,对网站访问状态和超时时间进行监控:当code状态为5xx或者访问超时时间大于10s时进行报警。脚本脚本如下: 手动检查网站访问的code状态码 手动检查网站访问的超时时间(单位:毫秒,如下网 阅读全文
posted @ 2017-10-12 21:53 散尽浮华 阅读(3555) 评论(0) 推荐(0) 编辑