有时候我们需要按照一定时间开启和关闭一个程序,比如定期抓取网页数据,但如果做循环的话你需要时时刻刻开启R,为了节省内存,我们需要定时开启R,执行脚本,关闭R,这样一个循环,这就要用到cron。
#首先安装crontabs yum -y install vixie-cron yum -y install crontabs
复制代码说明:
vixie-cron 软件包是 cron 的主程序;
crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置 service crond status //查看crontab服务状态 crontab -l #查看当前用户的定时任务 crontab -e #编辑当前用户的定时任务 crontab -r #删除当前用户的所有定时任务
#修改crontab文本设置脚本执行的时间
vim /etc/crontab
上面是要在linux里执行修改crontab文件,把下面的内容加在crontab的最后,按:wq保存
*/1 * * * * Rscript /home/liaowen/test1.R
上面*/1表示每隔1分钟跑一次,跑的文本test1.R放在 /home/liaowen/test1.R文件路径下。
crontab 的语句是“分 时 日 月 周 命令”(之间有空格,如果多个月份,用逗号隔开,两个月份间的用“-”隔开),如果只限定分,时,其余的三个选项要用*(星号)补全.查看有没有其他错误,比如少了一个*(星号),或者多了一个时间等。
前面五颗星分别代表分钟、小时、日、月、周,例如我要在每周六的12点13分跑这个程序:
13 12 * * 6 Rscript /home/liaowen/test1.R */1 * * * * Rscript /home/liaowen/Dailytracking.R > /tmp/load.log 2>&1 &
在CentOS系统中加入开机自动启动:
chkconfig --level 345 crond on
将正确和错误日志都输出到 /tmp/load.log
*/1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1 &
crontab时间格式