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