diff --git a/analyse/analyse b/analyse/analyse new file mode 100755 index 0000000..10ae98e --- /dev/null +++ b/analyse/analyse @@ -0,0 +1,117 @@ +#!/bin/bash + +# Module d'analyse de corpus avec envoi sur VM esk et lancement logstash +# Script à lancer de preference dans un screen +# Date: 28/10/2020 +# Correctifs: +# 06/11/2020 Prise en compte de chemin de corpus avec espace(s) +# Auteur: David Castelain +# + +# Debuggage +#set -x + +# Verification du USER +if [ $USER != panist ] && [ $USER != istex ]; then + echo "Vous devez être loggé en tant que panist ou istex" + exit 1 +fi + + +# Verification du nombre d'arguments +if [ "$#" -eq 3 ]; then + if [ $1 = g ]; then + analyse_detaillee='n' + elif [ $1 = d ]; then + analyse_detaillee='o' + else + echo "SYNTAXE: analyse [g|d] [analysis_name] [corpus_path]" + echo "EXEMPLE: analyse g cup-2020-10-05 /work/temp/collex-persee-livraison-11092020" + exit 1 + fi + my_analysis=$2 + corpus_path=$3 +elif [ "$#" -ne 0 ]; then + echo "SYNTAXE: analyse [g|d] [analysis_name] [corpus_path]" + echo "SYNTAXE en mode interactif: analyse" + exit 1 +else + # Recuperation des arguments en mode interactif + # Type d'analyse + echo "Voulez-vous une analyse détaillee (o/n)?" + until [[ ${analyse_detaillee} =~ ^[no]$ ]]; do + read analyse_detaillee + done + + # Nom de l'analyse + echo "Nom de votre analyse?" + echo "La première partie doit permettre de trouver un nom de corpusResouces" + echo "Exemple: cup-2020-10-05 (ne pas préciser detaillee ou générique)" + read my_analysis + + # Chemin du corpus à analyser + echo "Chemin de votre corpus?" + echo "Exemple: /work/temp/collex-persee-livraison-11092020" + read corpus_path +fi + + +if [ ${analyse_detaillee} = n ] +then + analysis_name=${my_analysis} +else + analysis_name=${my_analysis}-detaillee +fi + +analysis_json=analyse-${analysis_name}.json +logstash_path='\/logstash\/data\/'${analysis_json} +logstash_index=analyse-${analysis_name} + + +# Suppression de toutes les clés de la base +if [ $USER == panist ]; then + docker exec panist-redis bash -c 'redis-cli flushall' +else + ${HOME}/redis-3.2.5/bin/redis-cli flushall +fi + + +# Suppression de tous les processsus node +kill -1 `pgrep node` 2>/dev/null + + +# Analyse sisyphe +cd ${HOME}/sisyphe +if [ ${analyse_detaillee} = n ] +then + ./app -n ${analysis_name} -s filetype,pdf,xml,xpath,out "${corpus_path}" +else + ./app -n ${analysis_name} -c ../corpusResources/ -s filetype,pdf,xml,xpath,out "${corpus_path}" +fi + + +# Chemin du fichier json genere +analysis_file_path=`find ${HOME} -name ${analysis_json}` + + +# Copie du fichier d'analyse sur VM esk +scp ${analysis_file_path} istex@vp-istex2-esk.intra.inist.fr:/applis/istex/home/logstash/data/. + + +# Modification du fichier logstash.conf +ssh istex@vp-istex2-esk.intra.inist.fr "sed -i.old \ + -e 's/index => \"[^\"]*\"/index => \"${logstash_index}\"/' \ + -e 's/path => \[\"[^\"]*\"\]/path => \[\"${logstash_path}\"\]/' \ + logstash/conf/logstash.conf" + + +# Suppression index elasticsearch du meme nom si existant +curl --user kibana:klskv54sdfr654zer --noproxy localhost -XDELETE "http://vp-istex2-esk.intra.inist.fr:9200/${logstash_index}" > /dev/null 2>&1 + + +# Lancement de logstash +ssh istex@vp-istex2-esk.intra.inist.fr \ + 'cd /applis/istex/home/logstash; \ + docker run --rm --network=clusteresk_esnet --link elasticsearch:elasticsearch \ + -v "$PWD":/logstash istex-data-logstash:latest -f /logstash/conf/logstash.conf &' +