Re: scripting & psql issues - Mailing list pgsql-general

From Christopher Browne
Subject Re: scripting & psql issues
Date
Msg-id m38yccuriw.fsf@wolfe.cbbrowne.com
Whole thread Raw
In response to scripting & psql issues  (Dino Vliet <dino_vliet@yahoo.com>)
Responses Re: scripting & psql issues  (Alvaro Herrera <alvherre@dcc.uchile.cl>)
List pgsql-general
The world rejoiced as dino_vliet@yahoo.com (Dino Vliet) wrote:
> Hi folks,
> probably this is a question you've heard so many times
> but I wasn't able to find a solution to it.
>
> I'm using a shell script to create a textfile for me.
> It looks like
> #!/usr/local/bin/bash
> psql -c "select foo from bar;" -d database1 -t
> psql -c "\q" -d database1
> exit 0
>
> The second psql -c "\q" command is used to logout from
> the first database. But I'm not sure whether this is
> correct. How do I mix these sql and psql meta-commands
> otherwise if I want to be able to use myscript >
> output.txt to get the output from this select
> statement in the file output.txt. I'm planning to
> write a cron job for it too.

You oughtn't need to put in the explicit quit, "\q"; the "^D" that
occurs at the end of the input stream would close things out nicely.

> Another issues is passwords. Normally when I log onto
> database1, I have to issue a password because only the
> superuser is trusted in the pg_hba.conf file. However
> for scripts that I want to be able to run in the
> background like this one, I had to add an entry to the
> pg_hba.conf file to trust this user also. But as from
> security point of view, I'm wondering if this is the
> best way to achieve it.

Check the docs for information on the "care and feeding" of .pgpass.
You can put authentication information into $HOME/.pgpass and anything
running using libpq will automatically look there.

The passwords sit there in plain text form; it might be nice to use
some encoded form (similar to the way Apache handles authentication).

But .pgpass at least has the existing merit that you don't have to
have passwords in your scripts.
--
let name="cbbrowne" and tld="acm.org" in name ^ "@" ^ tld;;
http://cbbrowne.com/info/spreadsheets.html
/Utopia-Bold  40 selectfont/n{moveto}def/p{gsave true charpath clip 72
400 n 300 -4 1{dup 160 300 3 -1 roll 0 360 arc 300 div 1 1 sethsbcolor
fill}for grestore 0 -60 rmoveto}def 72 500 n(This signature has been)p
(brought to  you by the)p(letter  Q and the number 42.)p(Chris Browne)
p(chris@cbbrowne.com)p showpage

pgsql-general by date:

Previous
From: "Glen Parker"
Date:
Subject: BUG: 8.0 beta1 does not run on Windows 2000 Terminal Server
Next
From: Tom Lane
Date:
Subject: Re: FATAL: invalid frontend message type 8