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 &
Mit Script
==> 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