文章目录

一、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脚本触发java程序支持传参补跑_01_java程序

二、shell脚本
2.1. 创建基础目录
#1.级联创建/app/ly 用于存放项目
mkdir /app/ly -p
#2.用于存放执行过程中输出的日志
mkdir
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
三、案例测试
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