文件file内容如下a 1a 2b 3b 4 b 5c 6c 7 要求:第一列匹配b时,如果第二列大于3,那么将第二列加上1后打印,其余的原封不动打印.结果如下: a 1a 2b 3b 5 b 6c 6c 7…
shell 脚本文件Windows传到Linux后编码问题 下面这个标红的位置出现,是由于脚本从Windows机器上直接传到linux文件格式不对导致的. cat -v a.sh help^M exit^M }^M [ $# -ne ${parasnum} ] && help_msg^M ^M export HOST_IP=$1^M export HOST_PORT=$2^M   需要使用dos2unix命令处理脚本. 解决方法:dos2unix aa.sh  即可.…
awk工具概述awk编程语言/数据处理引擎基于模式匹配检查输入文本,逐行处理并输出通常在shell脚本中,或取指定的数据单独用时,可对文本数据做统计 命令格式格式一:awk [选项] '[条件]{编辑指令}' 文件格式二:前置命令 | awk [选项] '[选项]{编辑指令}' 常用命令选项:-F:指定分隔符,可省略(默认空格或tab位)-f:调用awk脚本进行处理-v:调用外部shell变量 实例:[root@ceshiji ~]# awk '{print $1}' /etc/passwd[r…
一.简介 通过第3方工具获得网卡流量,这个大家一定很清楚.其实通过脚本一样可以实现效果.下面是我个人工作中整理的数据.以下是shell脚本统计网卡流量. 现原理: cat /proc/net/dev Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo:1068…
目录 一.awk 1.1.awk简介 1.2.基本格式 1.3.工作原理 1.4.常见的内建变量(可直接用) 按字段输出文本 1.5.awk和getline 有重定向符 无重定向符 1.6.指定分隔符分割字符串 1.7.使用awk创建数组,并循环 一.awk 1.1.awk简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Na…
最近公司为了上一个活动功能,增加了40台服务器,虽然服务器可以通过saltstack 来统一管理(自动化运维工具 SaltStack 搭建),项目可以通过jenkins + saltstack统一发布(利用jenkins+saltstack+sh部署项目到多台服务器),但是在此之前需要把这40台服务器的saltstack配置文件给改掉啊,总不能一台台服务器手动去处理吧(好吧写这篇文章之前捣鼓半天,真的是手动去修改的,坑啊) 因为已经添加好了公钥 所以可以直接免密码登录 #!/bin/sh ip=…
AWK 1 AWK 2 3 linux取IP地址 4 5 ifconfig | grep -w inet | sed -n '1p' | awk '{print $2}' 6 7 eg: 8 9 awk -F ':' '{print $1}' /etc/passwd 10 11 awk -F ':' '{print $NF}' /etc/passwd 取最后一个字段 12 13 awk -F ':' '{print $(NF-1}' /etc/passwd 14 15 NR:行 NF:最后 16…
#!/bin/bash # exctute # ./mod.sh file_type input_folder output_folder # ./mod.sh *.txt /tmp /data/ # paramater count if [ ! $# -eq 3 ]; then echo "[ERROR] error paramater." exit fi # file type file_type="${1}" # input foloder if [ -d &…
一.简介 处理文本,是awk的强项了. 无论性能已经速度都是让人惊叹! 二.使用 适用:centos6+ 语言:英文 注意:无 awk 'BEGIN{ while("netstat -an"|getline){ if( $5 ~ /[1-255]/) { split($5,t1,":"); tarr[t1[1]]++; } } for(k in tarr) { print k,tarr[k] | "sort -r -n -k2"; } };'…
#!/bin/bash single='' #定义以个位数为目录的集合double='' #定位十位数为目录的集合#按照需要可以根据实际情况再定义以百位数为目录的集合 for dir in `ls -d [0-9]*` #开始遍历do if [ `ls -d [0-9]* | wc -l` -ge 10 ];then #判断当前的目录总数是否大于等于10 if [ `echo $dir | wc -c` = 2 ];then #判断是否为个位数的目录 single="${single} $dir…
问题的提出 基于历史原因,公司有一个"三无"采集服务--无人员.无运维.无监控--有能力做的部门不想接.接了的部门没能力.于是就一直这样裸奔,直到前几天一个依赖于这个采集服务的大数据分析服务入口流量锐减,才发现居然是这个采集服务出问题了!而且问题不是简单的挂掉,而是这个采集服务给客户端下发的采集策略中,产品列表为空了!当时事出紧急,把所有产品开关挨个打开了一遍,算是临时解决了这个问题.事后复盘这个问题,从问题出现.到问题被感知到.再到问题被临时解决,这中间消耗的时间太长了,在新的采集服…
转自:http://itlab.idcquan.com/linux/SHELL/727128.html 参考:https://linux.cn/article-8045-1.html 本文全面系统地介绍了shell脚本调试技术,包括使用echo, tee, trap等命令输出关键信息,跟踪变量的值,在脚本中植入调试钩子,使用"-n"选项进行shell脚本的语法检查, 使用"-x"选项实现shell脚本逐条语句的跟踪,巧妙地利用shell的内置变量增强"-x…
一.     用户管理(添加用户.切换用户.删除用户) ~                                                                                    #波浪线,代表家目录 cd ~       和           cd                                                       #快速回到家目录 id           和           whoami      …
什么是 Shell 脚本? 一个 shell 脚本就是一个包含一系列命令的文件.shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样. 怎样编写一个 Shell 脚本 为了成功地创建和运行一个 shell 脚本,我们需要做三件事情: 编写一个脚本. Shell 脚本就是普通的文本文件.所以我们需要一个文本编辑器来书写它们.最好的文本 编辑器都会支持语法高亮,这样我们就能够看到一个脚本关键字的彩色编码视图.语法高亮会帮助我们查看某种常见 错误.为了编写…
1.需求分析 在很多情况下,程序员都做着重复枯燥的工作,虽然这些工作也是必须的,其实这些重复性的工作可以执行脚本替代:今天笔者就如何编写自启动shell脚本减少程序员开启服务器后的环境开启工作: 2.配置环境 linux版本:centos-6.3 jdk:1.8 omcat: 7.0 3.实现方案 ①抒写脚本 #!/bin/sh #chkconfig: 2345 80 90 #description:hello.sh echo "=============close firewall======…
1.备份数据库的方法 可以使用命令查看 ls  /usr/local/mysql/bin 这个mysqldump就是系统内置的用来备份数据库的工具. 2.实现方法 ①先随便进入一个位置创建一个目录 ②创建一个希尔脚本 ③往shell脚本中写入备份数据库的语句 ④使用crontab实现定时(每分钟调用一次shell脚本) 结果:一分钟后自己备份了一次数据库. 注意:上面的语句是每次备份一次数据库都把前面一次备份给覆盖了,不符合现实肯定不行. 解决方法:每次备份数据库时使用不同的名称 这时候就要就该…
准备工作 MySQL 该版本下载地址: https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz mysql_install-v1.0.sh脚本如下: #!/bin/bash # MySQL 安装日志信息 log=/var/log/mysql_install.log # MySQL压缩包路径 MySQLPath=/root/mysql-5.7.30-linux-gli…
引言: 上一篇文章<Sqoop1.4.4 实现将 Oracle10g 中的增量数据导入 Hive0.13.1 ,并更新Hive中的主表>http://www.linuxidc.com/Linux/2014-09/106282.htm描述了增量更新Hive表的原理和Sqoop,Hive命令,本文基于上一篇文章的内容实现了shell脚本的编写,稍加修改就可用于实际工程.   shell脚本   #!/bin/bash   #Please set the synchronize interval,u…
eg: Expect: 1.用环境变量RANDOM随机生成一个100以内的随机数 2.read读取当前输入 3.当前输入对比随机生成的数 4.当两个数相等时跳出苏循环,并计数(比较n次结果才相等) #!/bin/bash i= num=$(expr $RANDOM % ) echo $num while true do let i++ read -p "Please input number(1-100):" digit if [ $digit -eq $num ]; then ech…
曾经我刚开始学习 shell 脚本时,除了知道用 echo 输出一些信息外,并不知道其他方法,仅仅依赖 echo 来查找错误,比较难调试且过程繁琐.效率低下.本文介绍下我常用的一些 shell 脚本调试方法,希望能对 shell 的初学者有所帮助. sh 命令调试选项(推荐) 选项 说明 -c 从-c后的字符串中读取命令. -n 检查是否存在语法错误,但不会实际执行. -x 将执行的每一条命令和结果依次打印出来. -v 执行过的脚本命令打印到标准输出. 使用方法: 字符串读取脚本. $ sh -…
简单使用: awk :对于文件中一行行的独处来执行操作 . awk -F :'{print $1,$4}'   :使用‘:’来分割这一行,把这一行的第一第四个域打印出来 . 详细介绍: AWK命令介绍 awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 1.   调用awk: 第一种命令行方式,如: awk [-Field-separator] 'commands' input-file(s)…
问题的提出 公司开发机与远程服务器之间有严格的隔离策略,不能直接使用 ssh 登录,而必需通过跳板机.这样一来,本地与服务器之间的一些文件传输变得非常不便.经过咨询,运维教了我一招: $ nc -l 8080 > filename $ nc yunhai.xxxxxxxx.xxxxx.com 8080 < filename 使用 nc 建立连接来传输文件,第一行命令在服务器执行,第二行命令在本地执行,它的参数就是远程服务器的 host,运行完成后,将文件从本地拷贝到远程.这样确实可以工作,而且…
jenkins的安装这里就不做描述了,很简单的  百度搜索一下即可 这里安装的jenkins-2.39-1.1 wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key sudo yum -y install jenkins-2.39-1.1.noarch.rpm安装完后防火墙放行端口 安装不…
Shell awk文本处理,shell脚本编写 一:内容包含awk.变量.运算符.if多分支 <a>语法糖: awk [options] 'commands' files option -F 定义字段分隔符,默认的分隔符是连续的空格或制表符 使用option中的-F参数定义间隔符号 用$1,$2,$3等的顺序表示files中每行以间隔符号分隔的各列不同域 NF变量表示当前记录的字段数 -v 定义变量并赋值 也可以借用次方式从shell变量中引入 command <b>读前处理 行处…
问题的提出 公司有一个用户行为分析系统,可以记录用户在使用公司产品过程中的一系列操作轨迹,便于分析产品使用情况以便优化产品 UI 界面布局.这套系统有点类似于 Google Analyse(GA),所不同的是,为了让用户把产品用起来,公司会将用户行为与优惠活动联系起来,例如购买产品后一段时间内如果使用时长达到一定标准,就能从销售那里领取小礼品,初衷是为了让用户把产品用起来.可是这个活动一经推出,我这边电话就被打爆了,因为经常有用户感觉自己在用产品了,但是销售给他反馈的时长信息却没有增长.于是实施…
文本处理三剑客 在 Shell 下使用这些正则表达式处理文本最多的命令有下面几个工具: 命令 描述 grep 默认不支持扩展表达式,加-E 选项开启 ERE.如果不加-E 使用花括号要加转义符\{\} egrep 支持基础和扩展表达式 awk 支持 egrep 所有的正则表达式 sed 默认不支持扩展表达式,加-r 选项开启 ERE.如果不加-r 使用花括号要加转义符\{\} sed详解 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑…
shell脚本三剑客:grep  sed  awk grep语法: grep [OPTIONS] PATTERN [FILE] 常用选项 -c                       统计匹配到的行数 -i                        匹配时不区分大小写-n                       显示匹配行所在行号-o                       只显示匹配到的字符串-v                       取反,反方向匹配,不匹配关键字的行-…
----------------------------------------正则---------------------------------------- 基础正则 ^word ##搜索以word开头的 vi/vim中 ^ 一行的开头 word$ ##搜索以word结尾的 vi/vim中 $ 一行的结尾 ^$ ##表示空行 . ##代表且只能代表任意一个字符 \ ##例:\. 只代表点本身,转义符号,让有特殊身份意义的字符,脱掉马甲,还原 \n ##换行符 \r ##匹配回车 \w #…
文本处理三剑客:1.grep  2.sed  3.awk 一.grep:(过滤) grep的使用,主要的参数有: -n  :显示行号:-o  :只显示匹配的内容-q  :静默模式,没有任何输出,得用echo$?来判断执行成功没有,即有没有过滤到想要的内容 -l  :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc -A  :如果匹配成功,则将匹配行及其后n行一起打印出来-B  :如果匹配成功,则将匹配行及其前n行一起打印出来-C  :如…
前言 项目中有一个功能,需要监控本地文件系统的变更,例如文件的增.删.改名.文件数据变动等等.之前只在 windows 上有实现,采用的是 iocp + ReadDirectoryChanges 方案,现在随着整个应用移植到 mac 上,需要对这一部分进行适配,macOS 上相应的底层机制为 File System Events,通知的类型大同小异.为了便于验证,写了一个 demo 来跑最核心的功能. macOS 开门见山,先来看在 mac 上的实现. rdc-demo 这个 demo 是从 w…