![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Rules & FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| UNIX for Advanced & Expert Users Advanced UNIX and Linux questions go here. Expert-to-Expert. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Accessing PL/SQL OUT variables in Korn Shell Script | bright_future | UNIX for Advanced & Expert Users | 2 | 11-01-2007 09:42 PM |
| accessing shell script variable in file | HIMANI | UNIX for Dummies Questions & Answers | 6 | 08-06-2007 08:07 PM |
| Accessing variables of one shell script in another shell script | rsendhilmani | Shell Programming and Scripting | 1 | 04-30-2007 05:43 AM |
| Accessing var from .profile into shell script | videsh77 | Shell Programming and Scripting | 7 | 05-28-2005 09:21 AM |
| Accessing the home directory in shell script | krishan | SUN Solaris | 1 | 05-20-2005 09:41 PM |
|
|
LinkBack | Thread Tools | Display Modes |
|
|||
|
concurrency issue while Accessing Mail Box from shell script
Hi Bros,
I am in a serious trouble with concurrency issue while using mailx. I have a shell script which reads all the emails of a unix user account and create a copy (another mbox for processing and archive purpose). This script works fine for 99.99% of the time but sometime it start creating multiple copies of the same email during creation of another temp mail box copy and subsequently results in large repetitive insert database calls. This email loading shell script is a regular cron job which runs after every 30 minutes. My doubts goes to somebody running mailx command or reading email of the same user account while Email Loader is running. Am i correct with my doubt ? Is there anyways to explicit lock the unix user mailbox while my Email Loader program is running ? please advise if i am wring somewhere in script. I am also providing code snippet here - # Functions for checking whether there is any emails in user mailbox - returns 0 in variable mailstat if there are new emails in mailbox otherwise 1. Code:
check_mailbox()
{
if [ "$mailfile" = "" ]; then
mailx -e
else
#mailx -e -f $mailfile
if [ -f "$mailfile" ]; then
mailstat=0
else
mailstat=1
fi
fi
mailstat=$?
} # check_mailbox
#### main Block which is running and creating a copy of all mails in users mailbox.
------------
/* mail file is always blank as we never pass any argument to script.*/
mailfile="$1"
echo "Test to see if there is mail. Exit status will be 0 if there is." >> $logfile
check_mailbox
if [ $mailstat -eq 1 ]; then
echo "No mails exist in mailbox" >> $logfile
exit 1
fi
echo "Archiving Mailbox." >> $logfile
touch ${mailboxarchive}
while ( [ $mailstat -eq 0 ] )
do
echo "save ${mailboxarchive}
quit" > $exmailfl
if [ "empty$mailfile" = "empty" ]; then
mailx < $exmailfl > $outfile
else
if [ ! -f $mailfile ]; then
# all done
break
fi
mailx -f $mailfile < $exmailfl > $outfile
fi
check_mailbox
done
anybody have any clue on where i am doing foolish act ? any help bros looking forward for some unix experts help (i m a j2ee guy and don't have that depth in Unix schell scripting) Thx in well advance. Sumit Last edited by Perderabo; 02-25-2007 at 08:58 AM. Reason: Add code tags for readability |
| Forum Sponsor | ||
|
|
|
|||
|
Quote:
Suppose we have an account "abc". The .forward file in the homedirectory of "abc" could look like: Code:
#cat .forward \abc, /archivedir/abc |
|||
| Google UNIX.COM |
| Thread Tools | |
| Display Modes | |
|
|