Initial commit
	new file:   bin/dbcheck.sh
	写这个程序的初衷：
	针对db2数据库的监控软件有很多，但是大多数都是需要商业授权的。我平时在工作中
遇到了每周或者每个月就要向上级汇报数据库状态变化的工作。由于数据库状态是实时变化的，
如果不对数据库的状态进行定时的抓取根本不能发现数据库状态变化的规律，也不能汇总出一套
完整的变化数据，更谈不上做个数据库状态变化的趋势图了。每次在汇报数据的时候都要临时
抱佛脚随便抓取一些数据应付了事。
	这种情况显然不是我的做事风格，作为一个可以写代码的DBA哪能让自己这么被动的接受
工作？！正是由于上述需求，我打算写个小软件配合系统的cron定时进行db2数据库状态的抓取。
然后把抓取的数据保存成csv格式的文件供execl等图表软件来处理。

	本次提交的是初始版本，此版本只有一个SHELL脚本。配合Linux系统上的cron服务，此脚本
可以定时收集db2数据的一些信息。
	这些信息包括：
	1）、缓冲池大小及命中率。
	2）、表空间大小。
	3）、数据库大小。
	4）、CPU和内存的使用数据。
	5）、网络IO数据。
	6）、本地IO数据。
	7）、应用程序连接数。
	8）、锁和排序的信息。
	这个脚本把抓取到的数据进行分类和汇总，然后保存成csv格式的文本文件，以方便execl等
图表软件来处理。

	对这个软件的期望：
1）、软件的第一大版本计划全用SHELL脚本来实现。
2）、对生成的csv文件的处理要学习nmon命令那样使用execl自动处理。
3）、将来此软件的发展方向是：

		-application->SHELL(v1)->C(v2)
       |
db2nmon
	   |
	    -anaylist ->excel(v1)->R(v2)

	从上图中可以看到在第一大版本中会使用SHELL+excel的方式来处理数据，但是后期随着处理的
数据量的增大会考虑使用C+R的方式。不管采用那种方式，设计的初衷都是为了简化DBA的操作，并且
提高自己在DB2状态监控方面和编程方面的技能。
	希望这个软件可以走的越来越远。也希望我能在完善这个软件的过程中更深刻的体会db2数据库
的监控方法，更深入的学习SHELL、C、R等编程软件的知识，更深刻的了解数据分析的知识。

														2014年04月08日18：18分
														田磊
														Email:taylor840326@gmail.com
														QQ: 553948327
	修改:         dbcheck.sh
	把DBNAME修改成了PARSONDB。
	本次主要做了如下修改：
	一、针对排序的监控添加如下功能：
		从监控任务开始到1分钟以后都产生了多少排序，产生的这些排序都消耗了多少毫秒的
	时间、产生的这些排序平局消耗的时间是多少、这1分钟发生了多少次排序溢出。

	修改本意：
	1）、从数据库的snapshot只能看到总的排序个数、排序消耗时间和总的排序溢出个数。这种情况
	下就不能看到某个时间段内排序的变化。
	2）、抓取一段时间内的排序的变化可以更细粒度的分析排序的情况。

	二、重命名:       bin/dbcheck.sh -> bin/db2nmon
	修改:         db2nmon
	一、修改了表空间的监控函数。
		本次主要修改了表空间监控的功能函数。之前采用的是读取sysibmadm.snapdb表的方式。
	这种方式不好的地方在于每次都要链接数据库。本次主要采用db2 get snapshot 的方式抓取数据。
	二、修改了排序生成的文件的名称。以前的名称是parsondb-SORT.csv,修改成parsondb.csv的样式。
	修改:         bin/db2nmon
	本次修改了如下內容：
	1、修改了锁的监控函数，增加了监控一段时间内锁的变化的功能。
	db2的snapshot的数据库结果只能看到当前锁的信息，不能看到一段时间内
	的锁的信息。
	本次做了如下修改：
	一、修改了数据库缓冲池的信息。
	把数据库缓冲池的信息保存到了指定的路径。($BPPATH=$TMPPATH/bufferpools)
	本次修改了应用程序，数据库大小的存储路径。
	本次修改的主要内容是：
	1、CPU和内存监控的数据保存的路径。
	2、监控到的IO数据保存的路径。
	3、监控的LOAD数据报错的路径。
	修改缓冲池信息中，当文件已存在，不记录时间戳的问题。
	添加一个README.txt文件。
Merge branches 'os' and 'master'
	修改抓取缓冲池信息的函数，之前生成的表格抬头信息中有几个多余的“，”逗号，导致用图表
	软件打开的时候出现了排版混乱的情况。
英语不好，单词analyst拼错了。
	修改:         db2nmon
	之前LOAD监控函数中不能抓取的结果没有用逗号分割，修正了此错误。
	0410213255,0.19 0.26 0.26
一、要提交的变更：
	新文件:       etc/README.txt
	新文件:       lib/README.txt
	新文件:       tmp/README.txt
	新文件:       usr/share/doc/db2nmon/README.txt
	新文件:       var/lock/db2nmon/README.txt
	新文件:       var/log/db2nmon/README.txt

二、在逐渐完善监控程序的过程中发现了如下问题：
	1、随着软件监控内容的增加，代码量会成倍的增长。日后对一个文件的编辑会越来越麻烦。
	2、对系统和数据库状态的监控在监控时间上是敏感的，一个SHELL文件只能串行执行。不能并行执行。
	3、软件不能进行模块化修改，每次修改一个功能就要打开一个文件，增加改错其他代码的风险。

三、正因为有上述的原因，准备针对功能对脚本进行拆分。对程序的目录进行调整。

//////////////////////////////////////////////////////////////////////
etc目录保存了监控软件需要用到的参数。
参数的格式为:
name=value.
name2=value.
name3=value.
//////////////////////////////////////////////////////////////////////

lib目录保存的是各个监控功能模块。
功能模块分为如下三大类：
1）、系统级别监控。
	包括：osstat_CPU/osstat_MEM/osstat_NIC/osstat_LOAD/osstat_IO.
	这些脚本中会判断操作系统版本，然后不同的版本做不同的处理。
2）、DB2数据库级别监控。
	包括：db2V95/db2V97/db2V101/db2V105
	这些脚本中会判断操作系统版本，然后不同的版本做不同的处理。

注意：
本目录中的脚本都是可以执行的，脚本的模板为：

autoload col  #调用某文件中的函数

function test() {
	#定义自己的函数。
}

test

//////////////////////////////////////////////////////////////////////

tmp目录保存监控软件在执行的时候生成的一些临时文件，这些
临时文件会在监控执行完成后被自动删除。
//////////////////////////////////////////////////////////////////////

usr/share/doc/db2nmon/目录为监控软件用到的文档目录

//////////////////////////////////////////////////////////////////////
var/lock/db2nmon目录保存了监控软件的功能脚本在执行的后的返回值

//////////////////////////////////////////////////////////////////////
var/log/db2nmon/目录保存了监控软件生成的日志
//////////////////////////////////////////////////////////////////////