近期系统运维中,因业务需要多个服务要定时进行手动重启,由于部署机器及目录各不相同,故编写sh脚本进行自动操作。这里还用到了Linux中的crontab表达式,也一并记录下。
1.编写sh脚本对项目jar包进行操作
#!/bin/bash
#执行bash shell配置
source ~/.bash_profile
#设置JDK路径
export JAVA_HOME=
#配置服务jar包文件路径
SERVICE_NAME=
#配置服务日志文件目录路径
LOG_FILE=
#杀死指定jar包进程
ps -ef|grep $SERVICE_NAME | grep -v grep|awk '{system("kill -9 "$2)}'
#启动jar包
nohup java -jar -Xmx10240m -Xms10240m -Xss2m $SERVICE_NAME.jar > $LOG_FILE 2>&1 &
echo "服务重启时间:"`date`>>restart.out
#查看实时日志
tail -f $LOG_FILE
2.利用Crontab表达式进行定时任务
#查看系统定时任务
crontab -l
#编辑定时任务
crontab -e
#一个栗子(每隔一分钟执行该脚本一次)
*/1 * * * * sh 指定路径/xxx/sh文件名.sh