百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Linux中利用crontab创建R定时任务

liuian 2024-12-01 00:59 96 浏览

知识点

  • Linux crontab:周期性执行程序
  • R commandArgs 函数:传递R脚本参数
  • R 批处理

Linux crontab 语法

Linux crontab是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。

crontab -l:查看当前的定时执行任务列表

crontab -e:进入vi命令模式,编辑定时任务,表达格式如下:

minute  hour  day  month  week  command
  • minute:表示分钟,取值范围 0-59 的任何整数
  • hour:表示小时,取值范围 0-23 的任何整数
  • day:表示一个月中的第几天,取值范围 1-31 的任何整数
  • month:表示月份,取值范围 1-12 的任何整数
  • week:表示星期几,取值范围 0-7 的任何整数,星期天为0或者7
  • command:表示要执行的命令;
  • 星号(*)表示取值范围内的所有数字,如 minute 为 * 表示每分钟执行;
  • 中杠(-)表示一个整数范围,如 minute 为 a-b 表示从第 a 分钟到第 b 分钟每分钟执行;
  • 正斜杠(/n)表示每隔 n 长时间执行一次,如 minute 为 */n 表示每隔 n 分钟执行一次;
  • 逗号(,)表示分隔开多个值,如 minute 为 a, b,... 表示第 a, b,... 分钟执行;

示例:

# 每小时的第5分钟执行一次
5 * * * * command
# 每小时的第5和35分钟执行一次
5,35 * * * * command
# 每天早上9:30执行一次
30 9 * * * * command
# 12月份每天早上6:00、9:00、12:00各执行一次
0 6-12/3 * 12 * command

