如何在crontab中运行BQ命令

3

我尝试使用BQ命令行将CSV文件导入到Bigquery中,在bash脚本中可以正常工作。但是当我尝试使用crontab运行此脚本时,会出现错误消息,提示“bq:找不到命令”

以下是我的脚本:

#!/bin/bash
bq load --field_delimiter=";" --source_format=CSV.....

当我从shell运行这个脚本时,它可以正常工作。

这是定时任务。

* * * * * /users/user/desktop/test.sh

为什么在定时任务中它不能正常工作?


1
在您的终端中运行 which bq,然后将您发现的完整路径添加到您的脚本中。请记住,您的 cron 作业没有像您一样进行交互式登录,因此其 PATH 可能与您的终端会话设置不同。 - Mark Setchell
我添加了“PATH=/Users/user/...../google-cloud-sdk/bin/bq”,终端已经发现了它,但仍然出现相同的结果:“bq: command not found”。 - Umutcan Pense
PATH 必须描述包含您的程序的目录,而不是单个程序的路径。请删除末尾的 /bq - Mark Setchell
1
工作了!非常感谢!! - Umutcan Pense
@MarkSetchell,您能否将您最后一条消息发布为答案?以供社区日后参考。 - Mangu
@Mangu 我认为有数百个类似的crontab问题由于PATH而失败。问题更多的是社区并不总是关注这个问题,因此没有提供足够的解决方案。 - Mark Setchell
1个回答

1
你的 PATH 变量必须描述包含你的程序的目录,而不是单个程序的路径。
在这种情况下,它应该是 ../google-cloud-sdk/bin 而不是 ../google-cloud-sdk/bin/bq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接