由于业务需要,需要定时调用一个java的程序。按照如下的步骤配置。
1,配置 java环境变量 JAVA_HOME,PATH,CLASSPATH,这个不用多说,网上都有。
2,crontab -e
*/1 * * * * /bin/sh /data/hm-solr/bin/solr-create-new.sh
3,脚本如下 solr-create-new.sh
#!/bin/bash
./etc/profile
/usr/java/jdk1.6.0_38/bin/java Test >> /data/hm-solr/bin/hm-create.log
但是,开始的时候怎么,都不运行,网上查了各种问题,就是不运行,可气的是,也不输出任何信息。最后找到原因,原来是linux的标准输出流的问题。linux流有如下定义
linux流的定义: 0 标准输入,1 标准输出,2 标准错误。 2>&1 即将标准错误流指向标准输出流
于是把脚本改为
#!/bin/bash
./etc/profile
/usr/java/jdk1.6.0_38/bin/java Test >> /data/hm-solr/bin/hm-create.log 2>&1
于是重要看到,输出到 hm-create.log的错误信息了,原来是没找到 Test类,所以把程序改为 ,搞定
#!/bin/bash
./etc/profile
cd /data/hm-solr/bin/
/usr/java/jdk1.6.0_38/bin/java Test >> /data/hm-solr/bin/hm-create.log 2>&1