Outils pour utilisateurs

Outils du site


tech:purge_keep_only_last_recent

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
tech:purge_keep_only_last_recent [2026/02/12 11:31] Jean-Baptistetech:purge_keep_only_last_recent [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>find Script Log}}
 +
 +# Script effacer plusieurs fichiers, sauf les n derniers
 +
 +Voir aussi logrotate
 +
 +script 
 +
 +`purge_keep_only_last_recent.sh`
 +~~~bash
 +#! /bin/bash
 +set -o nounset
 +
 +# Parametres
 +CHEMIN=~/backup/
 +
 +# ADD 1; If KEEP_LAST=5 => Only 4 will be kept
 +KEEP_LAST=10
 +
 +purge() {
 +        local FICHIER=$1
 +
 +        NEWER_THAN=$(ls -1t $CHEMIN/$FICHIER | sed -ne "${KEEP_LAST}p")
 +
 +        if [[ ! -z "$NEWER_THAN" ]]
 +        then
 +                find $CHEMIN -depth -maxdepth 1 -type f -not -newer $(ls -1t $CHEMIN/$FICHIER | sed -ne "${KEEP_LAST}p") -name "$FICHIER" -delete
 +        fi
 +}
 +
 +
 +purge 'information_schema-*.sql.gz'
 +purge 'mysql-*.sql.gz'
 +purge 'performance_schema-*.sql.gz'
 +purge 'zabbix-*.sql.gz'
 +~~~
 +
 +----
 +### Notes sur "-delete" de find
 +
 +**-delete**
 +Effacer les fichiers, et renvoyer vrai  si  l'effacement  a  réussi.  Si
 +l'effacement  échoue, un message d'erreur est envoyé. Si -delete échoue,
 +le statut de sortie de  find  sera  différent  de  zéro  (si  jamais  il
 +s'interrompt).  L'utilisation de l'action -delete active automatiquement
 +l'option -depth.
 +
 +Attention : N'oubliez pas que la ligne de commande de find  est  évaluée  
 +comme  une  expression. Écrire -delete en premier forcera find à essayer
 +d'effacer tout ce qui se trouve dans les points de départ que vous  avez
 +indiqué. Lorsque vous testez une ligne de commande de find qui utilisera 
 +-delete, vous devriez préciser l'option -depth afin  d'éviter  les  sur‐
 +prises  plus  tard.  Puisque -delete entraîne -depth, vous ne pouvez pas 
 +utiliser en même temps -prune et -delete.
 +
 +Source : man find
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki