gpt4 book ai didi

Shell 脚本从 CLI 运行,但不是从 Crontab

转载 作者:行者123 更新时间:2023-12-04 05:06:24 25 4
gpt4 key购买 nike

我有一个 shell 脚本,它遍历目录中的每个 JSon 文件并使用 phantomJS 创建一个 highchart png。

当安排一个 cron 任务来运行这个脚本时,问题就出现了——(最初我使用了 inotifywait 但得到了同样的错误)。

shell 脚本如下所示:

#!/bin/sh
for i in *.json; do
filename="${i%.*}"
phantomjs /var/www/highcharts.com/exporting-server/phantomjs/highcharts-convert.js -infile $i -outfile img/$filename.png -scale 2.5 -width 300 -constr Chart -callback /var/www/highcharts.com/exporting-server/phantomjs/callback.js
done

cron 任务如下所示:
* * * * * /var/www/highcharts.com/exporting-server/phantomjs/test/createGraphs.sh >> /var/www/highcharts.com/exporting-server/phantomjs/highcharts.log

在日志文件中,我收到错误:

“无法打开文件 '*.json'”

从命令行运行时,shell 脚本运行良好,但在尝试安排它时出现问题。

最佳答案

Cron 在你的主目录中运行你的命令。我假设 json 文件不在您的主目录中,因此您的脚本因该错误而失败。

将您的 cron 作业更改为 cd 到目录:

* * * * * cd /path/to/json && /var/www/highcharts.com/exporting-server/phantomjs/test/createGraphs.sh >> /var/www/highcharts.com/exporting-server/phantomjs/highcharts.log

或者在脚本中指定 json 文件的路径:
#!/bin/sh
for i in /path/to/json/*.json; do
filename="${i%.*}"
phantomjs /var/www/highcharts.com/exporting-server/phantomjs/highcharts-convert.js -infile $i -outfile img/$filename.png -scale 2.5 -width 300 -constr Chart -callback /var/www/highcharts.com/exporting-server/phantomjs/callback.js
done

关于Shell 脚本从 CLI 运行,但不是从 Crontab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15495657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com