简介与优点

使用该教程,能直观地看到java启动脚本是否启动/关闭成功

能让自己的启动时间日期都记录在Log中

能记录有哪些人登陆了该服务器操作了启动关闭脚本(记录IP地址)

使用说明

在原有的启动和关闭脚本底下分别加入以下代码

# 在启动脚本末尾添加这个
source /home/root/start4Log.sh
# 在关闭脚本末尾添加这个
source /home/root/stop4Log.sh

start4Log.sh脚本

下载地址在start4Log脚本中,可以直观看到程式是否启动成功,并将启动过程记录在log日志中

# Log记录路径
FWlog_dir=/home/p4fdc/PeakPerformance/FWlog/FWHistory.log echo "============================" >> ${FWlog_dir}
echo "[start${FID}.sh]" >> ${FWlog_dir}
date -d "today" +"%Y-%m-%d-%H-%M-%S" >> ${FWlog_dir}
# 输出当前服务器已登录的用户与IP到Log中
who >> ${FWlog_dir}
ps -ef | grep java | grep $FID
# 这里是对对应的$FID java程式判断,查询是否存在这样的FID的java程式
if [ $? -eq 0 ] ;then
# 如果上面命令运行成功,也即对应的程式启动好了则执行下面的命令
# 这里的echo -e是输出带格式的字符串。\33[42;37m ????? \033[0m 所包裹的文字将显示绿底白字
echo -e "\033[42;37m Start ${FID} Successfully! \033[0m"
echo "Start ${FID} Successfully!" >> ${FWlog_dir}
ps -ef | grep java | grep $FID >> ${FWlog_dir}
else
# 如果上面命令运行失败,也即对应的程式未启动好了则执行下面的命令
# 这里的echo -e是输出带格式的字符串。\33[41;37m ????? \033[0m 所包裹的文字将显示红底白字
echo -e "\033[41;37m Start ${FID} Failured! \033[0m"
echo "Start ${FID} Failured!" >> ${FWlog_dir}
fi
echo "============================" >> ${FWlog_dir}

stop4Log.sh

下载地址在stop脚本中可以进行传参,诸如传递一个-f的参数使用 ./stopTestJava.sh -f,则在无法kill的时候使用kill -9强制kill。以下为具体代码

# 先等待2s,然后再判断该Java程式是否成功关闭(因为关闭有时延)
sleep 2
FWlog_dir=/home/p4fdc/PeakPerformance/FWlog/FWHistory.log
echo "============================" >> ${FWlog_dir}
echo "[stop$FID.sh] : " >> ${FWlog_dir}
date -d "today" +"%Y-%m-%d-%H-%M-%S" >> ${FWlog_dir}
# 输出当前服务器已登录的用户与IP到Log中
who >> ${FWlog_dir}
ps -ef | grep java | grep $FID
if [ $? -eq 0 ] ;then
# 如果上面命令运行成功,也即对应的程式关闭了则执行下面的命令
# 这里的echo -e是输出带格式的字符串。\33[41;37m ????? \033[0m 所包裹的文字将显示红底白字
echo -e "\033[41;37m Stop ${FID} Failured! \033[0m"
echo "Stop ${FID} Failured!" >> ${FWlog_dir}
ps -ef | grep java | grep $FID >> ${FWlog_dir}
# 判断是否被传参
if [[ -n "$1" ]]; then
# 如果含有第一个参数则直接强制kill
ps -ef | grep java | grep $FID | grep java | kill -9 `awk '{print $2}'`
ps -ef | grep java | grep $FID
if [ $? -eq 0 ] ;then
echo -e "\033[41;37m Force Stop ${FID} Still Failured!You need to check manually.\033[0m"
echo "Force Stop ${FID} Failured!" >> ${FWlog_dir}
ps -ef | grep java | grep $FID >> ${FWlog_dir}
else
# 这里的echo -e是输出带格式的字符串。\33[42;37m ????? \033[0m 所包裹的文字将显示绿底白字
echo -e "\033[42;37m Force Stop ${FID} Successfully! \033[0m"
echo "Force Stop ${FID} Successfully!" >> ${FWlog_dir}
fi
else
# 如果没有第一个参数则询问用户是否强制删除
read -p "Want to Force Kill the process?[y/n]" choice
case $choice in
[yY][eE][sS]|[yY])
ps -ef | grep java | grep $FID | grep java | kill -9 `awk '{print $2}'`
ps -ef | grep java | grep $FID
if [ $? -eq 0 ] ;then
echo -e "\033[41;37m Force Stop ${FID} Still Failured!You need to check manually.\033[0m"
echo "Force Stop ${FID} Failured!" >> ${FWlog_dir}
ps -ef | grep java | grep $FID >> ${FWlog_dir}
else
echo -e "\033[42;37m Force Stop ${FID} Successfully! \033[0m"
echo "Force Stop ${FID} Successfully!" >> ${FWlog_dir}
fi
;;
[nN][oO]|[nN])
echo -e "\033[41;37m You Need To Check manually!\033[0m "
echo "Not Choose Force Stop!" >> ${FWlog_dir}
;; *)
echo "Invalid input..."
;;
esac
fi else echo -e "\033[42;37m Stop ${FID} Successfully! \033[0m"
echo "Stop ${FID} Successfully!" >> ${FWlog_dir} fi
echo "============================" >> ${FWlog_dir}

