hallo, my Name is Rong. I am student at TU-Munich. I have some questions for Postgresql under SuSe Linux. I want save something in Postgresql-Table, when I get a fax from "Hylafax". I insert " psql -U postgres dbname <<END_OF_INSTR insert into "CSID_TIF"("CSID","suspens_file","actDatum") values('0049891234567','test.tif','01.01.2003')) END_OF_INSTR " in shell script. It work very good. Now I want enhance it. When there are some error in Postgresql, or There are some Error at insert, I want give a message per email to me. But I do not know, how can I get the Error from Postgresql in Linux Shell Script. When an Postgresql-Error is to happen, how can I get the Error-Message-Event in shell script and send a email to me. I hope I can get your Help! Thank you very much! best regards! rong PS: faxrcvd is my shell-script in Hylafax. #! /bin/sh psql -U postgres dbname <<END_OF_INSTR insert into "CSID_TIF"("CSID","suspens_file","actDatum") values('0049891234567','test.tif','01.01.2003')) END_OF_INSTR ##end script ----- Original Message ----- From: <[EMAIL PROTECTED]> To: "rx" <[EMAIL PROTECTED]> Sent: Thursday, March 27, 2003 4:03 PM Subject: Stalled post to pgsql-general > Your message to pgsql-general has been delayed, and requires the approval > of the moderators, for the following reason(s): > > Non-Member Submission from "rx" <[EMAIL PROTECTED]> > > If you do not wish the message to be posted, or have other concerns, > please send a message to the list owners at the following address: > [EMAIL PROTECTED] > |
#! /bin/sh echo "hallo" # $Id: faxrcvd.sh.in,v 1.1 2001/04/15 03:48:16 darren Exp $ # # HylaFAX Facsimile Software # # Copyright (c) 1990-1996 Sam Leffler # Copyright (c) 1991-1996 Silicon Graphics, Inc. # HylaFAX is a trademark of Silicon Graphics # # Permission to use, copy, modify, distribute, and sell this software and # its documentation for any purpose is hereby granted without fee, provided # that (i) the above copyright notices and this permission notice appear in # all copies of the software and related documentation, and (ii) the names of # Sam Leffler and Silicon Graphics may not be used in any advertising or # publicity relating to the software without the specific, prior written # permission of Sam Leffler and Silicon Graphics. # # THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, # EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY # WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. # # IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR # ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, # OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF # LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE # OF THIS SOFTWARE. #
# # faxrcvd file devID commID error-msg destination # #if [ $# != 5 ]; then # echo "Usage: $0 file devID commID error-msg destination" # exit 1 #fi echo "test1" test -f etc/setup.cache || { SPOOL=`pwd` cat<<EOF FATAL ERROR: $SPOOL/etc/setup.cache is missing! The file $SPOOL/etc/setup.cache is not present. This probably means the machine has not been setup using the faxsetup(8C) command. Read the documentation on setting up HylaFAX before you startup a server system. EOF exit 1 } echo $SPOOL . etc/setup.cache echo "etc/setup" ###INFO=/usr/sbin/faxinfo INFO=$SBIN/faxinfo echo $INFO ###FAX2PS=$TIFFBIN/fax2ps TOADDR=FaxMaster # # There is no good portable way to find out the fully qualified # domain name (FQDN) of the host or the TCP port for the hylafax # service so we fudge here. Folks may want to tailor this to # their needs; e.g. add a domain or use localhost so the loopback # interface is used. # HOSTNAME="localhost" # XXX no good way to find FQDN PORT=4559 # XXX no good way to lookup service FILE="$1" DEVICE="$2" COMMID="$3" MSG="$4" echo $FILE SENDER="`$INFO $FILE | $AWK -F: '/Sender/ { print $2 }' 2>/dev/null`" #if [ -f $FILE ]; then # # Check the sender's TSI and setup to dispatch # facsimile received from well-known senders. # SENDER="`$INFO $FILE | $AWK -F: '/Sender/ { print $2 }' 2>/dev/null`" TXTFILE=`echo $FILE|sed -e 's/recvq//g; s/tif/txt/g'` TXTFILE="/var/spool/fax/Eingang"$TXTFILE FILENAME=`echo $FILE|sed -e 's/recvq//g'|sed -e 's/\///'` $INFO $FILE > $TXTFILE chmod 0777 $TXTFILE echo $TXTFILE #####andert von rong 25.02.2003 Received=`sed -n -e '/Received:/p' $TXTFILE |sed 's/[\t\n\r\f\v]*Received: //g'|sed 's/:/\//'|sed 's/:/\//'` Sender=`sed -n -e '/Sender:/p' $TXTFILE |sed 's/[ \t\n\r\f\v]*Sender: //g'` recvqsuspens=`sed -n -e '/recvq/p' $TXTFILE |cut -d/ -f2 |sed 's/://g'` Received_file=`sed -n -e '/Received:/p' $TXTFILE|sed 's/[\t\n\r\f\v]*Received: //g'|sed 's/:/_/g'|sed 's/ /_/g'|sed 's/_//'|sed 's/_//'` echo $Received_file #TIFFILE=`echo $FILE|sed -e 's/recvq//g'` #TIFFILE="/var/spool/fax/Eingang"$TIFFILE #chmod 0777 $TIFFILE #TIFFILE=`echo $FILE|sed -e 's/recvq//g'` TIFFILE=$Received_file".tif" cp $FILE /var/spool/fax/Eingang/$TIFFILE #cp $FILE /var/spool/fax/Eingang/ chmod 0777 /var/spool/fax/Eingang/$TIFFILE echo $FILENAME echo $TIFFILE echo $recvqsuspens echo $Received echo $Sender psql -U postgres VEIrx <<END_OF_INSTR insert into "Faxeingang" values(trim(both ' ' from '$Received'),'$TIFFILE','$Sender') END_OF_INSTR #####andert von rong 25.02.2003 # SENDTO= # if [ -f bin/FaxDispatch ]; then # . bin/FaxDispatch # NB: FaxDispatch sets SENDTO based on $5 # fi # (echo "To: $TOADDR" # echo "From: The HylaFAX Receive Agent <fax>" # echo "Subject: facsimile received from $SENDER"; # echo "" # echo "$FILE (ftp://$HOSTNAME:$PORT/$FILE):"; $INFO -n $FILE # echo "ReceivedOn: $DEVICE" # if [ "$MSG" ]; then # echo "" # echo "The full document was not received because:" # echo "" # echo " $MSG" # echo "" # echo " ---- Transcript of session follows ----" # echo "" # if [ -f log/c$COMMID ]; then # $SED -e '/-- data/d' \ # -e '/start.*timer/d' -e '/stop.*timer/d' \ # log/c$COMMID # elif [ -n "$COMMID" ]; then # echo " No transcript available (CommID c$COMMID)." # else # echo " No transcript available." # fi # else # echo "CommID: c$COMMID (ftp://$HOSTNAME:$PORT/log/c$COMMID)" # fi # if [ -n "$SENDTO" ]; then # echo "" # echo "The facsimile was automatically dispatched to: $SENDTO." # fi # ) | 2>&1 $SENDMAIL -ffax -oi $TOADDR # if [ -n "$SENDTO" ]; then # (MIMEBOUNDARY="NextPart$$" # echo "Mime-Version: 1.0" # echo "Content-Type: Multipart/Mixed; Boundary=\"$MIMEBOUNDARY\"" # echo "Content-Transfer-Encoding: 7bit" # echo "To: $SENDTO" # echo "From: The HylaFAX Receive Agent <fax>" # echo "Subject: facsimile received from $SENDER"; # echo "" # echo "--$MIMEBOUNDARY" # echo "Content-Type: text/plain; charset=us-ascii" # echo "Content-Transfer-Encoding: 7bit" # echo "" # echo "$FILE (ftp://$HOSTNAME:$PORT/$FILE):"; $INFO -n $FILE # echo "ReceivedOn: $DEVICE" # if [ "$MSG" ]; then # echo "" # echo "The full document was not received because:" # echo "" # echo " $MSG" # echo "" # echo " ---- Transcript of session follows ----" # echo "" # if [ -f log/c$COMMID ]; then # $SED -e '/-- data/d' \ # -e '/start.*timer/d' -e '/stop.*timer/d' \ # log/c$COMMID # elif [ -n "$COMMID" ]; then # echo " No transcript available (CommID c$COMMID)." # else # echo " No transcript available." # fi # else # echo "CommID: c$COMMID (ftp://$HOSTNAME:$PORT/log/c$COMMID)" # fi # echo "" # echo "--$MIMEBOUNDARY" # echo "Content-Type: application/postscript" # echo "Content-Description: FAX document" # echo "Content-Transfer-Encoding: 7bit" # echo ""kwrite # $FAX2PS $FILE 2>/dev/null # echo "" # echo "--$MIMEBOUNDARY--" # ) | 2>&1 $SENDMAIL -ffax -oi $SENDTO # fi #else # # Generate notification mail for a failed attempt. # # echo "To:" # (echo "To: $TOADDR" # echo "From: The HylaFAX Receive Agent <fax>" # echo "Subject: facsimile not received" # echo "" # echo "An attempt to receive facsimile on $DEVICE failed because:" # echo "" # echo " $MSG" # echo "" # echo " ---- Transcript of session follows ----" # echo "" # if [ -f log/c$COMMID ]; then # $SED -e '/-- data/d' \ # -e '/start.*timer/d' -e '/stop.*timer/d' \ # log/c$COMMID # elif [ -n "$COMMID" ]; then # echo "No transcript available (CommID c$COMMID)." # else # echo "No transcript available." # fi # ) | 2>&1 $SENDMAIL -ffax -oi $TOADDR #fi ##end script
---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster