linux下小程序部署

1、应用场景

使用java project写了一个小程序,需要部署在linux下自动定时执行

java工程目录:

linux下部署的结构

2、shell脚本

#!/bin/bash

BIN_PATH=/usr/local/work/timertask
EXE_NAMe=com.hu.demo.MonthSettle
#RUN_NAME=run_monthsettle.sh


CLASSPATH=$CLASSPATH:.:${BIN_PATH}/
for file in ${BIN_PATH}/lib/*;
do CLASSPATH=${CLASSPATH}:$file;
done

export CLASSPATH
echo $CLASSPATH

if [ -z $1 ]
then 
abc=`date -d last-month "+%Y-%m"`
else 
abc=$1
fi
if [-z $2]
then
carrier_code=''
else
carrier_code=$2
fi

echo $abc
echo $carrier_code

/usr/java/jre/bin/java $EXE_NAMe $abc $carrier_code

(1) PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac/java等工具了。 
(2)CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们 需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。 
(3)JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk

$PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值。

在shell中一般用环境变量CLASSPATH定义,你可以直接指定jar,也可以指定目录,jdk1.5以后可以指定目录时自动寻找所有的jar和zip,其中export命令用于设置环境变量,将变量导出为全局变量。

所以如果没有这一句则shell脚本只能与class包放在同一个路径下,不然无法执行。

3、配置对应的linux下的crontab 定时任务

(1)、crontab -e 编辑crontab,crontab -l 查看crontab


SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
#*/8 * * * * /usr/local/work/collection/run.sh >> /usr/local/work/collection/log.log

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值