Newer
Older
sisyphe-helpers / analyse / analyse
@CASTELAIN CASTELAIN on 29 Nov 2021 3 KB Renommage en corpusResources
#!/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)
#				18/12/2020	Adaptation aux machines vp-istex-fsmap et vp-panist2-sisyphe
#				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 &'