source: TOOLS/ConsoGENCMIP6/bin/run_pen_v2.sh @ 2844

Last change on this file since 2844 was 2844, checked in by labetoulle, 8 years ago

[consogencmip6] running/pending jobs:
look for 'cmip6' instead of 'gencmip6' to allow for devcmip6 and future *cmip6 sub-projects

  • Property svn:executable set to *
File size: 2.3 KB
Line 
1#!/bin/bash
2#
3# cron pour garder trace des jobs running et en attente
4# a executer chaque heure
5# ======================================================================
6#. /etc/profile
7
8# Functions
9# =========
10function get_run {
11  ccc_mpp -n | grep cmip6 | grep ' RUN '
12}
13
14function get_pen {
15  ccc_mpp -n | grep cmip6 | grep ' PEN '
16}
17
18
19# Default values
20# ==============
21fg_dry=false
22fg_verbose=false
23
24fg_all=true
25
26# Get arguments from command line
27# ===============================
28while getopts :hdaltsv Opt ; do
29  case $Opt in
30    h)
31      echo "usage: $0 [-h] [-a] [-d] [-v]"
32      echo ""
33      echo "options :"
34      echo "  -h : print this help and exit"
35      echo "  -d : dry run, no file produced"
36      echo "  -a : produce all files (default)"
37      echo "  -v : verbose"
38      exit 0 ;;
39    d)
40      fg_dry=true
41      ;;
42    a)
43      fg_all=true
44      ;;
45    v)
46      fg_verbose=true
47      ;;
48    :)
49      echo "$0: -"${OPTARG}" option: missing value"
50      exit 1
51      ;;
52    \?)
53      echo "$0: -"${OPTARG}" option: not supported"
54      exit 1
55      ;;
56  esac
57done
58shift $(($OPTIND-1))
59
60
61# Files and directories
62# =====================
63LOCAL_DIR="${HOME}/ConsoGENCMIP6/output"
64SAVE_DIR="${CCCWORKDIR}/ConsoGENCMIP6/data"
65
66if ( ${fg_dry} ) ; then
67  OUT_PENDING="/dev/stdout"
68  OUT_TOUSJOBS="/dev/stdout"
69else
70  OUT_PENDING="OUT_JOBS_PENDING"
71  OUT_TOUSJOBS="OUT_TOUSJOBS"
72fi
73
74Today=$( date +"%F" )
75Now=$( date +"%F-%R" )
76
77
78# Produce files
79# =============
80
81cd ${LOCAL_DIR}
82
83# 1- Nombre de procs running et pending
84# -------------------------------------
85if ( ${fg_all} ) ; then
86  get_run | \
87      gawk -v Now="$Now" ' {NPROC+=$4} END {printf "%16s %-6d ", Now, NPROC }' \
88      > ${OUT_PENDING}
89  get_pen | \
90      gawk               ' {NPROC+=$4} END {printf     " %-6d ",      NPROC }' \
91      >> ${OUT_PENDING}
92  printf "\n" >> ${OUT_PENDING}
93fi
94
95# 2- tous les jobs running et pending
96# -----------------------------------
97
98if ( ${fg_all} ) ; then
99  get_run > ${OUT_TOUSJOBS}
100  get_pen >> ${OUT_TOUSJOBS}
101fi
102
103# Save files (WORK)
104# =================
105if ( ! ${fg_dry} ) ; then
106  Suffix=$( echo ${Today} | sed 's/-//g' )
107  [ -f ${SAVE_DIR}/${OUT_PENDING}_${Suffix} ] || echo "AAAA-MM-DD-HH:MM RUN   PENDING" > ${SAVE_DIR}/${OUT_PENDING}_${Suffix}
108  cat ${OUT_PENDING} >>${SAVE_DIR}/${OUT_PENDING}_${Suffix}
109  cp ${OUT_TOUSJOBS} ${SAVE_DIR}/${OUT_TOUSJOBS}_${Suffix}
110fi
111
Note: See TracBrowser for help on using the repository browser.