crontab定时运行java程序

在ubuntu下,要是某个程序定时运行,最常用的工具就是crontab,可以通过crontab来设置相隔多长时间执行一次,或者每小时、每天、每月的固定时间执行一次,具体的用法参照百度百科。下载记录了我使用crontab的过程中所遇到的问题以及解决方案。

问题描述:我用java写好了一个在网上抓取信息的程序,想设定每半个小时运行一次,并在程序中输出提示信息。

具体办法如下:

1、首先写一个可以运行该java程序的脚本(grabnews),由于在后面要通过crontab来运行这个脚本,由于crontab的特殊限制,要求脚本中用到的命令都要使用绝对路径。我的脚本代码如下:

#!/bin/sh
cd /root/hanpeng/CrawlingNews/bin
/usr/lib/jvm/java-6-sun-1.6.0.24/bin/java com.nsc.News.IncrementGrabNews >>/root/hanpeng/text

注意:这里面的java命令如果只写成java com.nsc.News.IncrementGrabNews的话,直接运行该脚本是可以的,但是放在cronfile中就会出错。

2、完成了执行java程序的脚本之后,要开始写crontab的执行文件了(这里命名为cronfile),cronfile内容如下:

*/30 * * * * /bin/sh /root/hanpeng/grabnews

这里面的意思是每个30分钟就通过sh命令执行grabnews脚本一次。(注意:最好都使用绝对路径,免得出错)

3、完成了以上两步之后,有时可能不能生效,这时要重启一下cron服务,然后再把cronfile加入到cron的管理进程中。

service cron stop
service cron start
crontab cronfile

 通过以上设置之后,就达到了每三十分钟抓取一次网页的目的。

猜你喜欢

转载自bithanpeng.iteye.com/blog/1273155
今日推荐