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 : de admin
