从 cron 选项卡中找不到 snowsql

Posted

技术标签:

【中文标题】从 cron 选项卡中找不到 snowsql【英文标题】:snowsql not found from cron tab 【发布时间】:2019-02-06 13:49:21 【问题描述】:

我正在尝试从我用 cron 作业安排的 shell 脚本执行 snowsql。但我收到了类似 snowsql: command not found 的错误。

我浏览了许多链接,他们要求我们提供雪花的完整路径。我也试过了,但没有运气。 https://support.snowflake.net/s/question/0D50Z00007ZBOZnSAP/snowsql-through-shell-script。下面是我的代码 sn-p abc.sh:

#!/bin/bash
set -x
 snowsql --config /home/basant.jain/snowsql_config.conf \
-D cust_name=mean \
-D feed_nm=lbl \
-o exit_on_error=true \
-o timing=false \
-o friendly=false \
-o output_format=csv \
-o header=false  \
-o variable_substitution=True \
-q 'select count(*) from table_name'  

我的 crontab 如下所示:*/1 * * * * /home/basant.jain/abc.sh

【问题讨论】:

【参考方案1】:

Cron 不像您的登录 shell 那样设置 PATH

正如您在问题中已经写的那样,您可以指定snowsql 的完整路径,例如

#!/bin/bash
/path/to/snowsql --config /home/basant.jain/snowsql_config.conf \
...

注意:/path/to/snowsql 只是一个示例。当然你应该找出snowsql的真实路径,例如使用type snowsql

或者您可以尝试获取/etc/profile。也许这会设置PATH 来调用snowsql

#!/bin/bash
. /etc/profile
snowsql --config /home/basant.jain/snowsql_config.conf \
...

见How to get CRON to call in the correct PATHs

【讨论】:

我检查过但没有帮助 @BasantJain 你到底“检查”了什么? 我正在指定完整路径,例如 #!/bin/bash /path/to/snowsql --config /home/basant.jain/snowsql_config.conf \ 但它仍然在说 /path/to /snowsql 未找到 @BasantJain 我添加了一个说明。我不知道snowsql的正确路径。 我在我的玉米标签中添加了以下两行,效果很好。 SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 感谢帮助

以上是关于从 cron 选项卡中找不到 snowsql的主要内容,如果未能解决你的问题,请参考以下文章

防止事件更改选项卡

在混合中找不到“状态”选项卡

使用带有选项卡布局的自定义视图时无法从选项卡中删除填充

如何从 Ext js 中的选项卡中删除活动选项卡?

在标签布局中看不到我的cardView

在未选择的选项卡中从片段调用方法