如何将Vertica vsql的Notice、Hint及内存日志输出至文件
Vertica vsql 全输出内容保存方案
默认情况下,vsql的-o参数仅捕获标准输出(stdout),而NOTICE、HINT及内存相关提示属于**标准错误(stderr)**输出,因此不会被写入指定的sample.log文件。要将所有输出内容统一保存到同一个文件,可通过以下方式实现:
合并标准输出与标准错误流
直接修改命令,将stderr重定向至stdout,再统一写入文件:
/opt/vertica/bin/vsql -U xxxx -d Xxxx --password='xxxx' --timing -c 'profile xxxxxxxxxxxxxx' > sample.log 2>&1
>:将标准输出(查询结果、计时信息)写入sample.log2>&1:将标准错误(NOTICE、HINT等提示)重定向至标准输出流,实现所有内容合并写入
保留-o参数的写法
如果习惯用-o指定输出文件,只需在命令末尾追加stderr重定向规则即可:
/opt/vertica/bin/vsql -U xxxx -d Xxxx --password='xxxx' --timing -c 'profile xxxxxxxxxxxxxx' -o sample.log 2>&1
安全提示
命令行明文输入密码存在泄露风险,建议通过以下方式替代:
- 设置环境变量:
export VSQL_PASSWORD='xxxx',执行vsql时无需指定--password参数 - 在
~/.vsqlrc文件中配置登录信息,避免命令行暴露敏感内容
内容的提问来源于stack exchange,提问作者srijan chakraborty
相关产品推荐
相关产品推荐

