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
|
||||
if [ -z "$4" ]
|
||||
then
|
||||
for file1 in "$foldersource"/*
|
||||
do
|
||||
myfunc() {
|
||||
basename "$foldersource"/* .txt | cut -d_ -f2 | uniq
|
||||
basename "$file1" .txt | cut -d_ -f2 | uniq
|
||||
}
|
||||
perso="$(myfunc)"
|
||||
done
|
||||
else perso="$4"
|
||||
fi
|
||||
# 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
|
||||
for year in {2009..2025} ; do
|
||||
#echo "${year}"
|
||||
grep "^${year}/" "$logname" >> "$yearfolder"/"${year}".log
|
||||
grep "^${year}/" "$logname" >> "$yearfolder"/"${year}".txt
|
||||
# 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"
|
||||
# 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
|
||||
for month in {01..12} ; do
|
||||
# echo "${year}/${month} en cours"
|
||||
grep "^${year}/${month}" "$yearfolder"/"${year}".log > "$monthfolder"/"${year}_${month}".log
|
||||
[ -s "$monthfolder"/"${year}_${month}".log ] || rm -f "$monthfolder"/"${year}_${month}".log
|
||||
grep "^${year}/${month}" "$yearfolder"/"${year}".txt > "$monthfolder"/"${year}_${month}".txt
|
||||
[ -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
|
||||
if [ -f "$monthfolder"/"${year}_${month}".log ] ; then
|
||||
#echo "$monthfolder"/"${year}_${month}".log
|
||||
if [ -f "$monthfolder"/"${year}_${month}".txt ] ; then
|
||||
#echo "$monthfolder"/"${year}_${month}".txt
|
||||
# Puis un fichier par jour
|
||||
for day in {01..31} ; do
|
||||
#echo "${year}/${month}/${day} en cours"
|
||||
grep "^${year}/${month}/${day}" "$monthfolder"/"${year}_${month}".log > "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".log
|
||||
[ -s "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".log ] || rm -f "$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}".txt ] || rm -f "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".txt
|
||||
#echo "${year}/${month}/${day} traité"
|
||||
done
|
||||
fi
|
||||
|
@ -143,16 +146,16 @@ for logname in "$tmpfolder"/logcomplet_"$perso".txt
|
|||
fi
|
||||
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
|
||||
for f in $dayfolder/*.log
|
||||
for f in $dayfolder/*.txt
|
||||
do
|
||||
year=${f: -14:4}
|
||||
month=${f: -9:2}
|
||||
day=${f: -6:2}
|
||||
|
||||
# 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
|
||||
mkdir -p "$folderrawsorted"/"$year"/"$month/"
|
||||
# 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.
|
||||
# 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
|
||||
justnamelog() {
|
||||
basename -s .log "$mylog"
|
||||
basename -s .txt "$mylog"
|
||||
}
|
||||
namelog="$(justnamelog)"
|
||||
sourcelog="$tmparoundfolder/${namelog}.log"
|
||||
sourcelog="$tmparoundfolder/${namelog}.txt"
|
||||
finallog="$tmparoundfolder2/${namelog}_alentours.txt"
|
||||
#./1analyse_new_logryzom.sh $sourcelog $finallog
|
||||
# Analyse des logs proprement dites
|
||||
|
@ -222,7 +225,7 @@ done
|
|||
rm -r "$tmpfolder"
|
||||
|
||||
# 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"
|
||||
countaround=$(find $folderaround -maxdepth 4 -name '*.txt' | wc -l)
|
||||
echo "$countaround fichiers ont été nettoyés et rangés dans $folderaround. "
|
||||
|
|
Loading…
Reference in a new issue