harmonisation des extensions de fichier, et modification de l'extraction du nom de perso pour fonctionner quand il y a plusieurs fichiers de log.

This commit is contained in:
Zatalyz 2022-02-27 16:58:09 +01:00
parent 4a67f35cd3
commit c0c6f8e718

View file

@ -65,10 +65,13 @@ fi
# TODO truc améliorable : arriver à gérer plusieurs persos # TODO truc améliorable : arriver à gérer plusieurs persos
if [ -z "$4" ] if [ -z "$4" ]
then then
myfunc() { for file1 in "$foldersource"/*
basename "$foldersource"/* .txt | cut -d_ -f2 | uniq do
myfunc() {
basename "$file1" .txt | cut -d_ -f2 | uniq
} }
perso="$(myfunc)" perso="$(myfunc)"
done
else perso="$4" else perso="$4"
fi fi
# Avoir une variable avec la majuscule au pseudo # Avoir une variable avec la majuscule au pseudo
@ -113,25 +116,25 @@ for logname in "$tmpfolder"/logcomplet_"$perso".txt
# On va faire un seul gros fichier par année # On va faire un seul gros fichier par année
for year in {2009..2025} ; do for year in {2009..2025} ; do
#echo "${year}" #echo "${year}"
grep "^${year}/" "$logname" >> "$yearfolder"/"${year}".log grep "^${year}/" "$logname" >> "$yearfolder"/"${year}".txt
# Effacer les fichiers vides # Effacer les fichiers vides
[ -s "$yearfolder"/"${year}".log ] || rm -f "$yearfolder"/"${year}".log [ -s "$yearfolder"/"${year}".txt ] || rm -f "$yearfolder"/"${year}".txt
#echo "${year} traitée" #echo "${year} traitée"
# On vérifie si le fichier d'année existe et on ne traite que celles qui existent # On vérifie si le fichier d'année existe et on ne traite que celles qui existent
if [ -f "$yearfolder"/"${year}".log ] ; then if [ -f "$yearfolder"/"${year}".txt ] ; then
# Puis on va faire un fichier par mois # Puis on va faire un fichier par mois
for month in {01..12} ; do for month in {01..12} ; do
# echo "${year}/${month} en cours" # echo "${year}/${month} en cours"
grep "^${year}/${month}" "$yearfolder"/"${year}".log > "$monthfolder"/"${year}_${month}".log grep "^${year}/${month}" "$yearfolder"/"${year}".txt > "$monthfolder"/"${year}_${month}".txt
[ -s "$monthfolder"/"${year}_${month}".log ] || rm -f "$monthfolder"/"${year}_${month}".log [ -s "$monthfolder"/"${year}_${month}".txt ] || rm -f "$monthfolder"/"${year}_${month}".txt
# On vérifie si le fichier année/mois existe et on ne traite que ceux qui existent # On vérifie si le fichier année/mois existe et on ne traite que ceux qui existent
if [ -f "$monthfolder"/"${year}_${month}".log ] ; then if [ -f "$monthfolder"/"${year}_${month}".txt ] ; then
#echo "$monthfolder"/"${year}_${month}".log #echo "$monthfolder"/"${year}_${month}".txt
# Puis un fichier par jour # Puis un fichier par jour
for day in {01..31} ; do for day in {01..31} ; do
#echo "${year}/${month}/${day} en cours" #echo "${year}/${month}/${day} en cours"
grep "^${year}/${month}/${day}" "$monthfolder"/"${year}_${month}".log > "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".log grep "^${year}/${month}/${day}" "$monthfolder"/"${year}_${month}".txt > "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".txt
[ -s "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".log ] || rm -f "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".log [ -s "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".txt ] || rm -f "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".txt
#echo "${year}/${month}/${day} traité" #echo "${year}/${month}/${day} traité"
done done
fi fi
@ -143,16 +146,16 @@ for logname in "$tmpfolder"/logcomplet_"$perso".txt
fi fi
done done
#Tri des fichiers dans des dossiers du type Dossier_trié/année/mois/log.log #Tri des fichiers dans des dossiers du type Dossier_trié/année/mois/log.txt
# On récupère la date, en formattant comme pour les logs # On récupère la date, en formattant comme pour les logs
for f in $dayfolder/*.log for f in $dayfolder/*.txt
do do
year=${f: -14:4} year=${f: -14:4}
month=${f: -9:2} month=${f: -9:2}
day=${f: -6:2} day=${f: -6:2}
# On se fait une jolie variable qui imite la partie datée du nom des fichiers de log # On se fait une jolie variable qui imite la partie datée du nom des fichiers de log
log=log_"$perso"_"${year}_${month}_${day}.log" log=log_"$perso"_"${year}_${month}_${day}.txt"
# on créé le dossier de chaque mois dans les archives s'il n'existe pas # on créé le dossier de chaque mois dans les archives s'il n'existe pas
mkdir -p "$folderrawsorted"/"$year"/"$month/" mkdir -p "$folderrawsorted"/"$year"/"$month/"
# on déplace ces logs dans leur archive # on déplace ces logs dans leur archive
@ -166,15 +169,15 @@ echo "Les fichiers ont été découpés et rangés"
############# #############
# Alors là, la misère... car on a des fichiers dans des sous-dossiers. # Alors là, la misère... car on a des fichiers dans des sous-dossiers.
# Le plus simple : tout remettre dans un dossier en vrac et traiter à partir de là. # Le plus simple : tout remettre dans un dossier en vrac et traiter à partir de là.
find "$folderrawsorted" -maxdepth 4 -name '*.log' -exec cp {} "$tmparoundfolder"/ \; find "$folderrawsorted" -maxdepth 4 -name '*.txt' -exec cp {} "$tmparoundfolder"/ \;
for mylog in "$tmparoundfolder/log"*.log for mylog in "$tmparoundfolder/log"*.txt
do do
justnamelog() { justnamelog() {
basename -s .log "$mylog" basename -s .txt "$mylog"
} }
namelog="$(justnamelog)" namelog="$(justnamelog)"
sourcelog="$tmparoundfolder/${namelog}.log" sourcelog="$tmparoundfolder/${namelog}.txt"
finallog="$tmparoundfolder2/${namelog}_alentours.txt" finallog="$tmparoundfolder2/${namelog}_alentours.txt"
#./1analyse_new_logryzom.sh $sourcelog $finallog #./1analyse_new_logryzom.sh $sourcelog $finallog
# Analyse des logs proprement dites # Analyse des logs proprement dites
@ -222,7 +225,7 @@ done
rm -r "$tmpfolder" rm -r "$tmpfolder"
# On compte et vérifie les fichiers # On compte et vérifie les fichiers
count=$(find $folderrawsorted -maxdepth 4 -name '*.log' | wc -l) count=$(find $folderrawsorted -maxdepth 4 -name '*.txt' | wc -l)
echo "Les sources sont triées en $count fichiers dans $folderrawsorted. Contrôlez ce nombre sur controlline_$perso.txt" echo "Les sources sont triées en $count fichiers dans $folderrawsorted. Contrôlez ce nombre sur controlline_$perso.txt"
countaround=$(find $folderaround -maxdepth 4 -name '*.txt' | wc -l) countaround=$(find $folderaround -maxdepth 4 -name '*.txt' | wc -l)
echo "$countaround fichiers ont été nettoyés et rangés dans $folderaround. " echo "$countaround fichiers ont été nettoyés et rangés dans $folderaround. "