尝试运行编写JSON文件的cron作业时遇到错误。
这是我的节点文件中的代码:
var request = require('request');
var fs = require('fs');
var url = "file url";
request.get(url, function(err, response, data) {
if (err || response.statusCode != 200) {
console.log('Error: ' + err);
return;
}
var json = JSON.parse(data);
var processed_json = JSON.stringify(transformJSON(json));
fs.writeFile(__dirname + "/my_data.json", processed_json,
function(err) {
if (err) {
console.log(err);
}
});
});
cron作业给出的错误是:
{ [Error: EACCES, open '.../my_data.json']
errno: 3,
code: 'EACCES',
path: '.../my_data.json' }
我的crontab中的行是:
* * * * * node web_scripts/converter.js
非常感谢任何帮助!
答案 0 :(得分:2)
我在我的Mac(Mavericks)上测试了它,它适用于我。 crontab运行,我在脚本所在的文件夹中获取my_data.json。
最有可能的是,cron作业无权写入脚本所在的web_scripts
。您通常可以检查/ var / log / mail / $ YOURUSER以查看任何cron结果。
以下是我通常设置cron作业的方法:
touch ~/.crontab
vi ~/.crontab # add your cronjob
crontab ~/.crontab
现在您可以拖尾日志并确保它运行,然后检查邮件结果。同样,这听起来像权限问题。您也可以尝试临时写入路径,每个人都有完整的权限,例如/tmp
,而不是使用__dirname
解析路径。