微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 crontab 调用时,heredoc 没有被重定向为 Phoenix sqlline 的输入

如何解决从 crontab 调用时,heredoc 没有被重定向为 Phoenix sqlline 的输入

我有一个 shell 脚本 (get_data.sh) 使用 heredoc 从 Apache Phoenix 服务器读取表的内容,然后将输出转储到 CSV 文件

#!/bin/sh

python <HOME>/bin/sqlline.py <<EndOfCommands
!outputformat csv
!record data.csv
SELECT * FROM <TABLE> LIMIT 10;
!record
!quit
EndOfCommands

当我显式调用该脚本时,它可以正常工作。它调用 sqlline.py,重定向 heredoc 中的命令,将 sql 查询的结果保存到 CSV 文件中:

$/.get_data.sh

但是如果我尝试从 crontab 调用脚本,日志表明“python /usr/hdp/current/phoenix-client/bin/sqlline.py”正在被调用,但内容在 heredoc 内(在 EnOfCommands 分隔符之间)永远不会作为输入重定向sqlline 的控制台。

对于以下方面的任何建议,我们将不胜感激:

  1. 从 cron 调用时如何解决与 heredoc 相关的这个问题?
  2. 或者是否有其他方法可以通过 cronjob 或类似方法将 Phoenix 命令的输出捕获到 CSV 文件中?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。