linux - 从 cron 运行一个 casper.js 脚本

标签 linux cron casperjs

我正在尝试通过 cron 运行 casper.js 脚本。当我手动运行脚本时一切正常,但是当我通过 cron 运行它时出现以下错误:

Traceback (most recent call last):
 File "/usr/local/bin/casperjs", line 46, in <module>
   status = subprocess.call(CASPER_COMMAND)
 File "/usr/lib/python2.6/subprocess.py", line 480, in call
   return Popen(*popenargs, **kwargs).wait()
 File "/usr/lib/python2.6/subprocess.py", line 633, in __init__
   errread, errwrite)
 File "/usr/lib/python2.6/subprocess.py", line 1139, in _execute_child
   raise child_exception
OSError: [Errno 2] No such file or directory

我的 crontab 条目是:

30 9 * * */usr/local/bin/casperjs lib/fsaupload.js arg1 arg2 arg3

我也试过

30 9 * * * python/usr/local/bin/casperjs lib/fsaupload.js arg1 arg2 arg3

这给了我相同的结果。有任何想法吗?我猜这可能是一个 path 问题,但不知道从哪里开始!

最佳答案

您可能应该使用您的 casper 脚本的绝对路径,例如:

30 9 * * * /usr/local/bin/casperjs /absolute/path/to/lib/fsaupload.js arg1 arg2 arg3

我的两分钱。

编辑:

好吧,这有点傻。您还可以通过设置 PHANTOMJS_EXECUTABLE 环境变量来设置 phantomjs 可执行文件的自定义路径:

$ export PHANTOMJS_EXECUTABLE="/path/to/phantomjs"

然后照常运行脚本:

/usr/local/bin/casperjs /absolute/path/to/lib/fsaupload.js arg1 arg2 arg3

提示:如果您的 crontab 以另一个用户身份运行,请检查它是否有权访问 phantomjs 路径。

希望它有所帮助(并且有效)。

重新编辑

等等,您得到的堆栈跟踪表明您使用的是旧版本的 CasperJS(例如,不再使用 subprocess 模块)。试试更新的版本:)

关于linux - 从 cron 运行一个 casper.js 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705418/

相关文章:

javascript - 传递参数(如变量)以在 casperjs 中进行评估并登录站点

c - ncurses 是在 linux 的 C 程序中实现命令历史记录的好选择吗

linux - linux 在终止进程时是否释放自旋锁/信号量?

cron - 如何创建 cron 语句以运行多个小时

php - 如何在 Yii2 的控制台 Controller 中使用模型?

javascript - 如何使用 phantomjs/casperjs 处理下载?

linux - 链接期间未找到符号

c++ - 为什么我的 linux 信号处理程序只运行一次

Azure定时器触发器: Cron expression for every hour on the hour

javascript - casper评估修改全局变量