博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

linux下定时自动执行某个进程

Posted on 2009-09-16 14:36  Sunny Xu  阅读(570)  评论(0编辑  收藏  举报
最近在学习nutch,想让它每天自动去抓取我们学校的网站内容。cron正是解决这个问题的工具。
cron是linux下定时执行工具,可在完全无人工干预的情况下作业。可以用一下命令来手动开启或关闭该任务:
/sbin/service crond start 启动服务
/sbin/service crond stop 关闭服务
/sbin/service crond restart 重新启动服务
/sbin/service crond reload 重新加载服务

cron 配置计划任务的书写格式:
分钟 小时 日  月  周   [用户名]  命令
说明
第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59
第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23
第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31
第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12
第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。
每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;
第七段应该定义的是:执行的命令和参数。

在系统中,/etc目录下,有cron.daily,cron.hourly,cron.monthly,cron.weekly文件目录,我们只需要在相应目录下添加写好的shell文件就可以自动定时执行。
如我希望nutch能在每天早晨9点0分开始自动抓取,可以这样实现:
[root@localhost cron.daily]# touch autonutch.sh
[root@localhost cron.daily]# chmod 755 autonutch.sh /*改变autonutch.sh的访问权限*/
[root@localhost cron.daily]# echo "/home/sunny/nutch/bin/nutch crawl urls -dir crawl" > autonutch.sh
[root@localhost cron.daily]# more autonutch.sh
/home/sunny/nutch/bin/nutch crawl urls -dir crawl

参考文章:http://www.linuxsir.org/main/?q=node/209