shell-脚本-比较jar-md5sum

本文介绍了一个用于监控Java应用程序状态的shell脚本,包括生成jmap、jstack和jstat报告,并通过定时任务定期收集信息。此外,还提供了一个用于比较两个目录下jar文件是否一致的脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#! /bin/sh

#get_current_time
export JAVA_HOME=/opt/jdk1.6.0_10/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

date=`date "+%Y-%m-%d-%H:%M:%S"`

Root="/data/dxm/"


jmapends=$Root$date"_jmap.txt"
jstackends=$Root$date"_jstack.txt"
jstateends=$Root$date"_jstate.txt"





#start to register the jmap message
echo "start to register the jmap to "$jmapends
jmap -histo:live `jps|grep Resin |awk 'NR==1'|awk '{print $1}'` > $jmapends

sleep 2

#start to register the jtack message
echo "start to register the jstack to "$jstackends
jstack -l `jps|grep Resin |awk 'NR==1'|awk '{print $1}'` > $jstackends

sleep 2

#start to register the jstate message
echo "start to register the jstate message to "$jstateends
jstat -gcutil -t -h20 `jps|grep Resin |awk 'NR==1'|awk '{print $1}'` 1000 20 > $jstateends



这个可以跑个定时器:

crontab -e

*/10 * * * * sh /timer/timer.sh #每十分钟抓一次





第二个脚本:比较两个版本中jar包是否相同(有改变):

#! /bin/sh

#compare the lib files's md5 int file1 with those in file2
#if it only exist in file1 or one lib file's md5 is not equal i
#with the other then print it to the log.txt

LibPath1=$1
LibPath2=$2
date=`date "+%Y-%m-%d-%H:%M:%S"`

LOG=$date"_log.txt"
echo "-----------log file " $LOG

echo LibPath1: $LibPath1
echo LibPath2: $LibPath2
echo LibPath1: $LibPath1 \n >> $LOG
echo LibPath2: $LibPath2 \n >> $LOG
echo >> $LOG
echo >> $LOG

for File in `ls -f $LibPath1|grep jar `;
do

MD5=`md5sum $1$File |awk 'NR==1'|awk '{print $1}'`
File2=$LibPath2$File
#echo "File2-----------------" $File2

#if the same lib file exist
if [ ! -f "$File2" ]; then

echo $File only exist LibPath1
echo $File only exist LibPath1 \n >> $LOG
echo >> $LOG

#if the same file exist in directory2
else
MD52=`md5sum $File2 |awk 'NR==1'|awk '{print $1}'`
if [ "$MD5" != "$MD52" ]; then
echo the $File changed \n >> $LOG
echo >> $LOG
echo the $File changed
fi

fi

done





上的那个文件为

md5compare.sh



运行是可以用以下命令运行:



./md5compare.sh libpath1 libpath2

注意libpath1,libpath2 必须以"/" 结尾比如:

/opt/ROOT_2011-09-08-09:57:26/WEB-INF/lib/

而不是

/opt/ROOT_2011-09-08-09:57:26/WEB-INF/lib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值