文章目录
- 一、java程序
- 1. 创建java项目
- 2. 创建包结构
- 3. 创建java类
- 4. 编译
- 5. 编译后的包结构总览
- 二、shell脚本
- 2.1. 创建基础目录
- 2.2. 上传项目到指定目录
- 2.3. 创建基础脚本
- 2.4. 赋予脚本执行权限
- 三、案例测试
- 3.1. 测试不传参数
- 3.2. 测试传参数
一、java程序
1. 创建java项目
idea创建略
2. 创建包结构
com.gblfy.shell
3. 创建java类
package com.gblfy.shell;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** shell脚本触发java程序+linux 定时crontab任务* 支持补跑功能** @author gblfy* @date 2020-12-27*/
public class MainDeal {public static void main(String args[]) {if (args.length < 1) {//场景1: 当参数为空,获取当前日期开始处理业务System.out.println("没有接收到参数");//获取当前日期String currentDate = getCurrentDate();System.out.println("开始获取当前日期:"+currentDate);} else {//场景2: 当参数为空,获取当前日期开始处理业务System.out.println("开始补跑: " + args[0]+"这天的数据");}}/*** 获取当前日期** @return* @throws ParseException*/public static String getCurrentDate() {Date tCurrentDate = new Date();DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");return dateFormat.format(tCurrentDate);}
}
4. 编译
5. 编译后的包结构总览
ly.war\WEB-INF\classes\com\gblfy\shell
二、shell脚本
2.1. 创建基础目录
#1.级联创建/app/ly 用于存放项目
mkdir /app/ly -p
#2.用于存放执行过程中输出的日志
mkdir /app/ly/logs -p
2.2. 上传项目到指定目录
将编译好的项目上传到/app/ly目录下面
2.3. 创建基础脚本
#1.在/app/ly吗,目录下面编写lyshell.sh脚本
vim lyshell.sh
#2.填充内容
cd /app/ly
nohup /app/jdk1.8.0_202/bin/java -cp "./ly.war/WEB-INF/classes" com.gblfy.shell.MainDeal $1> /app/ly/logs/data.log 2>&1
2.4. 赋予脚本执行权限
chmod u+x lyshell.sh
三、案例测试
3.1. 测试不传参数
[root@localhost ly]# ./lyshell.sh
[root@localhost ly]# cat logs/data.log
nohup: ignoring input
没有接收到参数
开始获取当前日期:2020-12-27
[root@localhost ly]#
3.2. 测试传参数
[root@localhost ly]# ./lyshell.sh 2020-12-25
[root@localhost ly]# cat logs/data.log
nohup: ignoring input
开始补跑: 2020-12-25这天的数据
[root@localhost ly]#
下一篇:
shell脚本触发java程序支持传参补跑 +crontab定时器_02
https://gblfy.blog.csdn.net/article/details/111787188