针对Linux上Java程式运行脚本的Log信息记录操作人员记录以及成功运行判断的更多相关文章

  1. Linux上java程序的jar包启动通用脚本(稳定用过)

    Linux上java程序的jar包启动通用脚本如下: #! /bin/sh export LANG="zh_CN.GBK" SERVICE_NAME=` .sh` SCRIPT_N ...

  2. linux上java路径设置

    linux上java路径设置 标签: javalinuxpath 2012-04-30 22:14 1843人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 往/e ...

  3. linux上 java 使用 javasqlite

    linux上 java 使用 javasqlite http://www.ch-werner.de/javasqlite/ 1) 下载: http://www.ch-werner.de/javasql ...

  4. 常见的linux上的服务重启脚本

    手写linux上的重启脚本,先把提纲列下 1.检查进程是否存在 存在杀死 2.备份原来的包到指定目录 3. 拉取新包,我这边为了简便,没有从jenkins slave上拿 4.启动命令 5.检查是否进 ...

  5. linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法

    用mapreduce做数据清洗的时候,需要对数据进行解密,加密方法是:AES/CBC/PKCS7Padding,由于java本身不支持,需要添加依赖,用的依赖是: <dependency> ...

  6. 【Linux】-- Linux上java运行环境的配置(JDK+TOMCAT)

    1.JDK安装 安装之前首先要查询软件是否存可以直接使用yum安装 yum search java | grep open 选择需要的版本安装 注意:*星号代表下载该版本的所有文件,不能少. 验证是否 ...

  7. Java:Linux上java -jar xxx.jar&java -cp 区别

    java -cp java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库和jar包,需要全路径到jar包,多个jar包之间连接符:window上分号“;”.Lin ...

  8. Linux上Java的安装与配置

    由于使用 yum 或者 apt-get 命令 安装 openjdk 可能存在类库不全,从而导致用户在安装后运行相关工具时可能报错的问题,所以此处我们推荐采用手动解压安装的方式来安装 JDK.具体步骤如 ...

  9. linux上java和golang环境变量的设置

    JAVA环境变量   (1).打开~/.bashrc完成环境配置( 作用类似于/etc/bashrc, 只是针对用户自己而言,不对其他用户生效.)       文件追加            expo ...

随机推荐

  1. Reinforcement Learning, Fast and Slow

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 1 DeepMind, London, UK2 University College London, London, UK3 Prince ...

  2. Vue路由模块化的实现方法

    分享一个Vue路由模块化方法,简单实用,好用到飞起 路由模块化 1.router/index.js 配置路由 import Vue from 'vue' import VueRouter from ' ...

  3. Datanode 怎么与 Namenode 通信?

    在分析DataNode时, 因为DataNode上保存的是数据块, 因此DataNode主要是对数据块进行操作. A. DataNode的主要工作流程 客户端和DataNode的通信: 客户端向Dat ...

  4. Combine 框架,从0到1 —— 1.核心概念

      本文首发于 Ficow Shen's Blog,原文地址: Combine 框架,从0到1 -- 1.核心概念.     内容概览 前言 核心概念 RxSwift Combine 总结 参考内容 ...

  5. day40:python操作mysql:pymysql模块&SQL注入攻击

    目录 part1:用python连接mysql 1.用python连接mysql的基本语法 2.用python 创建&删除表 3.用python操作事务处理 part2:sql注入攻击 1.s ...

  6. python_选择排序

    #选择排序 def insert_sort(li): for i in range (1,len(li)): # i表示摸到牌的下标 tem = li[i] j = i - 1 # j 是初始手中的牌 ...

  7. Java集合 Collection、Set、Map、泛型 简要笔记

    集合 什么是集合 概念 对象的容器,实现了对对象常用的操作 和数组的区别 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型 位置 java.util.*; Colle ...

  8. pyinstaller库的简单使用 打包科赫雪花几何图形

    pyinstaller 简单使用 (cmd命令行) pyinstaller -F <文件名.py> Pyinstaller库常用参数 参数 描述 -h 查看帮助 --clean 清理打包过 ...

  9. HttPServletRequest 对象 基本应用

    HttPServletRequest 对象 基本应用 防盗链 获取Referer这个消息头,判断Referer是不是从指定页面来的.如果不是从指定页面的,跳转回指定页面. 这可以用于保证页面广告的观看 ...

  10. android开发之使edittext输入弹出数字软键盘。亲测可用。手机号登陆注册常用。

    <EditText android:id="@+id/edit_digit_input" android:layout_width="wrap_content&qu ...