Outils pour utilisateurs

Outils du site


bloc_note

Ceci est une ancienne révision du document !


Bloc Note rapide

#!/bin/bash

DOSSIER="/confsite/tk/"
ARCHIV_JOURS=365        # nombre de jours d'archive 1 an
MAINTENANT=$(date +%s)

function purge(){
        fichier=$1
        prefixe=$2
        annee=$3
        mois=$4
        jour=$5
        heure=$6
        minute=$7

#       echo "Traitement du fichier : $fichier $prefixe $annee $mois $jour"

        # Convertir la date du fichier en timestamp
        date_fichier=$(date -d "$annee-$mois-$jour" +%s)

        # Calculer la différence en jours
        diff_jours=$(( (MAINTENANT - date_fichier) / 86400 ))

        # Obtenir le mois et l'année actuels
        mois_actuel=$(date +%m)
        annee_actuelle=$(date +%Y)

        # Conserver tous les fichiers du mois en cours
        if [[ "$annee" -eq "$annee_actuelle" && "$mois" -eq "$mois_actuel" ]]; then
#               echo "OK On concerve les fichiers du mois en cours : $fichier"
            continue
        fi

        # Conserver un fichier par mois pour les mois précédents
        if [[ ! -f "$DOSSIER/Sauvegarde_config_${prefixe}_${annee}_${mois}_01_00h00.tar.gz" ]] ; then
                mv $fichier  "$DOSSIER/Sauvegarde_config_${prefixe}_${annee}_${mois}_01_00h00.tar.gz"
            continue
        else
                if [[ ! $minute = "00" ]] && [[ ! $heure = "00" ]]; then
                echo "Ce fichier doit etre supprimé : $fichier $heure $minute"
                mv $fichier /confsite/tk/poubelle/ -f
                fi
        fi

        # Supprimer les fichiers de plus de $ARCHIV_JOURS
        if [[ "$diff_jours" -gt $ARCHIV_JOURS ]]; then
#               echo "Deplacement du fichier $fichier dans la poubelle"
                mv $fichier /confsite/tk/poubelle/ -f
        fi
}

find "$DOSSIER"  -maxdepth 1 -name 'Sauvegarde_config_*_*.tar.gz' | while read -r fichier; do
    # Extraire le préfixe et la date du fichier
    # Sauvegarde_config_tkvll_Valladolid_TK1_2025_05_12_02h17.tar.gz
    if [[ $fichier =~ Sauvegarde_config_([^_]+)_([^_]+)_TK([1-2]{1})_([0-9]{4})_([0-9]{2})_([0-9]{2})_([0-9]{2})h([0-9]{2})\.tar\.gz ]]; then
        #echo "Traitement du fichier : $fichier"
        prefixe="${BASH_REMATCH[1]}_${BASH_REMATCH[2]}_TK${BASH_REMATCH[3]}"
        annee="${BASH_REMATCH[4]}"
        mois="${BASH_REMATCH[5]}"
        jour="${BASH_REMATCH[6]}"
        heure="${BASH_REMATCH[7]}"
        minute="${BASH_REMATCH[8]}"

        purge $fichier $prefixe $annee $mois $jour $heure $minute

    else
        #Sauvegarde_config_tklha_Sandouville_1_TK1_2024_12_26_02h17.tar.gz
        if [[ $fichier =~ Sauvegarde_config_([^_]+)_([^_]+)_([^_]+)_TK([1-2]{1})_([0-9]{4})_([0-9]{2})_([0-9]{2})_([0-9]{2})h([0-9]{2})\.tar\.gz ]]; then
        #echo "Traitement du fichier : $fichier"
                prefixe="${BASH_REMATCH[1]}_${BASH_REMATCH[2]}_${BASH_REMATCH[3]}_TK${BASH_REMATCH[4]}"
                annee="${BASH_REMATCH[5]}"
                mois="${BASH_REMATCH[6]}"
                jour="${BASH_REMATCH[7]}"
                heure="${BASH_REMATCH[8]}"
                minute="${BASH_REMATCH[9]}"

                purge $fichier $prefixe $annee $mois $jour $heure $minute
        else
                #Sauvegarde_config_tkcvp_TK1_2022_05_01_02h17.tar.gz
                if [[ $fichier =~ Sauvegarde_config_([^_]+)_TK([1-2]{1})_([0-9]{4})_([0-9]{2})_([0-9]{2})_([0-9]{2})h([0-9]{2})\.tar\.gz ]]; then
                #echo "Traitement du fichier : $fichier"
                        prefixe="${BASH_REMATCH[1]}_TK${BASH_REMATCH[2]}"
                        annee="${BASH_REMATCH[3]}"
                        mois="${BASH_REMATCH[4]}"
                        jour="${BASH_REMATCH[5]}"
                        heure="${BASH_REMATCH[6]}"
                        minute="${BASH_REMATCH[7]}"

                        purge $fichier $prefixe $annee $mois $jour $heure $minute
                else
                echo " error Le fichier $fichier n'a pas le bon prefix"
                fi
        fi

    fi
done

echo "Purge de la poubelle a J+10"
find /confsite/tk/poubelle/ -mindepth 1 -mtime +10 -not -path "/confsite/tk/poubelle" -type f -delete
bloc_note.1747118787.txt.gz · Dernière modification : 2025/05/13 08:46 de admin