
shell script
jiedushi
大数据10年左右工作经验,喜欢工作中遇到的问题与解决整理到博客
展开
-
awk分析nginx日志,获取pv
最近在深入系统运维的事情,从服务器配置、调优、维护,到各种脚本编写。实现自动化智能运维的目标还要很远。从nginx的日志中分析每日有效的pv和各搜索引擎爬虫的请求数。脚本用awk实现。函数库文件 stat_func.sh #!/bin/bashstat_log转载 2011-05-26 19:23:00 · 3372 阅读 · 0 评论 -
awk变量NF和$NF的区别
在使用awk命令中有NF和$NF两个变量 NF是域的个数 $NF 是输出最后一个域的内容原创 2010-12-16 09:58:00 · 2122 阅读 · 0 评论 -
${ }的用法
假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt我们可以用 ${ } 分别替换获得不同的值:${file#*/}:拿掉第一条 / 及其左边的字串:dir1/dir2/dir3/my.file.txt ${file#转载 2010-12-14 13:15:00 · 53405 阅读 · 1 评论 -
linux-sed-非交互性文本流编辑器
简介Sed是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝实例1.行的匹配[root@mypc /]# sed -n ‘2p’ /etc/passwd 打印出第2行[root@mypc /]# sed -n ‘1,3p’ /etc/pas原创 2010-12-08 11:26:00 · 993 阅读 · 0 评论 -
linux shell 从1加到100最精简写法
转自 http://www.lao3.info/linux-shell-cong-1-jia-dao-100-zui-jing-jian-xie-fa/ seq -s”+” 1 100|bc seq命令 用于产生从某个数到另外一个数之间的所有整数-转载 2010-09-08 17:03:00 · 3538 阅读 · 1 评论 -
shell字符串操作方法,以及实例
每一种语言都有他独自的字符串操作方法,shell也一样,下面以以例子的方式,简单介绍常用方法。1,取得字符串长度string=abc12342341 //等号二边不要有空格echo ${#string} //结果11e转载 2011-09-20 16:14:17 · 1082 阅读 · 0 评论 -
awk中的NR和FNR的区别
一,NR和FNR的不同NR:表示当前记录数FNR:也表示当前记录数,但是FNR的作用域只在一个文件内.如果重新打开文件,FNR会从1开始.二,实例说明1,测试文件aaa,cccc[root@Blackghost test2]# cat aaa &转载 2011-09-20 16:17:20 · 2183 阅读 · 0 评论 -
Linux中xargs的用法
xargs大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);你能处理输出,使其仅显示文件名,目前你希望将这些名称传递给 ls -l 命转载 2011-10-10 16:56:14 · 1889 阅读 · 0 评论 -
awk的3个例子(成长篇)
一,类似数据库中的left join查询[root@krlcgcms01 mytest]# cat a.txt //a.txt 111 aaa 222 bbb 333 cccc 444 ddd [root@krlcgcms01 mytest]# cat b.txt //b.txt 111 123 456 2 abc c转载 2011-10-26 10:40:41 · 985 阅读 · 0 评论 -
ssh批量上传文件
上传文件大多数用的是ftp,但是用ftp有一点不好,就是本地和远程的目录要对应,这样就要在多个目录下去切换,这样挺麻烦的,如果不注意的话,很有可能传错。所以想了个办法利用scp来批量上传文件或者目录。一,scp上传不要输入密码如果要用scp来上传文件,第一步就要去掉scp上传时要输入密码。要不然就没办法批量上传了。ssh不用输入密码的步骤(1)在本机上生成i转载 2011-11-28 11:00:25 · 2845 阅读 · 0 评论 -
15条 linux Find 命令实际使用方法
This article is written by SathiyaMoorthy作者: SathiyaMoorthy Apart from the basic operation of looking for files under a directory structure, you can also perform several practical operations u转载 2011-11-29 10:38:14 · 861 阅读 · 0 评论 -
Linux history命令用法
如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍 history 命令的 15 个用法。使用 HISTTIMEFORMAT 显示时间戳当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:# export HISTTIMEFORM转载 2011-12-12 09:15:38 · 870 阅读 · 0 评论 -
linux if语句内判断参数
shell 编程中使用到得if语句内判断参数–b 当file存在并且是块文件时返回真-c 当file存在并且是字符文件时返回真-d 当pathname存在并且是一个目录时返回真-e 当pathname指定的文件或目录存在时返回真-f 当file存在并且是正规文件时返回真-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真-h 当file存转载 2012-01-30 14:55:36 · 1182 阅读 · 0 评论 -
如何使用shell限制指定用户shell程序的网络带宽
在运维工作中,会遇到需要限制shell应用程序(比如wget 、crul、ftp、sftp等)连接internet的网络带宽问题。如何在不使用复杂的firewall规则情况下设置网络带宽呢。工具trickle可以实现这个功能,系统 Debian/ubuntu linux 使用apt-get方法即可安装 $ sudo apt-get install trickle系统CentOS翻译 2012-12-05 13:21:35 · 2001 阅读 · 1 评论 -
linux常用命令积累(常更新)
手动清理内存缓存echo 1 > /proc/sys/vm/drop_caches批量替换文件夹中多个文件中的字符串sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa` 注意grep前面和最后面的引号为反引号就是tab键上面的引号列出当前文件夹目录大小,以G,M,K显示。du -b --max-depth 1 | s原创 2010-12-31 08:30:00 · 2388 阅读 · 0 评论 -
Linux 找出大文件汇总
Q. 如何在目录中找出所有大文件?A.1) 句法 for RedHat / CentOS / Fedora Linuxfind {/path/to/directory/} -type f -size +{size-in-kb}k -exec ls -lh {} \; | awk ‘{ print $9 “: ” $5 }’实例:查找当前目录下大于50MB的文件转载 2013-01-17 09:18:17 · 1564 阅读 · 0 评论 -
Sed学习笔记
1. Sed简介sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾转载 2010-12-22 13:35:00 · 444 阅读 · 0 评论 -
Linux Shell实现模拟多进程并发执行
在bash中,使用后台任务来实现任务的“多进程化”。在不加控制的模式下,不管有多少任务,全部都后台执行。也就是说,在这种情况下,有多少任务就有多少“进程”在同时执行。我们就先实现第一种情况:实例一:正常情况脚本———————————————————————————–#转载 2011-05-25 10:22:00 · 2825 阅读 · 0 评论 -
linux sed 批量替换字符串
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做:sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules`解释一下:-i 表示inplace edit,就地修改文件原创 2011-03-29 11:29:00 · 930 阅读 · 0 评论 -
grep命令的-o和-P选项
先看man中介绍: -o, --only-matching: Show only the part of a matching line that matches PATTERN.-P, --perl-regexp:转载 2010-12-13 15:12:00 · 26422 阅读 · 1 评论 -
shell循环,判断介绍,以及实例
shell的循环主要有3种,for,while,untilshell的分支判断主要有2种,if,case一,for循环#!/bin/bashfor file in $(ls /tmp/test/mytest |grep sh) //for in格式是s转载 2011-09-20 15:13:40 · 2035 阅读 · 0 评论 -
awk是命令还是编程语言
一,什么是awkawk是linux下的一个命令,他对其他命令的输出,对文件的处理都十分强大,其实他更像一门编程语言,他可以自定义变量,有条件语句,有循环,有数组,有正则,有函数等。他读取输出,或者文件的方式是一行,一行的读,根据你给出的条件进行查找,并在找出来的行中进行操作,转载 2011-09-21 10:46:32 · 1008 阅读 · 0 评论 -
awk的类sql数据处理
工作中经常处理文本数据,以前经常接触db2数据库,最近在学习awk的过程中发现awk处理数据的强大,可谓无所不能!下面讲的就算awk对sql语句统计数据的模拟。一、先讲讲sql的单表操作,对应awk的单文件处理。 测试环境:sco unix + db2,数据转载 2011-08-15 11:00:02 · 1067 阅读 · 0 评论 -
awk折半查找
平时我们需要找出2个文件里相同的部分,假如a内容是排序后的。比如1020304050506070而b:1510704530050找出a,b中公共的部分,一般做法 awk NR==FNR{a[$0]}NR>FNR{if($0 in a)print } 缺点是,当a数量大的时候逐个比较,效率低,类似mysql的全表转载 2011-06-20 13:01:00 · 1239 阅读 · 0 评论 -
linux shell 数组建立及使用技巧
linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。 1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5)转载 2011-05-30 00:24:00 · 2993 阅读 · 0 评论 -
shell脚本实现每秒执行一次任务
1.编写shell脚本 vi /tmp/ceshi.sh#!/bin/shwhile [ true ]; do/bin/sleep 1/bin/date >>/tmp/date.txtdone 2.后台运行nohup /tmp/ce原创 2010-12-24 13:43:00 · 10228 阅读 · 1 评论 -
实例详细说明linux下去除重复行命令uniq
一,uniq干什么用的文本中的重复行,基本上不是我们所要的,所以就要去除掉。linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个。使用uniq的时候要注意以下二点1,对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除转载 2011-09-21 10:31:17 · 3811 阅读 · 0 评论 -
awk中RS,ORS,FS,OFS区别与联系
学习awk时,一定要记得动手去实践,只有在实践中才能发现问题,以下就我在学习中和实践中的经验,总结一下RS,ORS,FS,OFS的区别和联系。一,RS与ORS1,RS是记录分隔符,默认的分隔符是\n,具体用法看下[root@krlcgcms01 mytest]#转载 2011-09-20 14:25:23 · 2749 阅读 · 0 评论 -
实例说明shell i/o常用重定向
每个打开的文件都会被分配一个文件描述符.stdin (键盘), stdout (屏幕), 和 stderr (错误消息输出到屏幕上)的文件描述符分别是0, 1, 和 2. 对于正在打开的额外文件, 保留了描述符3到9.文件描述符是文件系统为了跟踪这个打开的文件而分配给它的一个转载 2011-09-20 13:53:49 · 633 阅读 · 0 评论 -
seq用法详解
seq – print a sequence of numbersseq命令的作用就是打印出一串有序的数字,它主要有以下3个参数构成:-f, –format=FORMAT use printf style floating-point FORMAT (defa原创 2011-09-20 11:43:04 · 2324 阅读 · 0 评论 -
awk的多文件处理
关于awk的多文件处理:awk的数据输入有两个来源,标准输入和文件,后一种方式支持多个文件,如1、shell的Pathname Expansion方式:awk '{...}' *.txt # *.txt先被shell解释,替换成当前目录下的所有*.txt转载 2011-08-15 11:00:49 · 1129 阅读 · 0 评论 -
在SHELL中执行MYSQL语句
使用shell脚本做日志分析,为了将分析后的结果直接存储到mysql数据库中需要在shell脚本中执行mysql的语句。方法一 将每一步需要执行的语句保存到 tmp.sql 中,最后在使用 mysql -u uname -p pwd 方式执行方法二转载 2011-05-26 23:10:00 · 4690 阅读 · 0 评论 -
shell工具 pv (pipe viewer)
写shell对1g多的日志做统计,中间那个慢啊,又没有进度显示,万一脚本写错了,等待时间又白费了现在给大家介绍一个看执行进度的工具—-pv它可以加入到管道中的任意一层,查看数据的通过量安装wget http://pipeviewer.googlecode.co转载 2011-05-26 19:45:00 · 3245 阅读 · 1 评论 -
Linux / Unix Script: Simple Process Checker To Find Out If A Service Is Running or Not
#!/bin/bash# Name : service.chk # URL: http://bash.cyberciti.biz/monitoring/simple-process-checker-script/# Purpose: A simple process checker. Find out if service is running or not.# Tested on: De转载 2013-03-19 16:21:35 · 1091 阅读 · 0 评论