针对Linux上Java程式运行脚本的Log信息记录操作人员记录以及成功运行判断
简介与优点
使用该教程,能直观地看到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信息记录操作人员记录以及成功运行判断的更多相关文章
- Linux上java程序的jar包启动通用脚本(稳定用过)
Linux上java程序的jar包启动通用脚本如下: #! /bin/sh export LANG="zh_CN.GBK" SERVICE_NAME=` .sh` SCRIPT_N ...
- linux上java路径设置
linux上java路径设置 标签: javalinuxpath 2012-04-30 22:14 1843人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 往/e ...
- linux上 java 使用 javasqlite
linux上 java 使用 javasqlite http://www.ch-werner.de/javasqlite/ 1) 下载: http://www.ch-werner.de/javasql ...
- 常见的linux上的服务重启脚本
手写linux上的重启脚本,先把提纲列下 1.检查进程是否存在 存在杀死 2.备份原来的包到指定目录 3. 拉取新包,我这边为了简便,没有从jenkins slave上拿 4.启动命令 5.检查是否进 ...
- linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法
用mapreduce做数据清洗的时候,需要对数据进行解密,加密方法是:AES/CBC/PKCS7Padding,由于java本身不支持,需要添加依赖,用的依赖是: <dependency> ...
- 【Linux】-- Linux上java运行环境的配置(JDK+TOMCAT)
1.JDK安装 安装之前首先要查询软件是否存可以直接使用yum安装 yum search java | grep open 选择需要的版本安装 注意:*星号代表下载该版本的所有文件,不能少. 验证是否 ...
- Java:Linux上java -jar xxx.jar&java -cp 区别
java -cp java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库和jar包,需要全路径到jar包,多个jar包之间连接符:window上分号“;”.Lin ...
- Linux上Java的安装与配置
由于使用 yum 或者 apt-get 命令 安装 openjdk 可能存在类库不全,从而导致用户在安装后运行相关工具时可能报错的问题,所以此处我们推荐采用手动解压安装的方式来安装 JDK.具体步骤如 ...
- linux上java和golang环境变量的设置
JAVA环境变量 (1).打开~/.bashrc完成环境配置( 作用类似于/etc/bashrc, 只是针对用户自己而言,不对其他用户生效.) 文件追加 expo ...
随机推荐
- Next Cloud通过修改数据库表,达到替换文件而不改变分享的链接地址的效果,以及自定义分享链接地址
Next Cloud如何通过修改数据库表,达到替换文件而不改变分享的链接地址的效果,以及自定义分享的链接地址 本文首发于我的个人博客:https://chens.life/nextcloud-chan ...
- 牛客网PAT练兵场-组个最小数
题解:从小到大输出 题目地址:https://www.nowcoder.com/questionTerminal/86ede762b450404dbab59352963378e9 /** * *作者: ...
- JdbcTemplate jar包 下载
我给了一个链接, 是jar download网站上的. 能上去的就可以下载. https://jar-download.com/maven-repository-class-search.php?se ...
- 总结java中创建并写文件的5种方式
在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法. Files.newBufferedWriter(Java 8) Files. ...
- 深入了解Redis(3)-对象
Redis主要的数据结构有简单动态字符串(SDS).双端链表.字典.压缩列表.整数集合,等等.但Redis并没有直接使用这些数据结构来实现键值对数据库, 而是基于这些数据结构创建了一个对象系统, 这个 ...
- java23种设计模式——七、桥接模式
原文地址:https://www.cnblogs.com/chenssy/p/3317866.html 源码在我的github和gitee中获取 目录 java23种设计模式-- 一.设计模式介绍 j ...
- Qt 怎样生成带图标的exe
一.问题描述 当我们在 Windows 下用 VS 生成 exe 程序时,如果窗口程序指定了图标,那么生成的 exe 程序便是指定的图标模样. 但是,当使用 Qt Creator 编译程序却不同.即使 ...
- 超简单!基于Python搭建个人“云盘”
1. 简介 当我们想要从本地向云服务器上传文件时,比较常用的有pscp等工具,但避免不了每次上传都要写若干重复的代码,而笔者最近发现的一个基于Python的工具updog,可以帮助我们在服务器上搭建类 ...
- Android Studio或者Eclipse中的最常用的快捷键,最简单的,部分不适用eclipse
重写方法:ctrl+shift+s 然后选择Generate 构建即可: 执行程序:shift+F10 多行注释:ctrl+shift+/ 单行注释:ctrl+/ 快速打印log:logr 快速复制 ...
- qqmini
QQ玩一玩最新调试方法 https://blog.csdn.net/zyw_java/article/details/83686645 LayaBox 接入QQ玩一玩 轻游戏流程 https://bl ...