...
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash # # Script to e-mail the output of an SQL query # Dick Visser <visser@terena.org> 20120214 # $Id: pgmailcsv 191192 2012-02-1617 2210:3418:21Z27Z visser $ if [ $# -ne 3 ]; then echo "FAIL!!!!Error... This script needs exactly THREE arguments: 1. Database name 2. E-mail address 3. SQL query, surrounded by DOUBLE QUOTES Quitting... Example: $0 tnc2012 webmaster@terena.org \"SELECT fname FROM users\" Long or complicated queries can be stored in an SQL text file: $0 tnc2012 webmaster@terena.org \"\`cat complicated.sql\`\" " exit else OUTFILE="/tmp/PostgreSQL_Output_`date``date +%F_%Hh%Mm%Ss`.csv" touch "$OUTFILE" # LATIN1 is needed, UTF8 borks out on CSV psql "$1" -Atc "COPY ($3) to '$OUTFILE' WITH CSV HEADER" echo -en " Please \nPlease find attached the CSV formatted results of this SQL query to the '$1' database: \n $3\n $1 " | mutt -a "$OUTFILE" -s "PostgreSQL query results from '$1'" -- "$2" rm "$OUTFILE" fi |
For this work, you need enough privileges, so su to user postgres before running this.
...