|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +amountWarn=50 # [%] |
| 4 | +amountAlarm=98 # [%] |
| 5 | + |
| 6 | +echo "" |
| 7 | +echo "starting `basename $0` at `date` on `hostname`..." |
| 8 | +echo "warning level at ${amountWarn} %" |
| 9 | +echo "alarm level at ${amountAlarm} %" |
| 10 | + |
| 11 | +# check AFS workspace |
| 12 | + |
| 13 | +# get current quota: |
| 14 | +# NB: example reply of fs listquota: |
| 15 | +# Volume Name Quota Used %Used Partition |
| 16 | +# work.boinc 104857600 19303795 18% 0% |
| 17 | + |
| 18 | +fsListquota=`fs listquota /afs/cern.ch/work/b/boinc/boinc` |
| 19 | +currAmount=`echo "${fsListquota}" | grep work.boinc | awk '{print ($4)}' | cut -d\% -f1` |
| 20 | + |
| 21 | +echo "output of fs listquota /afs/cern.ch/work/b/boinc/boinc:" |
| 22 | +echo "${fsListquota}" |
| 23 | +if [ ${currAmount} -gt ${amountAlarm} ] ; then |
| 24 | + echo "...sending alarm to [email protected]" |
| 25 | + echo "${fsListquota}" | mail -s "boinc quota on AFS above alarm level!" [email protected] |
| 26 | +elif [ ${currAmount} -gt ${amountWarn} ] ; then |
| 27 | + echo "...sending warning to [email protected]" |
| 28 | + echo "${fsListquota}" | mail -s "boinc quota on AFS above warning level..." [email protected] |
| 29 | +else |
| 30 | + echo "...AFS quota is fine." |
| 31 | +fi |
| 32 | + |
| 33 | +# check EOS workspace |
| 34 | + |
| 35 | +# get current quota: |
| 36 | +# NB: example reply of eos quota: |
| 37 | + |
| 38 | +# pre-configuring default route to /eos/user/s/sixtadm/ |
| 39 | +# -use $EOSHOME variable to override |
| 40 | +# |
| 41 | +# By user: |
| 42 | +# ┏━> Quota Node: /eos/user/ |
| 43 | +# ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ |
| 44 | +# │user │used bytes│logi bytes│used files│aval bytes│aval logib│aval files│ filled[%]│vol-status│ino-status│ |
| 45 | +# └──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘ |
| 46 | +# sixtadm 0 B 0 B 0 2.00 TB 1.00 TB 1.00 M 0.00 % ok ok |
| 47 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ |
| 48 | +# |
| 49 | +# By group: |
| 50 | +# ┏━> Quota Node: /eos/user/ |
| 51 | +# ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ |
| 52 | +# │group │used bytes│logi bytes│used files│aval bytes│aval logib│aval files│ filled[%]│vol-status│ino-status│ |
| 53 | +# └──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘ |
| 54 | +# def-cg 83.42 TB 41.71 TB 16.36 M 0 B 0 B 0 100.00 % ignored ignored |
| 55 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ |
| 56 | + |
| 57 | +export EOS_MGM_URL=root://eosuser.cern.ch |
| 58 | +eosQuota=`eos quota` |
| 59 | +currAmount=`echo "${eosQuota}" | grep sixtadm | awk '{printf ("%.0f",$13)}'` |
| 60 | + |
| 61 | +echo "output of eos quota:" |
| 62 | +echo "${eosQuota}" |
| 63 | +if [ ${currAmount} -gt ${amountAlarm} ] ; then |
| 64 | + echo "...sending alarm to [email protected]" |
| 65 | + echo "${eosQuota}" | mail -s "boinc quota on EOS above alarm level!" [email protected] |
| 66 | +elif [ ${currAmount} -gt ${amountWarn} ] ; then |
| 67 | + echo "...sending warning to [email protected]" |
| 68 | + echo "${eosQuota}" | mail -s "boinc quota on EOS above warning level..." [email protected] |
| 69 | +else |
| 70 | + echo "...EOS quota is fine." |
| 71 | +fi |
| 72 | + |
| 73 | +echo "...done by `date`." |
0 commit comments