有时候我们需要按照一定时间开启和关闭一个程序,比如定期抓取网页数据,但如果做循环的话你需要时时刻刻开启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时间格式

crontab

含有

0 1 * * *

每天早上1点

0 */1 * * *

每一个小时

0 1 2 3 *

3月2号1点0分

0 1 2 3-4 *

每年3月至4月的2号1点0分

10 1 * * 4,5

每周四周五早上1点10分