编写这个脚本是用来检测开发是否使用FTP上传了新的文件 在定时任务里每分钟执行一次,对比大小来重启Java
#!/bin/bash
#判断文件大小-更新文件 触发Java重启
#查看当前文件大小
new_size=$(ls -l /www/test.jar | awk '{print $5}')
#查看历史文件大小
look_size=$(cat /www/size)
#查看Java进程
java_ps=$(ps -ef|grep java | grep -v 'grep'|awk '{print $2}')
#重启Java
ReJava(){
echo "[信息]$(date +"%Y年%m月%d日 %T") 文件不相同,正在重启!" >> /data/logs/rejava.log
kill $java_ps
nohup java -jar /www/test.jar >/www/log.log 2>&1 &
ls -l /www/test.jar | awk '{print $5}' > /www/size
}
#不重启Java
NoReJava(){
echo "[信息]$(date +"%Y年%m月%d日 %T") 文件相同,无需重启!" >> /data/logs/rejava.log
}
#判断文件大小是否发生变化
if [ $look_size != $new_size ]
then
ReJava
else
NoReJava
fi
已经使用bash -x查看过程,看不出什么问题就莫名其妙结束了
显示Terminated后结束脚本,ReJava函数里的nohup命令不在往下执行