从 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 (将#修改为@)