1. 程式人生 > >部署到Linux並配置Java定時任務

部署到Linux並配置Java定時任務

awk linux中 sha soup java項目 http blog threads -c

Java項目部署到Linux並配置定時任務

https://blog.csdn.net/u013850277/article/details/53447391

1、在Eclipse中將程序開發好,並進行編譯成.class文件

2、在linux中創建對應的目錄,本人在linux中創建StatShareDataProject 目錄用來存放程序,同時在這個目錄下創建如下所示的一些目錄與文件,其中srcData程序中所要用的數據,log日誌目錄,lib 程序所用的jar包,將程序運行所需要的文件移動到對應的目錄
這裏寫圖片描述
本人程序在Eclipse中的目錄發下,因而在linux下同樣是創建entity,main,utils目錄

這裏寫圖片描述

3、linux的目錄創建好便可將eclipse編譯好的.class文件上傳到對應的目錄
eg:
這裏寫圖片描述

4、接下來便是編寫啟停腳本
這裏寫圖片描述
內容如下:

!/bin/sh

source /etc/profile
NAME=StatShareDataProject
echo "—-Kill $NAME—-"
ID= ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk ‘{print $2}‘
echo $ID
for id in $ID

do
kill -9 $id
echo "kill $id"
done
echo "—-!!—-"
cd /root/yechunbo/project/StatShareDataProject
JAVA_OPTS="-server -Xms256m -Xmx1024m -XX:-UseGCOverheadLimit -DappName=StatShareDataProject -Djava.rmi.server.hostname=127.0.0.1 -Djava.NET.preferIPv4Stack=true -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:Pa
rallelGCThreads=8"
nohup java -classpath .:./lib/commons-codec-1.6.jar:./lib/commons-logging.jar:./lib/dom4j-1.6.1.jar:./lib/commons-lang-2.4.jar:./lib/commons-logging-1.1.1.jar:./lib/fluent-hc-4.2.5.jar:./lib/httpclient-4.2.5.j
ar:./lib/httpclient-cache-4.2.5.jar:./lib/httpcore-4.2.4.jar:./lib/httpmime-4.2.5.jar:./lib/json-20080701.jar:./lib/jsoup-1.9.2.jar:./lib/json-lib-2.2.3-jdk15.jar:./lib/jxls-core-1.0.jar:./lib/statShare.jar:./
lib/log4j-1.2.17.jar $JAVA_OPTS main.StatBasicData &
18
註意:$JAVA_OPTS main.StatBasicData 這個是對應要啟動的類,這裏main.StatBasicData :main對應的是目錄,StatBasicData 對應的是目錄下的類名,StatBasicData .class中又有對應的main方法;
這裏.:./lib/commons-codec-1.6.jar …就是該程序運行所需要的jar包

stop.sp腳本
這裏寫圖片描述

內容如下:

!/bin/sh

NAME=StatShareDataProject
echo "—-Kill $NAME—-"
ID=ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk ‘{print $2}‘
echo $ID
for id in $ID
do
kill -9 $id
echo "kill $id"
done
echo "—-!!—-"
5、編寫完啟停腳本就可運行
這裏寫圖片描述

看到程序正常運行輸出的日誌便算程序部署成功了。

6、測試stop.sh
這裏寫圖片描述

7、配置定時任務
這裏寫圖片描述

觀察定時任務的執行結果

註意:
在配置定時任務時,出現了定時任務有執行但是程序並沒有運行,但是通過手動運行程序時程序卻可以正常運行,後來發現是腳本編寫的有問題。之前編寫的腳本是通過將整個程序打包成jar包這種方式來運行,發現定時任務執行不了這種方式的腳本才換用如上形式。
通過定時任務執行程序時nohup.out是不會有輸出的,手工執行才在nohup.out中有對應的輸出。

部署到Linux並配置Java定時任務