md5sum命令的灵活运用

 跟Linux有过接触的人, 基本都熟悉常用的linux命令, 但md5sum这命令并不是所有的人都用过。 其实, md5sum就是对文件/字符串求md5值的命令, 很简单。

在我们的java部署tomcat环境中,有时候并不能知道服务是否好坏,比如内存溢出了,或者服务卡了很久没反应了,那么我们可以通过md5sum 来执行tomcat的日志文件,写一个定时器,定时几分钟执行一下,比较该次值和上一次值是否相等,如果相等表示tomcat已经很久没有日志输出了,那么这个时候我们可以通过java调用脚本进行重启tomcat,并且发送预警短信进行通知。

脚本如下:

#!/bin/sh
#kill tomcat pid
pidlist=`ps-ef|grep tomcat|grep-v"grep"|awk'{print $2}'`
if[ "$pidlist"= ""]
   then
       echo"no tomcat pid alive!"
else
  echo"tomcat Id list :$pidlist"
  kill-9 $pidlist
  echo"KILL $pidlist:"
  echo"service stop success"
fi
echo"start tomcat"
cd/usr/local/tomcat/bin
./startup.sh ;tail-f ../logs/catalina.out
 
java调用shell如下:
private static void cmdExec(String cmd) {
		System.out.println(cmd);
		Runtime runtime = Runtime.getRuntime();
		Process process = null;
		String line = null;
		InputStream is = null;
		InputStreamReader isr = null;
		BufferedReader br = null;
		try {
			process = runtime.exec(cmd);

			is = process.getInputStream();
			isr = new InputStreamReader(is, "UTF-8");
			br = new BufferedReader(isr);

			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}
			int exitCode = process.waitFor();
			System.out.println("exitCode =" + exitCode);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}

			if (isr != null) {
				try {
					isr.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}

			if (is != null) {
				try {
					is.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}

			if (process != null) {
				process.destroy();
			}
		}
	}
希望对大家有所帮助,这个是我在实际运用中的心得。
 

 

 
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值