shell比较两个“字符串-数字”文件
问题简化后描述如下:
已知两个文件file1.txt和file2.txt内容如下:
file1.txt
database1:table1 5
database1:table2 10
database1:table3 100
database2:table3 45
file2.txt
database1:table1 19
database1:table2 24
database1:table3 100
database2:table3 20
然后我的问题是,对比两个文件中第一列字符串相同的数据,比较对应的第二列数值是否都不为0,或者一个为0,或者都为0。
上面的例子是最简单的情况,这种情况下file1.txt和file2.txt中每一行内容都是对应的,只是数值可能不同。
复杂的情况有file1.txt和file2.txt中第一列不完全相同,存在某些字符串在file1.txt中而不在file2.txt中,也存在某些字符串在file2.txt而不在file1.txt中。
需要解决的问题描述如下:
对数据库某些核心表进行监控,监控表内数据行数的状态:非空->空。
需要监控的表记录在一个配置文件内,crontab每隔一段时间去读取配置文件,得到需要监控的表,然后获取表中的数据行数。每次获取了具体的每个表的数据行数后,跟上一次的数据进行比较,当发现数据出现“非空->空”状态的变换,则NOC告警。
这里面的问题是:crontab不同时间读取的配置文件可能不同(存在两个时间间隔之间,有人修改配置文件的情况)。
Lucia
10 years, 6 months ago