职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 649|回复: 1

两个shell脚本,希望大家能够用上

[复制链接]
秋秋 发表于 2011-9-16 12:10 | 显示全部楼层 |阅读模式
第一个 定时抓取服务器JVM相关信息
#! /bin/sh
   
#get_current_time
export JAVA_HOME=/opt/jdk1.6.0_10/
export PATH=$JAVA_HOME/binPATH
export CLASSPATH=.JAVA_HOME/lib/tools.jarJAVA_HOME/lib/dt.jarCLASSPATH
   
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

芷馨 发表于 2011-9-16 12:10 | 显示全部楼层
推荐链接

20-30万急聘多名天才Java/MTA软件工程师
见证又一个准百万富翁的诞生!
3G培训就业月薪平均7K+,不3K就业不花一分钱!

您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-29 03:44 , Processed in 0.125962 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表