Awhile ago I wrote a small script, which does exactly that thing - periodically checks for updadtes, and displays a notification if there is any. Script's comments should be sufficient to explain how it works and how to use it.
chkupd.sh
#!/bin/sh
#==2010.12.28
#--just created
#--
#--chkupd.sh
#--
#--checks for updates, and displays
#--notification if there is|are any
#--
#--based on checkupdates tool from
#--pacman-contrib package
#--
#--meant to be added to startup
#--applications
#--
#--attention - uses infinite loop:
#--
#--infinite loop
#-- sleep for 1 minute (1m)
#-- check for updates
#-- sleep for 59 minutes (59m)
#--endloop
#--
#--optionally, accepts two sleep
#--time parameters (1s, 10m, 2h, etc)
#--
#--first parameter sets the time
#--before the check is performed
#--
#--second parameter sets the time
#--after the check was performed
#--
#--by default, 1m and 59m set
#--hourly checks execution
#--
#--example invocations:
#--
#--chkupd.sh
#--chkupd.sh 1m 9m
#--chkupd.sh 1m 14m
#--chkupd.sh 1h 2h
#--chkupd.sh 1m 189m
#--chkupd.sh 1m 239m
#--
#--see man sleep for correct
#--time argument syntax
#--
#==
cnt=0
num=0
hdr=''
msg=''
loop=true
waitbefore=1m
waitafter=59m
if [ $# -eq 2 ]
then
waitbefore=$1
waitafter=$2
fi
while [ $loop == true ]
do
sleep $waitbefore
num=$(checkupdates | awk '{++cnt} END {print cnt}')
if [ "$num" == '' ]
then
hdr='Debug: Software Management'
msg='There are no available updates'
else
if [ $num -eq 1 ]
then
hdr='Software Management'
msg="There is $num update available"
else
hdr='Software Management'
msg="There are $num updates available"
fi
fi
notify-send --urgency=normal --expire-time=5000 --app-name='Software Management' "$hdr" "$msg"
sleep $waitafter
done
exit 0