Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
executable file 149 lines (136 sloc) 4.54 KB
#!/bin/sh
#
# mediaspip_media
# Nombre de media dans mediaspip
#
# Ce script est sensé être utilisé par Munin (http://munin-monitoring.org)
# pour monitorer le nombre de medias publiés sur une ferme de MediaSPIP (http://www.mediaspip.net)
#
# VERSION
# v0.2 (2013-05-02)
#
# AUTHORS
# © Association INFINI - www.infini.fr - Eric Talarmain (2011-xxxx)
# © Association Arscenic - www.arscenic.org - kent1 (kent1{at}arscenic.info 2013-xxxx)
# Distribué sous licence GNU/GPLv2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)
#
# CONFIGURATION
#
# Les paramètres suivants sont disponibles
#
# [mediaspip_media]
# dossier - Le ou les dossiers sites/ de mutualisation à scanner, à séparer par ":" si vous voulez scanner
# plusieurs mutualisation (/var/www/mediaspip/sites par défaut)
#
#%# family=contrib
#%# capabilities=autoconf suggest
. $MUNIN_LIBDIR/plugins/plugin.sh
DOSSIERS=${dossier:-/var/www/mediaspip/sites}
#####
# Autoconfiguration:
# - On vérifie que tous les dossiers fournis en configuration sont accessibles en lecture
#####
if [ "$1" = "autoconf" ]; then
IFS=":"
set $DOSSIERS
i=0
for item
do
if [ ! -r $item ]; then
echo "no ($item n est pas accessible)"
exit 0
fi
done
echo yes
exit 0
fi
if [ "$1" = "config" ]; then
echo 'graph_title Media dans MediaSPIP'
echo 'graph_vlabel nb'
echo 'graph_info Statistiques d utilisation de MediaSPIP.'
echo 'graph_category SPIP'
IFS=":"
set $DOSSIERS
i=0
for item
do
echo "media$i.label Medias (Total) $i"
echo "media$i.type GAUGE"
echo "media$i.draw LINE1"
echo "media$i.info Nombre de media sur les sites MediaSPIP ($item)"
echo "video$i.label Videos $i"
echo "video$i.type GAUGE"
echo "video$i.draw LINE1"
echo "video$i.info Nombre de video sur les sites MediaSPIP ($item)"
echo "audio$i.label Audios $i"
echo "audio$i.type GAUGE"
echo "audio$i.draw LINE1"
echo "audio$i.info Nombre de documents audio sur les sites MediaSPIP ($item)"
echo "photo$i.label Photos $i"
echo "photo$i.type GAUGE"
echo "photo$i.draw LINE1"
echo "photo$i.info Nombre d illustrations sur les sites MediaSPIP ($item)"
echo "document$i.label Documents $i"
echo "document$i.type GAUGE"
echo "document$i.draw LINE1"
echo "document$i.info Nombre de documents textes illustres sur les sites MediaSPIP ($item)"
echo "autre$i.label Autres $i"
echo "autre$i.type GAUGE"
echo "autre$i.draw LINE1"
echo "autre$i.info Nombre des autres documents sur les sites MediaSPIP ($item)"
i=$((i+1))
done
exit 0
fi
exclure="*([0-9a-f]{32}\.[a-z0-9]{3}|\.ok|-[0-9]{1,3}\.[0-9a-z]{3}|\-encoded\.[0-9a-z]{3}|\-encoded\.[0-9a-z]{3})$"
IFS=":"
set $DOSSIERS
i=0
for item
do
find $item -mindepth 4 -maxdepth 4 -path "*/IMG/*" -type f | egrep -v "$exclure" > /tmp/mediaspip_comptage.log
nb_media=`cat /tmp/mediaspip_comptage.log |wc -l`
echo "media$i.value ${nb_media}"
cat /tmp/mediaspip_comptage.log | awk 'BEGIN {FS="." }{print $NF;}' | sort |uniq -c | tr -s ' ' |cut -d ' ' -f2- |sort -gr | awk '
BEGIN {FS=" "
video=0
audio=0
photo=0
document=0
autre=0
}
video_regexp = "3gp|asf|avi|dv|f4p|flv|m2p|m2ts|m4v|mkv|mng|mov|mp4|mpg|mts|ogv|ogx|qt|ts|webm|wmv|y4m";
audio_regexp = "3ga|aac|ac3|aif|aiff|f4a|f4b|flac|m4a|m4b|m4p|m4r|mid|mka|mp3|mpc|oga|ogg|ra|ram|rm|spx|wav|wma";
photo_regexp = "jpg|png|gif|bmp|psd|ai|svg|tif|wmf";
document_regexp = "csv|doc|docm|eps|epub|gpx|html|kml|kmz|odt|odp|pdf|ps|tex|txt|xls";
{
if($2 ~ video_regexp)
video+=$1;
else if($2 ~ audio_regexp)
audio+=$1;
else if($2 ~ photo_regexp)
photo+=$1;
else if($2 ~ document_regexp)
document+=$1;
else
autre+=$1;
}
END {
print "video", video;
print "audio", audio;
print "photo", photo;
print "document", document;
print "autre", autre;
}' > /tmp/mediaspip_compter_categorie_extension.log
nb_video=`cat /tmp/mediaspip_compter_categorie_extension.log | grep video | cut -d ' ' -f2`
echo "video$i.value ${nb_video}"
nb_audio=`cat /tmp/mediaspip_compter_categorie_extension.log | grep audio | cut -d ' ' -f2`
echo "audio$i.value ${nb_audio}"
nb_photo=`cat /tmp/mediaspip_compter_categorie_extension.log | grep photo | cut -d ' ' -f2`
echo "photo$i.value ${nb_photo}"
nb_document=`cat /tmp/mediaspip_compter_categorie_extension.log | grep document | cut -d ' ' -f2`
echo "document$i.value ${nb_document}"
nb_autre=`cat /tmp/mediaspip_compter_categorie_extension.log | grep autre | cut -d ' ' -f2`
echo "autre$i.value ${nb_autre}"
i=$((i+1))
done