`
dxm1986
  • 浏览: 434297 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 
阅读更多

第一个 定时抓取服务器JVM相关信息

#! /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

分享到:
评论

相关推荐

    250个shell脚本

    本文档收集了250个实用的Shell脚本实例,涵盖了多个应用场景,包括系统管理、安全防护、数据库备份等核心知识点。 1. Dos攻击防范:通过监控Nginx的日志文件,检测到异常频繁的IP访问后,脚本会自动使用iptables...

    Shell脚本中获取进程ID的方法

    比如,你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件。有时侯脚本需要检测所有运行的进程,它可以从进程列表中排除自身的子shell。 在bash中,子shell进程的PID存储在一个特殊的变量‘$$’中。这个变量...

    100个shell脚本合集

    这里有两个备份策略:单循环备份将所有数据库一次性备份到一个文件;多循环备份则按照数据库-表的方式,每个表单独备份到一个文件,这样有利于管理和恢复。脚本中使用了mysqldump命令进行备份,指定主机、用户、密码...

    109个shell脚本合计

    这里有两个脚本,分别实现了单循环和多循环备份。单循环脚本备份所有数据库,而多循环脚本则进一步按表进行备份。它们都使用mysqldump工具,通过指定的用户名、密码和主机名连接到MySQL服务器,获取数据库列表,...

    Shell脚本学习教程PDF版

    在Shell脚本中,输入输出重定向和管道是两个重要的特性。输入重定向允许将数据从文件导向命令,而不是从键盘;输出重定向则可以将命令的输出保存到文件,而不是打印到屏幕。管道则可以连接多个命令,让前一个命令的...

    100个shell脚本【持续更新】.pdf

    1. 基本Shell脚本结构:每个Shell脚本通常以#!bin/bash作为开头,这行代码被称为shebang行,告诉系统用哪个解释器来执行该脚本。接着是一些注释和脚本的主体部分。 2. 循环结构:Shell脚本中常用循环包括for循环和...

    23 个非常实用的 Shell 脚本实例.doc

    这个脚本使用 MD5 值来检测两台服务器上文件的一致性。首先,将指定目录下的文件遍历出来,并使用 MD5sum 命令生成文件的 MD5 值,然后将结果写入到指定文件中。接着,使用 SSH 连接到另一台服务器,执行相同的命令...

    shell脚本与Makefile区别.docx

    "shell脚本与Makefile区别" shell 脚本和 Makefile 是两个不同的工具,它们都用于自动化构建和编译过程,但是它们有很大的不同之处。本文将详细介绍 shell 脚本和 Makefile 的区别。 首先,shell 脚本和 Makefile ...

    非常简单的Shell菜单脚本

    本文介绍的“非常简单的Shell菜单脚本”就是一种基础的Shell脚本应用,它创建了一个简单的菜单系统,使用户能够通过选择编号来执行不同的功能,实现了人机交互的“傻瓜式”操作。 首先,脚本通过`#!/bin/sh`行指定...

    linux下shell脚本实现数据的导出

    为了使Java代码能够成功执行shell脚本,需要注意以下几点: - 确保Java运行环境有执行`sh`命令的权限。 - 脚本路径正确且Java程序有读取该文件的权限。 - `oracle`用户有执行`exp`命令和写入指定文件的权限。 总结...

    如何让Android系统或Android应用执行shell脚本

    下面我们将介绍两种让 Android 系统或 Android 应用执行 shell 脚本的方法。 方法一:通过修改 /system/init/init.c 在 Android 系统中,init.c 是一个核心文件,负责系统的启动和服务管理。我们可以在 init.c 中...

    linux中,用shell脚本检查磁盘使用率并清理文件

    4、上述两种情况分别以两个shell函数实现,有入参,可任意调节入参。 5、这两个函数的第一个参数是文件列表,可以以shell数组变量来传递,数组的每个元素支持文件路径,支持正则表达式去匹配。 6、因为脚本要删除...

    shell脚本的demo

    每个Shell脚本通常以`#!/bin/bash`或`#!/bin/sh`作为第一行,这被称为Shebang,用来指定执行该脚本的Shell解释器。 3. **变量**: 在Shell脚本中,可以定义和使用变量来存储数据。例如,`NAME="John"`,然后通过`...

    shell脚本学习资料

    下面我们将深入探讨sed和awk这两个在Shell脚本中常用的命令。 **sed(Stream Editor)** sed是一种流编辑器,它能够读取一行数据,对其进行处理,然后输出。它常用于文本替换、删除、插入和模式匹配等操作。例如,...

    Linux云计算-Shell脚本100例

    在IT行业中,Linux云计算与Shell脚本编程是两个至关重要的技术领域。Linux作为开源操作系统,广泛应用于服务器管理、云计算平台以及自动化任务执行等场景。Shell脚本,作为Linux环境下的命令解释器,允许用户编写一...

    Linux shell脚本.rar

    sy2visor1.0.txt为实验2写的初始shell版本,sy12内去掉了下载软件(install samba等命令),sy1-2保留了下载软件命令,这两个shell脚本是实验1加实验2合起来的可通过记事本打开看源代码。 使用的操作系统:Linux ...

    LinuxShell脚本攻略,中英两份

    Linux Shell脚本攻略是针对那些想要深入理解和应用Linux操作系统中的Shell脚本...通过这两个文档的学习,无论是初学者还是经验丰富的Linux用户,都能提升其在Shell脚本开发方面的技能,更好地利用Shell这一强大工具。

    shell脚本100例(最新版).pdf

    Shell脚本是Linux系统中的一种强大工具,它允许用户通过编写简单的命令行指令组合来实现自动化任务。在《shell脚本100例(最新版).pdf》这本书中,作者详细介绍了各种实用的Shell脚本案例,涵盖了从基础语法到高级...

    shell脚本练习题

    通过以上分析,我们可以看到Shell脚本是一种强大的工具,能够高效地处理各种文本文件操作、目录管理任务以及简单的系统管理任务。掌握这些基础的脚本编写技巧对于任何Linux/Unix系统管理员来说都是非常有用的。

Global site tag (gtag.js) - Google Analytics