source: TOOLS/ConsoGENCMIP6/bin/old/conso_gencmip6_v5 @ 4035

Last change on this file since 4035 was 2443, checked in by labetoulle, 9 years ago

change default for y-range in plot_bilan : ymax = 2*(ideal daily consumption)

  • Property svn:executable set to *
File size: 6.0 KB
Line 
1#!/bin/bash
2#
3# cron pour garder trace de la compta et des volumes de fichiers crees
4# a executer chaque matin a 6h00
5# ======================================================================
6#. /etc/profile
7
8
9# Functions
10# =========
11function get_gencmip6 {
12  ccc_myproject | sed -e'1,/gencmip6/d' | grep -m 1 $1
13}
14
15function get_gencmip6_login {
16  ccc_myproject | sed -n -e'/gencmip6/,/^$/p' | head -n -1 | tail -n +3
17}
18
19
20# Default values
21# ==============
22fg_dry=false
23fg_verbose=false
24
25fg_all=true
26fg_param=true
27fg_login=true
28fg_bilan=true
29fg_store=true
30
31# Get arguments from command line
32# ===============================
33while getopts :hdaltsv Opt ; do
34  case $Opt in
35    h)
36      echo "usage: $0 [-h] [-a] [-b] [-l] [-s] [-d] [-v]"
37      echo ""
38      echo "options :"
39      echo "  -h : print this help and exit"
40      echo "  -d : dry run, no file produced"
41      echo "  -a : produce all files (default)"
42      echo "  -p : produce param file"
43      echo "  -b : produce bilan file"
44      echo "  -l : produce login file"
45      echo "  -s : produce store file"
46      echo "  -v : verbose"
47      exit 0 ;;
48    d)
49      fg_dry=true
50      ;;
51    a)
52      fg_all=true
53      ;;
54    t)
55      fg_bilan=true
56      fg_all=false
57      fg_param=false
58      fg_login=false
59      fg_store=false
60      ;;
61    l)
62      fg_login=true
63      fg_all=false
64      fg_param=false
65      fg_bilan=false
66      fg_store=false
67      ;;
68    s)
69      fg_store=true
70      fg_all=false
71      fg_param=false
72      fg_login=false
73      fg_bilan=false
74      ;;
75    p)
76      fg_param=true
77      fg_all=false
78      fg_login=false
79      fg_bilan=false
80      fg_store=false
81      ;;
82    v)
83      fg_verbose=true
84      ;;
85    :)
86      echo "$0: -"${OPTARG}" option: missing value"
87      exit 1
88      ;;
89    \?)
90      echo "$0: -"${OPTARG}" option: not supported"
91      exit 1
92      ;;
93  esac
94done
95shift $(($OPTIND-1))
96
97echo "fg_all   = $fg_all"
98echo "fg_param = $fg_param"
99echo "fg_login = $fg_login"
100echo "fg_bilan = $fg_bilan"
101echo "fg_store = $fg_store"
102
103# Files and directories
104# =====================
105LOCAL_DIR="/ccc/cont003/home/dsm/p86ipsl/ConsoGENCMIP6/output"
106SAVE_DIR="/ccc/work/cont003/dsm/p86ipsl/ConsoGENCMIP6/"
107
108if ( ${fg_dry} ) ; then
109  OUT_PARAM="/dev/stdout"
110  OUT_LOGIN="/dev/stdout"
111  OUT_BILAN="/dev/stdout"
112  OUT_STORE="/dev/stdout"
113else
114  OUT_PARAM="OUT_CONSO_PARAM_v4"
115  OUT_LOGIN="OUT_CONSO_LOGIN_v4"
116  OUT_BILAN="OUT_CONSO_BILAN_v4"
117  OUT_STORE="OUT_CONSO_STORE_v4"
118fi
119
120#Today=$( date +%F )
121Today=$( ccc_myproject | grep gencmip6 | gawk '{print $NF}' )
122
123
124# Produce files
125# =============
126
127cd ${LOCAL_DIR}
128
129# 1- Parametres du projet
130# -----------------------
131echo "OUT_CONSO_PARAM"
132
133echo "{" > ${OUT_PARAM}
134ccc_myproject | grep gencmip6 | \
135    gawk '{printf "  \"project\": \"%s\",\n", $4}' \
136    >> ${OUT_PARAM}
137get_gencmip6 deadline | \
138    gawk '{printf "  \"deadline\": \"%10s\",\n", $NF}' \
139    >> ${OUT_PARAM}
140get_gencmip6 Allocated | \
141    gawk '{printf "  \"alloc\": %10.2f,\n", $NF}' \
142    >> ${OUT_PARAM}
143echo "}" >> ${OUT_PARAM}
144
145# 2- Conso totale par jour
146# ------------------------
147# on garde le total, date en tete en accumulant dans le fichier :
148# OUT_CONSO_BILAN
149# if ( ${fg_all} || ${fg_bilan} ) ; then
150#   printf "%10s " ${Today} >> ${OUT_BILAN}
151#   get_gencmip6 Total | \
152#       gawk '{printf "    %s %10.2f hours ", "total", $2}' \
153#       >> ${OUT_BILAN}
154#   get_gencmip6 Allocated | \
155#       gawk '{printf "    %s %10.2f hours ", "alloc", $2}' \
156#       >> ${OUT_BILAN}
157#   get_gencmip6 Suggested | \
158#       gawk '{printf "    %s %7s ", "use_theo", $NF}' \
159#       >> ${OUT_BILAN}
160#   get_gencmip6 Real | \
161#       gawk '{printf "    %s %7s ", "use_real", $NF}' \
162#       >> ${OUT_BILAN}
163#   printf "\n" >> ${OUT_BILAN}
164# fi
165
166if ( ${fg_all} || ${fg_bilan} ) ; then
167  echo "OUT_CONSO_BILAN"
168
169  printf "%10s " ${Today} >> ${OUT_BILAN}
170  get_gencmip6 Total | \
171      gawk '{printf " %10.2f", $2}' \
172      >> ${OUT_BILAN}
173  get_gencmip6 Real | \
174      gawk '{printf " %7s", $NF}' \
175      >> ${OUT_BILAN}
176  get_gencmip6 Suggested | \
177      gawk '{printf " %7s", $NF}' \
178      >> ${OUT_BILAN}
179  printf "\n" >> ${OUT_BILAN}
180fi
181
182# 2b- Conso theorique par jour
183# ----------------------------
184# on garde le total, date en tete en accumulant dans le fichier :
185# OUT_CONSO_UTHEO
186if ( ${fg_all} || ${fg_bilan} ) ; then
187  echo "OUT_CONSO_UTHEO"
188
189  printf "%10s " ${Today} >> ${OUT_BILAN}
190  get_gencmip6 Suggested | \
191      gawk '{printf " %7s", $NF}' \
192      >> ${OUT_BILAN}
193  printf "\n" >> ${OUT_BILAN}
194fi
195
196# 3- Conso par login (HOME)
197# -------------------------
198# on garde la trace de chaque login, date en tete, en remplacant le
199# fichier a chaque fois : OUT_CONSO_LOGIN
200if ( ${fg_all} || ${fg_login} ) ; then
201  echo "OUT_CONSO_LOGIN"
202
203#   get_gencmip6_login | \
204#       gawk -v Today=$Today '{printf "%10s %-10s %10.2f hours\n", Today, $1, $2}' \
205#       > ${OUT_LOGIN}
206
207  printf "%-10s %-9s %-10s\n"  "date" "login" "conso(hours)" > ${OUT_LOGIN}
208  get_gencmip6_login | \
209      gawk -v Today=$Today '{printf "%10s %-10s %10.2f\n", Today, $1, $2}' \
210      >> ${OUT_LOGIN}
211fi
212
213# 4- volume cree sur STORE
214# ------------------------
215# par login qui a consomme, en remplacant le fichier a chaque fois :
216# OUT_CONSO_STORE
217if ( ${fg_all} || ${fg_store} ) ; then
218  echo "OUT_CONSO_STORE"
219
220  printf "%-10s %-10s %6s %s\n" "date" "login"  "size" "dirname" > ${OUT_LOGIN}
221  for login in $( get_gencmip6_login | \
222                  gawk '{if ($NF != 0.00) print $1}' ) ; do
223    for dirname in $( ls -d $(ccc_home -A -u ${login})/IGCM_OUT/* ) ; do
224      # printf "%10s %-10s %6s %s\n" \
225      #        ${Today} ${login} \
226      #        $( du -sbh ${dirname} )
227      printf "%10s %-10s %6s %s\n" \
228             ${Today} ${login} \
229             $( du -sbh ${dirname} )
230    done
231  done >> ${OUT_STORE}
232fi
233
234# Save files (WORK)
235# =================
236if ( ! ${fg_dry} ) ; then
237  Suffix=$( echo ${Today} | sed 's/-//g' )
238  cp ${OUT_PARAM} ${SAVE_DIR}/${OUT_PARAM}_${Suffix}
239  cp ${OUT_LOGIN} ${SAVE_DIR}/${OUT_LOGIN}_${Suffix}
240  cp ${OUT_BILAN} ${SAVE_DIR}/${OUT_BILAN}_${Suffix}
241  cp ${OUT_STORE} ${SAVE_DIR}/${OUT_STORE}_${Suffix}
242fi
243
Note: See TracBrowser for help on using the repository browser.