This has got me stumped. I am updating a powerdns server backend postgres sql database to make powerdns act as a Dynamic DNS server. On the client side I have a script that polls hostname and ip address. If the ip address changes I write to a "myip" file and scp it over to the powerdns server. On the server I am attempting to use incron to watch my ./updates directory for a new "myip" file. The script opens the "myip" file then queries the database to see if the entry exists, inserts a new entry if it doesn't, updates the ip if it's different and exits if they are the same deleting the "myip" file to wait for a new one. I have tested the script manually and it all works as expected and only updates or inserts when the entry needs to be changed. When I use incron I get multiple entries in the database. the incrontab entry is ~/updates IN_CLOSE_WRITE ~/dbupdate $# the script dbupdate is as follows #!/bin/bash IP="" NAME="" while IFS=$'\t' read -r -a client do echo ${client[0]} echo ${client[1]} done < "/home/ddns/updates/myip" IP=${client[0]} NAME=${client[1]} ## Echo the ip and hostname from myip echo "the values in myip are ""IP = "$IP "NAME = "$NAME "" ## Read values in the database echo -e "select content,name from records where name='$NAME'" | psql -t -A pdns | tr "|" " " > tmp.db ##place the values in global variables while read tip tname; do #echo ip=$tip name=$tname name=$tname ip=$tip done < tmp.db rm ./tmp.db ## Echo the database values echo the database values are ip = "$ip" name = "$name" if [ "$NAME" != "$name" ]; then echo "$NAME" is not the same as "$name" echo -e "insert into records (content,ttl,prio,type,domain_id,name) values('$IP','3600','0','A','7','$NAME');" | psql -A -t drdns echo "I just created a new database entry" else echo "The names are the same" if [ "$IP" != "$ip" ]; then echo "the IPs are not the same" echo "update \"public\".\"records\" set \"content\"='$IP' where \"name\"='$NAME'" | psql -A -t pdns echo "I will update the existing database entry" else echo "The IPs are the same" fi fi echo "I am done running this script I will now delete the myip file" rm ~/updates/myip Anyone have any idea why this is happening and prevent multiple duplicate entries? Dave