Linux - 利用crontab通过.sh定时运行R脚本

2 篇文章 0 订阅

Linux - 利用crontab通过.sh定时运行R脚本

该教程在Mac OS环境下运行.
为方便起见,我们的所有文件都放在桌面上.

目录

一些定义

首先给出一些定义

什么是Shell
:

命令解析器. 接收用户命令,然后调用相应的应用程序.

什么是crontab
:
> 命令解析器. crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。

1. 创建R脚本

打开RStudio,shift+command+N,可新建一个新的R脚本.
保存该脚本为test.R到桌面.
在脚本中输入

write.table("Hello R!", "~/Desktop/HelloR.txt")

command+return 运行该命令.
该命令的作用是生成一个名为 HelloR.txt 内容为 “Hello R!” 的txt文件到桌面.

2. 创建Shell(.sh)文件

打开终端,在终端中输入

cd ~/Desktop

该命令的作用是进入名为Desktop的文件夹(就是将当前路径变为桌面).
继续在终端中输入

touch test.sh

便可以建立一个名为 test.sh 的Shell文件.
为编辑 test.sh,在终端中输入

vi test.sh

进入 test.sh 编辑界面。
按 i 键编辑,并输入

# !/bin/bash
Rscript ~/Desktop/test.R
date +%Y%m%d

第一行命令为固定格式.
第二行命令为运行之前创建的 test.R 脚本.
第三行命令为输出当前时间.

输入完成之后按Esc,继续输入

:wq

便可保存该 .sh 文件.
或者输入

:q!

则为不保存退出 .sh 文件.

若要运行test.sh文件,来到.sh文件所在的文件夹(此处我们来到桌面)

cd ~/Desktop

并输入

./test.sh

即可运行test.sh文件.

3. 创建定时任务 crontab

输入

crontab -e

创建/编辑现有crontab任务,进入编辑界面后按i键进行编辑,输入

*/1 * * * * ~/Desktop/test.sh

代表每分钟运行一次我们之前创建的test.sh文件. 路径之前的五个位置分别代表
分钟、小时、日期、月份 和 星期. 具体语法请参照另一篇专门讲crontab的博客.

输入完成之后依然是按Esc,然后输入

:wq

进行保存并退出.

然后我们就可以回到桌面盯着看,一分钟后就会出现一个 HelloR.txt 文件. 删除之后,再过一分钟,又会出现一个 HelloR.txt 文件… 直至天荒地老. 其他程序同理,比如你每小时有一个矩阵要解,就可以写一个计算解矩阵的R程序然后每小时运行一次.

4. 一些其他事项

有时候你可以手动执行.sh文件却不能用crontab执行,这时在.sh文件的最前面加上

source ~/.bash_profile

即可解决问题.

若要删除某个特定的定时任务, 输入

crontab -e

并删除相应的行即可.

若要删除所有定时任务, 输入

crontab -r

不过要慎用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值