crontab -r:删除定时任务(慎用!在任务前写#作为注释即可取消定时任务

R commandArgs 函数

命令行传递的参数以向量的形式存储在commandArgs(TRUE) ,具体可通过 ?commandArgs 查看说明文档。

R 批处理

批处理:通俗讲地讲,就是编写R程序,然后通过命令方式执行。批处理模式运行R与使用的操作系统有关,以下是针对 Linux 系统。

R语言进行批处理有2种方式(推荐第一种,第二种无法传递参数,多数场景下都需要传递参数,比如日期):

  • /path/to/Rscript [–options] [-e expr [-e expr2 …] | file] [args] > outputfile
  • R CMD BATCH [options] infile [outfile]

其中,options的选项以及含义如下:

  • –slave:类似于–quiet,它禁止回送输入的信息,使R软件输出的信息更为简洁。
  • –no-restore:在R启动时不还原工作空间。对于希望以空白工作空间启动R的脚本而言,这个选项很有必要。
  • –no-save:在退出R时,不保存工作空间;否则,R会保存当前工作空间并覆盖原有工作目录中的.RData文件。
  • –no-init-file:不读取.Rprofile文件或者~/. Rprofile文件。

示例演示

Step 1. 创建R脚本

argv <- commandArgs(TRUE)

if (length(argv) == 0) {
  beg_date <- end_date <- format(Sys.Date(), "%Y%m%d")
} else if (length(argv) == 1) {
  beg_date <- end_date <- argv[1]
} else {
  beg_date <- argv[1]
  end_date <- argv[2]
}

cat("开始日期:", beg_date, sep = "")
cat("\n")
cat("结束日期:", end_date, sep = "")
cat("\n")

Step 2. 命令行手动执行

$ Rscript /home/xxx/test.R                      # 不传入参数
开始日期:20201013
结束日期:20201013
$ 
$ Rscript /home/xxx/test.R 20220222             # 传入一个参数
开始日期:20200901
结束日期:20200901
$ 
$ Rscript /home/xxx/test.R 20220221 20220222    # 传入两个参数
开始日期:20200901
结束日期:20200902

Step 3. 通过crontab设置定时任务

1. 输入 crontab -e

2. 按 i,进入编辑模式,编辑定时任务

# 每天早上9:30后台执行R脚本
30 9 * * * Rscript /home/xxx/test.R > /home/xxx/test.log 2>&1 &

3. 按esc,退出编辑模式

4. 输入 :wq 后回车,设置定时任务完成

其中:

  • 2>&1:表示将标准错误重定向到标准输出到log文件,日志保存便于排查问题;
  • &:表示在后台运行;

相关推荐

设置无线网密码步骤(如何设置无线网络wifi密码)

首先使用已经连接到网络的手机或电脑,在浏览器地址栏输入192.168.1.1或者192.168.0.1;输入管理员账号和密码,两个一般都是输入admin;点击【无线设置】,进入【安全选项】,在输入旧密...

下载优酷官方正版(下载优酷官方正版网站)

您好,直接打开浏览器或者打开手机的应用商城,然后输入该软件的名称然后搜索即可在搜索结果中下载安装即可,也可以下载一个市场类软件,常见的有安卓市场,机锋市场等,之后使用此款软件下载其他程序。优酷视频...

iso文件安装器(iso安装程序)

不能。苹果手机是不能安装apk格式软件的,apk是安卓系统的安装包格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把androidsdk...

台式电脑重装系统按哪个键进入
台式电脑重装系统按哪个键进入

不同品牌的设备按键是不同的1、如果原来电脑装一键还原软件,装系统时直接在启动画面选择重新恢复系统项即可;2、如需启动光盘或者优盘来重装系统,需要开机按启动热键,选择对应的按键即可调出启动菜单选择界面,在菜单中选择优盘或光驱,按回车,按提示进...

2025-12-22 17:55 liuian

戴尔笔记本电脑一开机就蓝屏

笔记本蓝屏可能是电脑硬盘故障,可以更换一个硬盘尝试。也可能是更新了驱动与修复漏洞补丁,可以进入安全模式将更新的驱动删除。有可能是内存条故障,可以把内存条取下来,用橡皮擦轻轻擦拭金手指,然后用毛刷将内存...

优酷路由宝怎么设置(优酷路由宝怎么设置网络)

无线连接如果准备用手机、笔记本电脑来设置优酷路由宝,需要先把WAN口,连接宽带网线(宽带猫、光猫);然后手机/笔记本电脑搜索连接到优酷路由宝的WiFi。优酷路由宝的默认WiFi名称是:Youku_开...

一键装机软件大全(一键装机下载)

1一键装机工具是一种自动化安装计算机操作系统以及常用软件的工具。2使用一键装机工具,需要先准备好需要安装的操作系统镜像和需要安装的软件列表,然后将它们放在一键装机工具所指定的位置。接下来,打开一键...

home键是什么意思苹果手机(home键是苹果手机哪个键)

就是手机屏幕正下方的那个圆形的按钮,就是苹果手机的home键,home键的作用比较大,可以用来设置指纹解锁,单机home键可以返回主屏幕界面,双击home键可以弹出后台应用程序可以进行清楚,还可以通过...

tplink说明书图片(tp-link路由器说明书步骤图)

第一步连接路由器WIFI在手机获取IP地址里找到路由器网关地址,第二步在浏览器地址栏输入路由器网关地址,之后会跳转到路由器管理员登录界面,输入账号密码就可以进入路由后台管理路由,如果提示路由器密码错误...

如何不安装flash玩4399(现在4399不提供flash如何玩游戏)

没有flash是玩不了的,需要开启flash才可以。1、首先打开浏览器,进入4399的游戏页面。2、进入游戏页面后,点击【已被屏蔽】文字。3、然后右上角会出现窗口,点击【管理】按钮。4、进入管理页面后...

chrome download apk(chromedownloadapk in english)

手机下载安装的第三方应用出现问题,无法正常使用,建议按照以下方法操作:1.关闭重新启动该应用。2.建议将此软件卸载重新安装尝试。3.更换其他版本尝试。4.更新下手机系统版本后安装尝试5.备份手机数据(...

qq空间官网手机登录网页版(qq空间官网登陆入口)
qq空间官网手机登录网页版(qq空间官网登陆入口)

z.qq.com可以通过以下方式登录手机QQ空间:1、使用手机登录手机腾讯网3g.qq.com,点击“空间”,根据提示QQ号码和QQ密码就可以登录;2、通过手机直接输入手机QQ空间网址z.qq.com,根据提示操作即可登录;3、下载手机Q...

2025-12-22 13:55 liuian

windows11我的电脑在哪里打开

1/6通过“开始”进入“设置”-“时间和语言”。2/6在“时间和语言”界面选择“区域”3/6这里我们将区域更改位“新加披”,退出。4/6打开微软自带的市场,搜索“你的手机”获取并下载。5/6安装完成后...

win10怎么取消开机自启动(win10如何关闭开机自动启动)

要关闭Windows10的开机自动启动程序,你可以按下Win+R键,输入"msconfig"并按回车键打开系统配置工具。在"启动"选项卡中,你可以看到所有开机自动...

手机cpu排名2025(手机cpu排名榜)

一、2022手机CPU性能综合排名前八名手机CPU:1、型号:苹果A16---综合分数:暂无2、型号:骁龙8gen1---综合分数:42333、联发科天玑9000---综合分数:38724、...