← Back to team overview

sslug-teknik team mailing list archive

samme script bliver kaldt 2 gange

 

Hej Sslug,

Jeg sidder og tester et (bash) script jeg har lavet som skal pakke en masse filer sammen til én fil før de bliver overført. Scriptet bliver kaldt af en process som generere filerne og det er så her problemet opstår.

Scriptet bliver i nogle tilfælde kaldt 2 gange med 0,004 sekunders mellemrum og så virker det process check jeg har indbygget ikke.

Den måde jeg har lavet det på er:

temp="/tmp/$(basename $0).$$" ; trap "/bin/rm -f $temp" 0

DATE=`date +%Y%m%d`
DATETIME=`date +%Y%m%d%H%M%S`
logfile="/export/gls/gateway/logs/$(basename $0)_$DATE.log"
arcdir="/export/gls/gateway/archive/${DATE}"
outdir="/export/gls/gateway/out"
dkoutdir="/export/gls/gateway/dkout"
rundir="/export/gls/gateway/run"
bindir="/export/gls/gateway/bin"

program=`ls /tmp/$(basename $0).* 2>/dev/null`
if [[ ${program:+2} ]]; then
echo "`date +%Y-%m-%d-%H.%M.%S` --->> $(basename $0)" is allready running. Exit >> $logfile 2>&1
        exit 0
fi


Som man kan se i loggen bliver den samme fil zippet 2 gange:

Process der kalder mit script:

==> gwco040_20110214.log <==
14/02/2011 15:53:09.101 : [19615] INFO : system call /hd20/gateway/bin/gwco041 & 14/02/2011 15:53:09.104 : [19615] INFO : ----------------------------------------------------------------------------------- 14/02/2011 15:53:09.104 : [19615] INFO : File lcv_dk0088_dk0088ayb_scansys_2011021415530741914784 contains 1 line(s) 14/02/2011 15:53:09.104 : [19615] INFO : File lcv_dk0088_dk0088ayb_scansys_2011021415530741914784 processed 14/02/2011 15:53:09.104 : [19615] INFO : ----------------------------------------------------------------------------------- 14/02/2011 15:53:09.104 : [19615] INFO : File lcv_dk0088_dk0088ayb_scansys_2011021415530797814786 contains 1 line(s) 14/02/2011 15:53:09.105 : [19615] INFO : File lcv_dk0088_dk0088ayb_scansys_2011021415530797814786 processed 14/02/2011 15:53:09.105 : [19615] INFO : system call /hd20/gateway/bin/gwco041 &

==> gwco041_20110214.log <==
2011-02-14-15.53.09 --->> gwco041 is allready running. Exit
2011-02-14-15.53.09 --->> lcv_dk0088_dk0088ayb_scansys_2011021415530534314751 added to Xlcv_dk0088_20110214155307.zip and moved to /export/gls/gateway/archive/20110214 2011-02-14-15.53.09 --->> lcv_dk0088_dk0088ayb_scansys_2011021415530534314751 added to Xlcv_dk0088_20110214155307.zip and moved to /export/gls/gateway/archive/20110214
2011-02-14-15.53.09 --->> gwco041 is allready running. Exit
2011-02-14-15.53.09 --->> renaming Xlcv_dk0088_20110214155307.zip to lcv_dk0088_20110214155307.zip
2011-02-14-15.53.09 --->> gwco041_dkout started
2011-02-14-15.53.09 --->> renaming Xlcv_dk0088_20110214155307.zip to lcv_dk0088_20110214155307.zip
2011-02-14-15.53.09 --->> gwco041_dkout allready running

Er der nogen der har en god idé til hvordan man kan undgå dette?

Mvh
Martin Ahrentsen