linux下定时自动执行某个进程
最近在学习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