Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
themeMidnight
languagebash
#!/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.

...