Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用LinuxBashshell为CRON作业设置目录以使用R脚本收集数据_R_Linux_Windows_Bash_Cron - Fatal编程技术网

使用LinuxBashshell为CRON作业设置目录以使用R脚本收集数据

使用LinuxBashshell为CRON作业设置目录以使用R脚本收集数据,r,linux,windows,bash,cron,R,Linux,Windows,Bash,Cron,我在使用Linux bash shell作为Windows 10的子系统设置CRON作业时遇到困难。这个想法是使用一个简单的R脚本从Twitter收集数据 首先,我在crontab中设置了一个作业。我尝试了几种方法来编写我的Rscript目录和我想保存推文的目录。这里有一些例子: * * * * 7 /mnt/c/Users/XXXX/Documents/Twitter/collect.R * * * * 7 cd /mnt/c/Users/XXXX/Documents/Twitter; R

我在使用Linux bash shell作为Windows 10的子系统设置CRON作业时遇到困难。这个想法是使用一个简单的R脚本从Twitter收集数据

首先,我在crontab中设置了一个作业。我尝试了几种方法来编写我的Rscript目录和我想保存推文的目录。这里有一些例子:

* * * * 7  /mnt/c/Users/XXXX/Documents/Twitter/collect.R
* * * * 7  cd /mnt/c/Users/XXXX/Documents/Twitter; Rscript collect.R
在R脚本中,我使用的第一行代码是:

#!/usr/bin/env Rscript
然后,R脚本包含我用来收集tweet的几行代码(这段代码运行良好)

之后,我使用一段代码来存储我的推文:

# Specify dir (I have tried several ways to write this)
dirPath <- "C:\\Users\\XXXX\\Documents\\Twitter"

# Create dir for storage
if(!dir.exists(paste0(dirPath, "tweets/"))){
  dir.create("tweets/")
}

# Write csv with date
save_as_csv(newTweets, paste0(dirPath, "tweets/", Sys.Date(), ".csv"),
            prepend_ids = TRUE, na = "",
            fileEncoding = "UTF-8")
2020年5月25日第25版

  • 正如其中一位用户所建议的,问题可能与shebang有关,因此我在文件夹名称中引用了空格。这不管用

  • 我还认为问题可能是R没有导出到linux路径,所以我将环境添加到
    /usr/bin/env
    。现在可以从两个不同的路径访问Rscript。现在,我更改了Rscript的shebang:

    #/usr/bin/env Rscript

  • 我已经测试了手动执行脚本时脚本是否正在运行。结果是:

  • 当我执行
    /mnt/c/Users/XXXX/Documents/Twitter/collect.R
    时,shebang就是
    #/usr/bin/env Rscript
    shell中的结果是:

    /usr/bin/env: 'Rscript': No such file or directory
    
    如果我键入
    #/将usr/bin/env Rscript.exe
    改为shebang。我获得:

    致命错误:无法打开文件/mnt/c/Users/XXXX/Documents/Twitter/collect。R:权限被拒绝

    考虑到这一点,我已经开始做
    sudovisudo
    ,然后添加行
    mysuername ALL=(root)NOPASSWD:/mnt/c/Users/XXXX/Documents/Twitter
    以下#用户权限规范。保存的更改

    错误仍然存在

    第二版

  • 检查文件系统:命令
    df-h

  • 我非常感谢你的帮助

    干杯@alecxs。我也在尝试这个
    #/mnt/c/Program Files/R/R-3.6.2/bin Rscript
    并且似乎不起作用。我失踪了something@pyring你能给我们提供日程安排日期吗?谢谢@Mahmoud Odeh当然,我现在用
    58 17**7
    来测试它。(英国时间,根据我的shell,这也是我的计算机时间。我猜被拒绝的权限是因为Rscript.exe仅适用于windows-您是否有另一个不带文件扩展名的Rscript二进制文件(适用于linux)?不幸的是,我从未使用过RTH。这是@alecxs的问题。谢谢你的帮助。干杯@alecxs。我也在尝试这个
    !/mnt/c/Program Files/R/R-3.6.2/bin Rscript
    ,似乎不起作用。我失踪了something@pyring你能给我们提供日程安排日期吗?谢谢@Mahmoud Odeh当然,我现在正在使用
    58 17**7
    进行测试。(英国时间,根据我的shell,这也是我的计算机时间。我猜被拒绝的权限是因为Rscript.exe仅适用于windows-您是否有另一个不带文件扩展名的Rscript二进制文件(适用于linux)?不幸的是,我从未使用过RTH这是@alecxs的问题。谢谢您的帮助。
    /usr/bin/env: 'Rscript': No such file or directory