1. 程式人生 > 其它 >shell指令碼觸發java程式支援傳參補跑_01

shell指令碼觸發java程式支援傳參補跑_01

技術標籤:Shellshell觸發java

文章目錄

一、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. 測試傳引數
[[email protected] ly]# ./lyshell.sh 2020-12-25
[[email protected] ly]# cat logs/data.log 
nohup: ignoring input
開始補跑: 2020-12-25這天的資料
[[email protected] ly]# 

下一篇:
shell指令碼觸發java程式支援傳參補跑 +crontab定時器_02
https://gblfy.blog.csdn.net/article/details/111787188