source: tags/Mars-V0.9.5/datacenter/scripts/dowebplots

Last change on this file was 7569, checked in by Daniela Dorner, 19 years ago
*** empty log message ***
  • Property svn:executable set to *
File size: 5.1 KB
Line 
1#!/bin/sh
2#
3# ========================================================================
4#
5# *
6# * This file is part of MARS, the MAGIC Analysis and Reconstruction
7# * Software. It is distributed to you in the hope that it can be a useful
8# * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
9# * It is distributed WITHOUT ANY WARRANTY.
10# *
11# * Permission to use, copy, modify and distribute this software and its
12# * documentation for any purpose is hereby granted without fee,
13# * provided that the above copyright notice appear in all copies and
14# * that both that copyright notice and this permission notice appear
15# * in supporting documentation. It is provided "as is" without express
16# * or implied warranty.
17# *
18#
19#
20# Author(s): Daniela Dorner 08/2005 <mailto:dorner@astro.uni-wuerzburg.de>
21#
22# Copyright: MAGIC Software Development, 2000-2006
23#
24#
25# ========================================================================
26#
27# This script produces the plots from all root-files in the web directory
28#
29# After checking, if the script is already running, the plots are produced:
30# With the programm showplot a ps-file is written, from which the png
31# files are produced.
32#
33
34user=`whoami`
35program=dowebplots
36source /home/$user/Mars/datacenter/scripts/sourcefile
37
38set -C
39
40cd $mars
41
42datetime=`date +%F-%H-%M-%S`
43webdir=/www/htdocs/datacenter
44
45scriptlogpath=$logpath/run/dowebplots/`date +%Y/%m/%d`
46makedir $scriptlogpath
47
48scriptlog=$scriptlogpath/dowebplots-$datetime.log
49
50date >> $scriptlog 2>&1
51
52
53while getopts p: opts
54do
55 case $opts in
56 p) type=$OPTARG
57 echo "got programname: $type" >> $scriptlog 2>&1
58 ;;
59 ?) echo "usage: $(basename $0) -p programname" >> $scriptlog 2>&1
60 ;;
61 esac
62done
63
64if [ "$type" = "" ]
65then
66 echo "no program name given -> exit" >> $scriptlog 2>&1
67 echo "usage: $(basename $0) -p programname" >> $scriptlog 2>&1
68 date >> $scriptlog 2>&1
69 exit
70fi
71
72# check if script is already running
73lockfile=$lockpath/lock-dowebplots-$type.txt
74checklock >> $scriptlog 2>&1
75
76
77#finding all rootfiles in the webdirectory, that were modified in the last 3 days
78#this are all statusdisplays
79rootfiles=`find $webdir/$type/ -maxdepth 10 -name '*.root' -mtime -3 | grep -v '_I_' | grep -v '_Y_' | grep -v 'subsystemdata' | grep -v 'star_lapalma' | grep -v 'summary'`
80
81#exit if no rootfiles are found
82if [ "$rootfiles" = "" ]
83then
84 echo "nothing to do -> exit" >> $scriptlog 2>&1
85 rm -v $lockfile >> $scriptlog 2>&1
86 date >> $scriptlog 2>&1
87 exit
88fi
89
90
91#produce plots for each rootfile
92for rootfile in ${rootfiles[@]}
93do
94 date >> $scriptlog 2>&1
95 #get names of the psfile and the
96 #pngfiles (1 per tab in the statusdiplay)
97 psfile=`echo $rootfile | sed -e 's/.root$/.ps/g'`
98 tabfile=`echo $rootfile | sed -e 's/.root$/-tab/g'`
99 echo "rootfile: $rootfile" >> $scriptlog 2>&1
100 echo "psfile: $psfile" >> $scriptlog 2>&1
101 echo "tabfile: $tabfile" >> $scriptlog 2>&1
102
103 #get date of root- and psfile
104 daterootfile=`date +%Y%m%d -r $rootfile` >> $scriptlog 2>&1
105 datepsfile=`date +%Y%m%d -r $psfile` >> $scriptlog 2>&1
106 if [ "$datepsfile" = "" ]
107 then
108 echo "date of psfile is empty -> the file $psfile doesn't exist" >> $scriptlog 2>&1
109 echo " -> setting date to 0 and producing psfile..." >> $scriptlog 2>&1
110 datepsfile=0
111 fi
112
113 echo "checking date..." >> $scriptlog 2>&1
114 echo "date of rootfile: $daterootfile" >> $scriptlog 2>&1
115 echo "date of psfile: $datepsfile" >> $scriptlog 2>&1
116
117 #if the psfile is newer than the rootfile
118 #no plots have to be done -> continue
119 if [ "$datepsfile" -gt "$daterootfile" ] >> $scriptlog 2>&1
120 then
121 echo "psfile is older than rootfile -> continue " >> $scriptlog 2>&1
122 continue
123 fi
124
125 echo "producing psfile..." >> $scriptlog 2>&1
126 ./showplot -b --save-as-ps=$psfile $rootfile >> $scriptlog 2>&1
127
128 echo "converting plots to png..." >> $scriptlog 2>&1
129 pstoimg -antialias -flip r270 -density 100 -type png -multipage -out=$tabfile $psfile >> $scriptlog 2>&1
130done
131
132echo "removing old files" >> $scriptlog 2>&1
133#make sure, that old plots of files, that are already removed from disk,
134# are deleted also in the webdirectory
135#this has to be done, as ps and png files are excluded from rsync, and
136#as rsync is done with --delete option (script /home/operator/condor/webupdate)
137
138#find all directories with plots
139dirs=`find $webdir/$type/* -type d | grep -v merpplogs`
140
141for dir in ${dir[@]}
142do
143 #find psfiles in directory
144 psfiles=`ls $dir/*.ps`
145 #continue, if there are no psfiles
146 if [ "$psfiles" == "" ]
147 then
148 continue
149 fi
150
151 for psfile in ${psfiles[@]}
152 do
153 #create name of corresponding rootfile
154 rootfile=`echo $psfile | sed -e 's/.ps$/.root/g'`
155 #delete ps and pngfiles if rootfile is not existing
156 if ! ls $rootfile >> $scriptlog 2>&1
157 then
158 echo "deleting old plots for $rootfile..." >> $scriptlog 2>&1
159 path=`dirname $psfile`
160 rm -v $psfile >> $scriptlog 2>&1
161 rm -v $path/*.png >> $scriptlog 2>&1
162 fi
163 done
164done
165
166rm -v $lockfile >> $scriptlog 2>&1
167
168set +C
169
170date >> $scriptlog 2>&1
171
Note: See TracBrowser for help on using the repository browser.