shell指令碼觸發java程式支援傳參補跑_01
阿新 • • 發佈:2020-12-30
技術標籤: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