- 浏览: 2187831 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
上篇文章,散仙简单介绍了,如何在Linux下以shell脚本的方式与MySQL交互,本篇,我们来用shell脚本编写几个有用的实战例子
第一个脚本检测磁盘空间的top5
我们先看下du 命令统计:
查看最大的几个:
查看前5个,使用header命令
除此之外,我们在加个行号:
利用gawk再格式化一下:
封装成脚本之后,把统计信息,写入一个文本里:
注意在脚本里面我们又使用了重定向符号,将所有的STDOUT定位到我们的一个日志文件里面,这样就方便我们查看了,每次运行都生成一个新的日志记录文件,注意在shell终端输入的*路径需要转义,否则会出现问题。
下面看下第二个有用的脚本,备份文件,散仙只作了简单的归档,按年,月,日,分钟,来进行压缩备份:
下面看下如何获取指定磁盘的剩余空间,命令如下:
最重要的是最后一条命令
查看系统运行时间:
查看系统空闲内存:
查看僵尸进程的命令:
下面看下,将这些系统信息,汇集到一起,查看整体情况:
最后我们可以将系统信息,以文件形式,保存下来,或者保存到数据库里面,这样我们就可以轻松的通过数据库来查看,各个时间段的系统运行状况了。
第一个脚本检测磁盘空间的top5
我们先看下du 命令统计:
[search@h1 ~]$ du -s hadoop/* 296 hadoop/bin 230156 hadoop/dddir 132 hadoop/etc 56 hadoop/include 4188 hadoop/lib 56 hadoop/libexec 472 hadoop/logs 47320 hadoop/nddir 120 hadoop/sbin 125724 hadoop/share 30336 hadoop/tmp [search@h1 ~]$
查看最大的几个:
[search@h1 ~]$ du -s hadoop/* | sort -nr 230156 hadoop/dddir 125724 hadoop/share 47320 hadoop/nddir 30336 hadoop/tmp 4188 hadoop/lib 472 hadoop/logs 296 hadoop/bin 132 hadoop/etc 120 hadoop/sbin 56 hadoop/libexec 56 hadoop/include [search@h1 ~]$
查看前5个,使用header命令
[search@h1 ~]$ du -s hadoop/* | sort -nr | head -5 230156 hadoop/dddir 125724 hadoop/share 47320 hadoop/nddir 30336 hadoop/tmp 4188 hadoop/lib [search@h1 ~]$
除此之外,我们在加个行号:
[search@h1 ~]$ du -s hadoop/* | sort -nr | head -5 | cat -n 1 230156 hadoop/dddir 2 125724 hadoop/share 3 47320 hadoop/nddir 4 30336 hadoop/tmp 5 4188 hadoop/lib [search@h1 ~]$
利用gawk再格式化一下:
[search@h1 ~]$ du -s hadoop/* | sort -nr | head -5 | cat -n | gawk '{ print $1 "\t" $2 "\t" $3 }' 1 230156 hadoop/dddir 2 125724 hadoop/share 3 47320 hadoop/nddir 4 30336 hadoop/tmp 5 4188 hadoop/lib [search@h1 ~]$
封装成脚本之后,把统计信息,写入一个文本里:
[search@h1 827]$ cat c.sh if [ $# -eq 0 ]; then echo "请输入一个统计路径" else d=`date +%Y%m%d%H%M%S` #echo $d exec > disk$d.txt du -s $1 | sort -nr | head -5 | cat -n | gawk '{ print $1 "\t" $2 "\t" $3 }' fi [search@h1 827]$ sh c.sh 请输入一个统计路径 [search@h1 827]$ sh c.sh /home/search/hadoop/\* [search@h1 827]$ ll 总用量 8 -rw-rw-r-- 1 search search 216 8月 28 04:28 c.sh -rw-rw-r-- 1 search search 167 8月 28 04:29 disk20140828042921.txt [search@h1 827]$ cat disk20140828042921.txt 1 230156 /home/search/hadoop/dddir 2 125724 /home/search/hadoop/share 3 47320 /home/search/hadoop/nddir 4 30336 /home/search/hadoop/tmp 5 4188 /home/search/hadoop/lib [search@h1 827]$
注意在脚本里面我们又使用了重定向符号,将所有的STDOUT定位到我们的一个日志文件里面,这样就方便我们查看了,每次运行都生成一个新的日志记录文件,注意在shell终端输入的*路径需要转义,否则会出现问题。
下面看下第二个有用的脚本,备份文件,散仙只作了简单的归档,按年,月,日,分钟,来进行压缩备份:
[search@h1 827]$ cat d.sh year=`date +%Y` day=`date +%d` month=`date +%m` time=`date +%M` dirpath="./$year/$month/$day/$time/" mkdir -p $dirpath tar -zcvf $dirpath/data.tar.gz ./ echo "归档完毕!" [search@h1 827]$ sh d.sh ./ ./dd/ ./dd/disk20140828042921.txt ./dd/disk20140828043101.txt ./dd/disk20140828043111.txt ./dd/c.sh ./dd/m.tar.gz ./disk20140828042921.txt ./disk20140828043101.txt ./disk20140828043111.txt ./c.sh ./m.tar.gz ./2014/ ./2014/08/ ./2014/08/28/ ./2014/08/28/49/ ./d.sh 归档完毕! [search@h1 827]$ ll 总用量 28 drwxrwxr-x 3 search search 4096 8月 28 04:49 2014 -rw-rw-r-- 1 search search 221 8月 28 04:34 c.sh drwxrwxr-x 2 search search 4096 8月 28 04:34 dd -rw-rw-r-- 1 search search 167 8月 28 04:29 disk20140828042921.txt -rw-rw-r-- 1 search search 0 8月 28 04:31 disk20140828043101.txt -rw-rw-r-- 1 search search 22 8月 28 04:31 disk20140828043111.txt -rw-rw-r-- 1 search search 192 8月 28 04:49 d.sh -rw-rw-r-- 1 search search 503 8月 28 04:38 m.tar.gz [search@h1 827]$ cd 2014/ [search@h1 2014]$ ll 总用量 4 drwxrwxr-x 3 search search 4096 8月 28 04:49 08 [search@h1 2014]$ cd 08/ [search@h1 08]$ ll 总用量 4 drwxrwxr-x 3 search search 4096 8月 28 04:49 28 [search@h1 08]$ cd 28/ [search@h1 28]$ ll 总用量 4 drwxrwxr-x 2 search search 4096 8月 28 04:49 49 [search@h1 28]$ cd 49/ [search@h1 49]$ ll 总用量 4 -rw-rw-r-- 1 search search 1439 8月 28 04:49 data.tar.gz [search@h1 49]$ tar -zxvf data.tar.gz ./ ./dd/ ./dd/disk20140828042921.txt ./dd/disk20140828043101.txt ./dd/disk20140828043111.txt ./dd/c.sh ./dd/m.tar.gz ./disk20140828042921.txt ./disk20140828043101.txt ./disk20140828043111.txt ./c.sh ./m.tar.gz ./2014/ ./2014/08/ ./2014/08/28/ ./2014/08/28/49/ ./d.sh [search@h1 49]$ ll 总用量 32 drwxrwxr-x 3 search search 4096 8月 28 04:49 2014 -rw-rw-r-- 1 search search 221 8月 28 04:34 c.sh -rw-rw-r-- 1 search search 1439 8月 28 04:49 data.tar.gz drwxrwxr-x 2 search search 4096 8月 28 04:34 dd -rw-rw-r-- 1 search search 167 8月 28 04:29 disk20140828042921.txt -rw-rw-r-- 1 search search 0 8月 28 04:31 disk20140828043101.txt -rw-rw-r-- 1 search search 22 8月 28 04:31 disk20140828043111.txt -rw-rw-r-- 1 search search 192 8月 28 04:49 d.sh -rw-rw-r-- 1 search search 503 8月 28 04:38 m.tar.gz [search@h1 49]$
下面看下如何获取指定磁盘的剩余空间,命令如下:
[search@h1 827]$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg_h1-lv_root 18134344 3925876 13287280 23% / tmpfs 624956 0 624956 0% /dev/shm /dev/sda1 495844 32670 437574 7% /boot [search@h1 827]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_h1-lv_root 18G 3.8G 13G 23% / tmpfs 611M 0 611M 0% /dev/shm /dev/sda1 485M 32M 428M 7% /boot [search@h1 827]$ df -h /dev/mapper/vg_h1-lv_root Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_h1-lv_root 18G 3.8G 13G 23% / [search@h1 827]$ df -h /dev/mapper/vg_h1-lv_root | sed -n '/% \//p' /dev/mapper/vg_h1-lv_root 18G 3.8G 13G 23% / [search@h1 827]$ df -h /dev/mapper/vg_h1-lv_root | sed -n '/% \//p' | gawk '{ print $5}' 23% [search@h1 827]$
最重要的是最后一条命令
查看系统运行时间:
[search@h1 827]$ uptime | sed -n '/,/s/,/ /gp' | gawk '{print "系统运行时间: "$3}' 系统运行时间: 1:49 [search@h1 827]$
查看系统空闲内存:
[search@h1 827]$ free -m | sed -n '2p' | gawk '{print $4"m"}' 1012m [search@h1 827]$
查看僵尸进程的命令:
[search@h1 827]$ ps -al | gawk '{print $2,$4}' | grep Z [search@h1 827]$ ps -al | gawk '{print $2,$4}' | grep S S PID S 1211 S 1212 S 2014 S 2015 [search@h1 827]$ ps -al | gawk '{print $2,$4}' | grep z [search@h1 827]$
下面看下,将这些系统信息,汇集到一起,查看整体情况:
[search@h1 827]$ cat q.sh echo -n "当前磁盘的剩余容量: " df -h /dev/mapper/vg_h1-lv_root | sed -n '/% \//p' | gawk '{ print $5}' echo -n "当前系统的运行时间:" uptime | sed -n '/,/s/,/ /gp' | gawk '{print "系统运行时间: "$3}' echo -n "当前系统的空闲内存: " free -m | sed -n '2p' | gawk '{print $4"m"}' echo -n "当前是否有僵尸进程存在:" r=`ps -al | gawk '{print $2,$4}' | grep z` if [ -z $r ] ; then echo "无僵尸进程存在!" else echo $r fi [search@h1 827]$ sh q.sh 当前磁盘的剩余容量: 23% 当前系统的运行时间:系统运行时间: 2:04 当前系统的空闲内存: 1012m 当前是否有僵尸进程存在:无僵尸进程存在! [search@h1 827]$
最后我们可以将系统信息,以文件形式,保存下来,或者保存到数据库里面,这样我们就可以轻松的通过数据库来查看,各个时间段的系统运行状况了。
发表评论
-
备忘几个有用的shell脚本
2015-04-07 21:59 1510(1)在shell下,操作hadoop目录,批量命名或删除, ... -
shell脚本杂记(五)
2014-09-22 19:48 20281,找出多个文件所占用的磁盘空间 du f1 f2 [roo ... -
shell脚本杂记(四)
2014-09-19 20:03 17171,wget是一个用于文件 ... -
shell自动化部署批量建立用户和批量SSH配置
2014-09-18 18:29 3631在linux下面,shell脚本熟练使用,有时候可以帮助我们解 ... -
shell自动化部署神器expect
2014-09-17 21:08 4704Shell可以实现简单的控制流功能,如:循环、判断等。但是对于 ... -
shell脚本杂记(三)
2014-09-16 19:58 16221,我们先来熟悉下正则表达式一些字符含义的基础 ^行起始标记 ... -
shell脚本杂记(二)
2014-09-15 21:25 20281,求两个文件的交集comm a.txt b.txt -1 - ... -
shell脚本杂记(一)
2014-09-12 21:50 20431,登陆系统时,$代表 ... -
跟散仙学shell编程(十四)
2014-08-26 20:59 1939上篇散仙简单介绍了linu ... -
跟散仙学shell编程(十三)
2014-08-25 20:02 1330上篇散仙主要了讲述了gawk进阶的一些用法,本篇我们来了解下载 ... -
跟散仙学shell编程(十二)
2014-08-22 21:27 1589上篇文章散仙写了关于sed进阶,本篇我们来看下在linux中另 ... -
跟散仙学shell编程(十一)
2014-08-21 21:45 1666上篇散仙写了关于shell里面正则的基础知识,本篇我们来特意学 ... -
跟散仙学shell编程(十)
2014-08-20 21:22 1326上篇文章,散仙简单介绍了在linux中,使用sed和gawk编 ... -
跟散仙学shell编程(九)
2014-08-19 21:49 1717上篇散仙说了如何在linux里面构建更好的交互式shell,本 ... -
跟散仙学shell编程(八)
2014-08-18 21:50 1639上篇散仙说了linux里面函数的使用,本篇我们来看下如何在sh ... -
跟散仙学shell编程(七)
2014-08-15 21:46 1811上篇散仙在文章里描述了如何处理linux信号和脚本控制,本节我 ... -
跟散仙学shell编程(六)
2014-08-14 21:53 2107上篇介绍了linux里面的处理数据的方式,本篇散仙来说下,如何 ... -
跟散仙学shell编程(五)
2014-08-13 21:41 1674上一篇写的是处理用户输入,本篇散仙要写的是linux里面的标准 ... -
跟散仙学shell编程(四)
2014-08-12 21:46 1536上篇介绍了for循环命令 ... -
跟散仙学shell编程(三)
2014-08-11 21:38 1749散仙在上一篇文章里写了关于如何使用if-else以及case等 ...
相关推荐
《跟老男孩学Linux运维:Shell编程实战》分为五大部分:部分为第1章~第4章,此部分着重介绍新手如何学好Shell编程。涉及的内容包括Shell编程的入门介绍、基础知识、运行原理、编程语法、编程习惯、变量知识以及变量...
跟老男孩学Linux运维:Shell编程实战 PDF跟老男孩学Linux运维:Shell编程实战 PDF
资深运维架构实战专家及教育培训界*专家十多年的运维实战经验总结,全面系统地讲解运维工作中Shell编程所需的知识点和Shell编程的各种企业级案例。
《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...
Windows Shell 编程.pdf 看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对...
Shell编程是Linux/Unix系统中不可或缺的一部分,它是一种命令行解释器,允许用户与操作系统进行交互,执行系统命令,以及编写脚本自动化任务。在本文中,我们将深入探讨Shell编程的基础知识,包括基本命令、变量、...
Shell 编程中文手册 本手册涵盖了 Shell 编程的基础知识,包括 Shell 概述、Shell 解析器、Shell 脚本入门、Shell 中的变量等。 Shell 概述 Shell 是一种命令行接口,允许用户与操作系统进行交互。学习 Shell ...
《shell编程入门教程》、《shell脚本专家指南》以及《UNIX.shell编程24小时教程》会提供详尽的实例和练习,帮助你巩固所学并深化理解。 总之,Shell编程是Linux/Unix环境中不可或缺的技能,它能够提高工作效率,...
shell编程题目练习,练习基本的shell编程,学习脚本语言,提高效率
跟老男孩学Linux运维:Shell编程实战 完整版 pdf
"Linux与UNIX Shell编程指南" Linux与UNIX Shell编程指南是计算机科学领域中一本经典的指南手册,旨在帮助读者快速掌握Linux与UNIX操作系统下的shell编程技术。下面是从该书中生成的相关知识点: 1. Shell概述 ...
在“高级shell编程”的第五部分,我们探讨了五个关键章节,涵盖了高级shell编程技巧,这对于任何想要提升在Linux系统中自动化任务能力的IT专业人士来说都是不可或缺的知识。以下是对每个章节内容的详细阐述: 第25...
学完本书后,你将成为一名shell编程高手。 内容简介 本书共分五部分 ,详细介绍了SHELL编程技巧,各种UNIX命令及语法,还涉及了UNIX的文字处理以及少量的系统管理问题。本书内容全面,文字简洁流畅,适合SHELL编程...
《Windows Shell 编程指南与实例》是一本深入探讨Windows操作系统壳层编程技术的专业书籍。在Windows系统中,Shell指的是用户界面,它为用户提供与操作系统交互的环境,包括桌面、开始菜单、快捷方式等。Shell编程则...
这是一套完整的Unix培训教材,包括Unix常用命令及SHELL编程基础与高级技巧,PDF格式,共30个文件。另有2个Word文档。包内文件清单如下: 01_Shell-文件安全与权限.PDF 02_Shell-使用find和xargs.PDF 03_Shell-...
13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...
6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书
Shell学习的好帮手Shell学习的好帮手Shell学习的好帮手Shell学习的好帮手Shell学习的好帮手
**Shell编程介绍** Shell编程是Linux/Unix操作系统中的一种脚本语言,用于自动化日常任务,交互式地控制操作系统,以及实现系统级别的程序间交互。它提供了命令行接口(CLI)来执行各种系统命令,使用户能够高效地...