在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
?通过以上设置之后,就达到了每三十分钟抓取一次网页的目的。
?
?