我有 shell 脚本,它将使用 psql 命令将数据插入 Redshift/Postgres 数据库,并且我使用 > 捕获脚本输出。它捕获所有内容,但不捕获插入的行数。当我在屏幕上手动运行脚本时,我可以看到插入的行,但当我将输出附加到文件时却看不到。
目前我得到 -
TRUNCATE TABLE and COMMIT TRANSACTION
COPY
预期产出-
TRUNCATE TABLE and COMMIT TRANSACTION
INFO: Load into table 'tablename' completed, 568 record(s) loaded successfully.
COPY
从我的脚本插入的命令 -
psql -w -U uname -h dbhost db --port 1234 -c "COPY tablename FROM 's3://bucket1/tablename.json' credentials 'aws_access_key_id=' format as json 'auto';"
答案1
您只是重定向stdout
,但该消息正在打印到stderr
.
要解决此问题,请通过附加. 将stderr
( )的输出重定向2
到stdout
( ) 。1
2>&1
psql -w -U uname -h dbhost db --port 1234 \
-c "COPY tablename FROM 's3://bucket1/tablename.json' credentials 'aws_access_key_id=' format as json 'auto';" \
2>&1 > /path/to/log