shell编程
文章平均质量分 69
wen0220
linux、java、scala、hadoop、spark、es等
展开
-
服务器宕机监控
背景:服务器会出现宕机的情况,影响发布的应用,集群中的服务器一般不会同时宕机,这里采用服务器间互相ping的方式。若ping不同则调用发送短信的jar包,向维护人员发送一条告警短信。(假设有3台机器1,2,3)机器1脚本#!/bin/bashdate="`date -d"-0 day" +%Y-%m-%d-%H-%M`"###机器2ping -w 5 -c 3 机器2ip //-w 5 ...原创 2018-04-10 11:14:00 · 1757 阅读 · 1 评论 -
Gbase入库异常:sed: -e expression #1, char 29: unknown option to `s'
异常:用shell执行Gbase入库的脚本,一直报错,逐一排查问题。异常一:如标题 sed: -e expression #1, char 103: unknown option to `s' 检查发现入库的脚本中有一个传入服务器密码的变量替换未成功,脚本中中有一句变量(变量为服务器密码)替换的命令为sed -i "s#pwd#$pwd#g" dir/test.sql发现密码中本身...原创 2018-04-15 21:52:30 · 1181 阅读 · 0 评论 -
shell脚本中的实时ftp传输实例
背景:对数据对接的同事来说,经常会遇到,要实时的去对方服务器下取文件的情况,本文介绍一个,ftp实施取文件的脚本实例。*/1 * * * * test.sh & //crontab定时,脚本每分钟执行一次脚本内容如下:#!/bin/bashcd /dir //本机路径#对与一整套的ftp操作常常要放到<<! 内容!这种格式下,把内容作为一个子输入,执行完成后再返回主...原创 2018-04-12 16:41:15 · 4385 阅读 · 3 评论 -
shell里的判断结构及注意事项
背景:早些时候shell里的判断结构写起来总是感觉不顺手,下边是一些注意事项,及用法介绍判断的两种方式"test"、"[]"如下test -f "$filename" [ -f "$filename" ]使用中括号必须要特别注意,因为中括号用在很多地方,包括通配符与正则等等,所以如果要在 bash 的语法当中使用中括号作为 shell 的判断式时,必须要注意中括号的两端需要有空格符来分隔, 如下:...原创 2018-06-02 18:12:57 · 670 阅读 · 0 评论 -
shell批量杀进程(xargs)
背景:偶尔会遇到一些相同进程卡死的情况,监控不当的时候会影响应用,写个判断语句,定时监控,进程多的时候会自动清除#!/bin/bash#假设进程中同一包含akel关键字str=`ps -ef|grep akel | wc -l`if (( $str >20 ));then#判断该进程卡死的数量,用cut截取进程号ps -ef | grep akel | grep -v grep | cut ...原创 2018-06-21 09:38:23 · 3829 阅读 · 0 评论 -
shell里for循环的几种写法
背景:for循环是常用的语法结构,shell里的for循环与其它语言有些差别,这里提供3个模板,以1~50的累加为例脚本内容如下:#!/bin/bash#test.shell#1.列表for循环{}中可以是一个listsum=0for i in {1..50}do #循环开始 let "sum+=i"done ...原创 2018-06-02 16:27:37 · 3427 阅读 · 0 评论 -
用shell计算某个文件的生成时间
背景:例如,你可能会通过某个标识文件的生成时间,来监控某个进程或某个应用,介绍一个,计算某文件生成时间的方法。脚本内容如下:#!/bin/bashdir=/opt/datacd $dir#显示文件的全时间ls --full-time#只取日期date="`ls --full-time 1.txt | cut -d ' ' -f 6`"#只取时间time="`ls --full-time 1.txt...原创 2018-06-09 16:08:31 · 6030 阅读 · 1 评论 -
linux中的查找文件或目录(whereis,locate,find)
背景:linux下有几种查找文件的方式,whereis,local,find各有优劣,介绍一下各自的不同,及使用时机原创 2018-06-10 21:16:49 · 1216 阅读 · 0 评论