Changeset 92619 in spip-zone


Ignore:
Timestamp:
Nov 2, 2015, 2:33:34 PM (4 years ago)
Author:
tofulm@…
Message:

On ajoute un nouveau critere : nombre de sauvegarde a conserver.

Cela evite la suppression de tous les dumps dans le cas où le site ne serait pas souvent visité

Location:
_plugins_/saveauto/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saveauto/trunk/formulaires/configurer_saveauto.html

    r84753 r92619  
    8888                        </ul>
    8989                        <ul id="lave_plus">
     90                                <li class="editer_nbr_garder">
     91                                        <label for="nbr_garder"><:saveauto:label_nbr_garder:></label>
     92                                        <p class="explication"><:saveauto:help_nbr_garder:></p>
     93                                        <input type="text" name="nbr_garder" class="text" id="nbr_garder" value="[(#ENV{nbr_garder})]" />
     94                                </li>
    9095                                <li class="editer_jours_obso">
    9196                                        <label for="jours_obso"><:saveauto:label_obsolete_jours:></label>
  • _plugins_/saveauto/trunk/inc/saveauto_cleaner.php

    r82617 r92619  
    1111 */
    1212function inc_saveauto_cleaner_dist($options=array()){
    13         $temps = time();
     13    $temps = time();
    1414
    15         include_spip('inc/config');
    16         $jours_obso = intval(lire_config('saveauto/jours_obso'));
    17         $auteur = $options['auteur'] ? $options['auteur'] : $GLOBALS['visiteur_session']['id_auteur'];
    18         include_spip("inc/saveauto_repertoire_save");
    19         $dir_dump = saveauto_repertoire_save(lire_config('saveauto/repertoire_save'));
     15    include_spip('inc/config');
     16    $jours_obso = intval(lire_config('saveauto/jours_obso'));
     17    $nbr_garder = intval(lire_config('saveauto/nbr_garder'));
     18    $auteur     = $options['auteur'] ? $options['auteur'] : $GLOBALS['visiteur_session']['id_auteur'];
     19    include_spip("inc/saveauto_repertoire_save");
     20    $dir_dump = saveauto_repertoire_save(lire_config('saveauto/repertoire_save'));
    2021
    21         if($jours_obso > 0){
    22                 $prefixe = lire_config('saveauto/prefixe_save').'_';
    23             $sauvegardes = preg_files($dir_dump, "${prefixe}.+\.(zip|sql)$");
    24             $liste = array();
    25             foreach($sauvegardes as $sauvegarde) {
    26                         $date_fichier = filemtime($sauvegarde);
    27                         if ($temps > ($date_fichier + $jours_obso*3600*24)) {
    28                                 $liste[] = $sauvegarde;
    29                                 supprimer_fichier($sauvegarde);
    30                         }
    31                 }
     22    if($jours_obso > 0){
     23        $prefixe = lire_config('saveauto/prefixe_save').'_';
     24        $sauvegardes = preg_files($dir_dump, "${prefixe}.+\.(zip|sql)$");
     25        $nbr_sauvegardes = count($sauvegardes);
     26
     27        $liste = array();
     28        foreach($sauvegardes as $sauvegarde) {
     29            if ($nbr_garder AND $nbr_sauvegardes <= $nbr_garder) {
     30                break;
     31            }
     32
     33            $date_fichier = filemtime($sauvegarde);
     34            if ($temps > ($date_fichier + $jours_obso*3600*24)) {
     35                echo "j'efface : $sauvegarde <br>";
     36                $liste[] = $sauvegarde;
     37                supprimer_fichier($sauvegarde);
     38                $nbr_sauvegardes--;
     39            }
     40        }
    3241    }
    3342
    34         // Pipeline
    35         pipeline('post_sauvegarde',
    36                 array(
    37                         'args' => array(
    38                                 'liste' => $liste,
    39                                 'auteur' => $auteur,
    40                                 'type' => 'saveauto_clean'
    41                         ),
    42                         'data' => ''
    43                 )
    44         );
     43    // Pipeline
     44    pipeline('post_sauvegarde',
     45        array(
     46            'args' => array(
     47                'liste' => $liste,
     48                'auteur' => $auteur,
     49                'type' => 'saveauto_clean'
     50            ),
     51            'data' => ''
     52        )
     53    );
    4554
    4655    /**
    4756     * notifications si necessaire
    4857     */
    49         if (!$options['manuel']
    50         AND ($notifications = charger_fonction('notifications', 'inc'))) {
    51                 $notifications('saveauto_cleaner', '',
    52                         array('liste' => $liste, 'auteur' => $auteur)
    53                 );
    54         }
     58    if (!$options['manuel']
     59    AND ($notifications = charger_fonction('notifications', 'inc'))) {
     60        $notifications('saveauto_cleaner', '',
     61            array('liste' => $liste, 'auteur' => $auteur)
     62        );
     63    }
    5564
    56         return $liste;
     65    return $liste;
    5766}
    5867?>
  • _plugins_/saveauto/trunk/lang/saveauto_fr.php

    r87140 r92619  
    3131        'help_mail_max_size' => 'Saisir la taille maximale en Mo du fichier de sauvegarde au-delà de laquelle le mail ne sera pas envoyé (valeur à vérifier auprès de votre fournisseur de mail).',
    3232        'help_max_zip' => 'Le fichier de sauvegarde est automatiquement zippé si sa taille est inférieure à un seuil. Saisir ce seuil en Mo. (Ce seuil est nécessaire pour ne pas planter le serveur par la confection d’un trop gros zip)',
     33    'help_nbr_garder' => 'Indiquer le nombre de sauvegardes en dessous duquel le critère de durée de conservation ne sera pas exécuté',
    3334        'help_notif_active' => 'Si vous souhaitez être prévenus des traitements automatiques activez les notifications. Pour la sauvegarde automatique vous recevrez le fichier généré par mail si celui-ci n’est pas trop volumineux et que le plugin Facteur est activé.',
    3435        'help_notif_mail' => 'Saisir les adresses en les séparant par des virgules ",".',
     
    6869        'label_max_zip' => 'Seuil des zips',
    6970        'label_nettoyage_journalier' => 'Activer le nettoyage journalier des archives',
     71    'label_nbr_garder' => 'Combien de sauvegardes doit on garder',
    7072        'label_notif_active' => 'Activer les notifications',
    7173        'label_notif_mail' => 'Adresses email à notifier',
Note: See TracChangeset for help on using the changeset viewer.