针对Linux上Java程式运行脚本的Log信息记录操作人员记录以及成功运行判断
程序员文章站
2022-03-23 07:50:51
使用该教程,能直观地看到java启动脚本是否启动/关闭成功能让自己的启动时间日期都记录在Log中能记录有哪些人登陆了该服务器操作了启动关闭脚本(记录IP地址) ......
简介与优点
使用该教程,能直观地看到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}
原文链接:https://www.cnblogs.com/heicaijun/p/12784671.html
上一篇: 携手阿里云IoT 雅观科技打造全屋智能SaaS平台
下一篇: 荐 第二章 Java基础知识(下)