一,打包java项目。
1、 在MyEclipse中将java程序运行一遍得到class文件后,右键点击dbtodb工程,选择Export:点击next:
在JAR file :选择jar包存放的路径及jar包名字,点击finish。Jar包导出完成。
2.在c盘找到刚导出的jar包,我们将jar包放到一个dbtodb的文件夹下,打开jar包:
打开META-INF:
这里将MANIFEST.MF解压出来,然后对其进行配置,内容如下:
Manifest-Version:1.0
Main-Class:caic.dbtodb 指定程序运行的入口类,例如本程序内运行的main()在dbtodb.class中,配置为:包名.类名。
注意:类名后不要加class扩展名
Class-Path: ./lib/ojdbc14.jar./lib/postgresql-8.4-701.jdbc3.jar ./lib/jdom.jar
这里配置的是程序所用到的jar包,我们将所用到的jar包放到dbtodb.jar同目录下得lib文件夹下,如图:
配置完成后。由于jar包读取xml文件和java程序读取xml文件的路径有所不同,本程序读取xml文件是用SAXbuilder实现,所以将xml配置文件放到dbtodb.jar的同目录下就可以读取到,如图:
到此导出jar包及配置完成。
二,linux下面的shell脚本。
1. 在dbtodb文件夹下新建一个ftpcounter.sh,脚本内容为 ,我要执行的是FtpCounter.jar。
#!/bin/bash
#导入环境变量
export LANG="en_US.UTF-8"
export JAVA_HOME=/usr/javak1.6.0_31
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
FTP_HOME=/opt/ftpcounter
sed -i "/OVER/ s/=.*/=0/g" $CONFIG
cd $FTP_HOME
java -jar $FTP_HOME/recommend2_2014_11_5.jar && echo "执行recommend2_2014_11_5.jar完成!" && sed -i "/OVER/ s/=.*/=1/g" $CONFIG || echo "执行FtpCounter.jar失败!"
echo "【`date +%Y-%m-%d_%H:%M:%S`】统计程序运行完毕,等待下次执行."
3.对dbtodb.sh赋权限,具体操作如下:
[root@bidev /]# cd /usr/dbtodb
[root@bidev dbtodb]# chmod 777 dbtodb.sh
4.由于Windows于linux编码格式不同,需要对dbtodb.sh进行编码转换,具体操作如下:
[root@bidev dbtodb]# dos2unix dbtodb.sh
dos2unix: converting file dbtodb.sh to UNIX format ...
三,监控程序。
在linux下面执行java程序的时候有时候会莫名其妙的自动停止,下面我加了一个监控脚本。叫作ftpcounterwatch.sh。
#!/bin/bash
pidfile=/tmp/scoreCacl.pid
if [ -e $pidfile ]
then
pid=`cat $pidfile`
pid_ps=`ps -ef|grep $pid|awk '{ print $2 }'`
for apid in $pid_ps
do
if [ $apid -eq $pid ]
then
exit
fi
done
fi
echo $$ >$pidfile
#导入环境变量
export LANG="en_US.UTF-8"
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
cd java
java -jar recommend2.jar && echo "!!!!!!!"
echo "【`date +%Y-%m-%d_%H:%M:%S`】统计程序运行完毕,等待下次执行."
rm -f $pidfile
四,定时器的设置。
1.在控制台上输入以下命令
crontab -e
2.按i键编辑这个文本文件,输入以下内容,每天凌晨2:00执行该任务并将任务日志输入到/usr/dbtodb/log.txt
00 02 * * * /usr/dbtodb/dbtodb.sh &>/usr/dbtodb/log.txt
按esc键退出编辑,输入wq回车保存
3.启动定时服务
[root@]# service crond stop
[root@]# service crond start