【问题标题】:Syntax for running Octave script by Crontab通过 Crontab 运行 Octave 脚本的语法
【发布时间】:2020-04-07 00:31:03
【问题描述】:

一个基本的 Octave 测试脚本,check_octave_crontab.m,是

## create some data
cd /path/to/the/required/octave/directory
x = [ 1 2 3 4 5 6 7 8 9 ] ;
dlmwrite( 'crontab_test_file' , x ) ;

而 cronjob 是

2,22,42 * * * 1-5 /usr/local/bin/octave '/home/path/to/this/octave/script/check_octave_crontab.m'

但没有绘制任何情节。

/usr/local/bin/octave 是一个共享库,它指向一个 octave-5.1.0 共享库,它是我安装的从源代码编译的 Octave 版本。我需要在 crontab 中进行哪些更改?

【问题讨论】:

    标签: cron octave


    【解决方案1】:

    这是因为在这种情况下没有 DISPLAY。我使用 crontab 运行我的脚本

    xvfb-run -e /dev/stdout -a --server-args "-screen 0 1920x1080x24" /usr/local/bin/octave myscript.m
    

    【讨论】:

    • 我给出的函数只是一个例子。我的预期用途是从网络下载数据并附加到光盘上已经存在的文件中,而不实际绘制任何内容。
    • 你为什么要问一个问题,你显然会说“但没有绘制情节”,然后,它甚至不是你的意图生成情节?
    • 我已经接受了您的暗示批评,并更改了我的基本 Octave 测试脚本以更准确地反映我想要做的事情,现在给定的 crontab 工作正在运行。如果没有您的批评,我不会意识到我对测试函数的天真选择是问题所在,而不是 crontab 语法。因此,我接受了这个答案。谢谢!
    • 感谢您的回复和愿意学习的蜜蜂。第一次使用 cronjobs 的用户的典型问题是他们不明白他们的环境变量完全不同(没有 DISPLAY,没有用户等等)
    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 2021-07-29
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 2014-04-17
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多