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:
parent
4a67f35cd3
commit
c0c6f8e718
1 changed files with 22 additions and 19 deletions
39
clean_log.sh
39
clean_log.sh
|
@ -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
|
||||||
|
for file1 in "$foldersource"/*
|
||||||
|
do
|
||||||
myfunc() {
|
myfunc() {
|
||||||
basename "$foldersource"/* .txt | cut -d_ -f2 | uniq
|
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. "
|
||||||
|
|
Loading…
Reference in a new issue