playground:playground

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édentes Révision précédente
Prochaine révision
Révision précédente
playground:playground [2017/11/24 19:45] kanabosplayground:playground [2021/01/08 23:03] (Version actuelle) – supprimée qduchemi
Ligne 1: Ligne 1:
-======Rotation des sauvegarde====== 
- 
-L'une des problématiques de l'archivage des sauvegardes est la question de la rotation, ou dit autrement la sélection des sauvegardes à conserver sur le court, moyen et long terme. Une sauvegarde datant de la semaine dernière, voire du mois dernier, devient de moins en moins pertinente : le nombre de sauvegarde archivé doit donc être réduit au cours du temps. 
-===== L'enjeu ===== 
-L'enjeu est de mettre en place un ou plusieurs scripts, répondant à certains critères : 
- 
-  * **Pertinence** des sauvegardes choisies 
-    * le nombre de sauvegarde doit réduire au cours du temps selon une logique. 
-  * **Adaptabilité** du programme 
-    * Les scripts sont aisément modifiables pour faire de la gestion de sauvegarde sur d'autres échelles de temps 
-    * Les scripts disposent de paramètres (nombres de sauvegardes, emplacement) 
-    * Le format attendu des date de sauvegarde est modifiable 
-  * **Simplicité** de fonctionnement 
- 
-===== La conception ===== 
-Le premier objectif de conception a été de trouver une manière simple de sélectionner des sauvegardes pertinentes. 
- 
-Suite au constat que les sauvegardes étaient produites de manière régulière, l'**hypothèse d'équidistance** a été considérée. De ce fait, le calcul des dates pertinentes se réduit à un calcul d'indices de tableau avec un pas constant (Nombre de sauvegarde total/Nombre de sauvegarde à conserver) : 
- 
-<file> 
- 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 
-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
-|X |  |  |  |  |  |X |  |  |  |  |  |X |  |  |  |  |  |X |  |  |  |  |  | 
-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
-                                                 ^ 
-                                                 | 
- +-----------------+-----------------+-----------------+ 
- 
- Exemple : 4 sauvegardes sur 24 / jour 
-</file> 
-La second objectif a été la définition des différents scripts : 
-  * Un premier script réduit le nombre de sauvegarde par jour sur les 6 jours précédents.  
-    * Aucune sauvegarde sur les dernières 24h ne sera supprimée par ce script. 
-    * Il est exécuté **tout les jours**. 
-  * Un second script réduit le nombre de sauvegarde de la semaine précédente.  
-    * Aucune sauvegarde sur les 7 derniers jours ne sera supprimée par ce script.  
-    * Il est exécuté **toutes les semaines**. 
-  * Enfin, un dernier script est exécuté toutes les 4 semaines pour réduire le nombre de sauvegardes sur 48 semaines. 
- 
-Il est à remarquer qu'il est théoriquement suffisant pour chaque script de ne traiter que la période de temps la plus proche (jour, semaine, ...), c'est à dire la veille pour le script s'exécutant chaque jour, et la dernière semaine pour celui s'exécutant chaque mois. 
- 
-Cependant, dans le cas ou un script ne peut être exécuté pour une raison quelconque (panne, machine éteinte) à l'heure prévue, le traitement se fera à la prochaine exécution puisque chaque script traite plusieurs périodes de temps (6 derniers jours, 3 dernières semaines). 
- 
-===== La réalisation ===== 
- 
-Le choix du langage Bash a été décidé pour l'écriture des scripts. Leur fonctionnement est similaire, et se découpe en 3 étapes : 
-  - **Recensement** des dates utiles, la date de départ étant la plus récente. 
-    * ''week_rotator.sh''  : 6 tableaux représentant les 6 derniers jours 
-    * ''month_rotator.sh'' : 3 tableaux représentant les 3 dernières semaines 
-    * ''year_rotator.sh''  : TODO 
-  - **Sélection** des sauvegardes à conserver dans chaque tableau (par calcul des indices) 
-  - **Suppression** des sauvegardes non conservées. 
- 
-Les fonctions communes aux différents scripts sont issues de différents fichiers dans le dossier //lib // : 
-  * ''date'' : Traitement des dates 
-    * Conversion de date entre : 
-      * le format de sauvegarde choisi,  
-      * le format Unix (utilisable avec le programme binaire date) 
-      * le format Timestamp (utile pour le calcul d'intervalle de date) 
-    * Calcul de la différence entre deux dates dans n'importe lequel des formats 
-    * Ajout de quantité de temps (seconde, minute, heure, semaine) à une date 
-  * ''array'' : Manipulation simplifiée de tableaux en Bash (insertion, suppression, lecture, écriture) 
-  * ''functions'' : Fonctions spécifiquement utiles aux scripts (calcul d'index, suppression des sauvegardes) 
- 
-Par ailleurs, les scripts sont lancés automatiquement grâce à des tâches cron. 
-===== Mise en place ===== 
-Les scripts mis en place au sein de l'infrastructure de Picasoft fonctionnent avec les paramètres suivants : 
-  * ''week_rotator.sh <dossier des sauvegardes> 2''  : 2 sauvegardes par jour de la semaine 
-  * '' month_rotator.sh <dossier des sauvegardes> 7'' : 7 sauvegardes par semaine (1 par jour de la semaine) 
- 
-Étant donné que les scripts sont exécutés à la fin de la journée prévue, les résultats suivants sont attendus. 
- 
-Pour ''week_rotator.sh'' : 
-<file> 
- 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 
-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
-|X |  |  |  |  |  |  |  |  |  |  |  |X |  |  |  |  |  |  |  |  |  |  |  | 
-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
-                                   ^ 
-                                   | 
- +-----------------------------------+ 
- Légende : 2 sauvegardes sur 24 par jour de la semaine courante 
-</file> 
-Pour ''month_rotator.sh'' : 
-<file> 
-+------------+------------+------------+------------+------------+------------+------------+ 
-|  23    11  |  23    11  |  23    11  |  23    11  |  23    11  |  23    11  |  23    11  | 
-| +--+  +--+ | +--+  +--+ | +--+  +--+ | +--+  +--+ | +--+  +--+ | +--+  +--+ | +--+  +--+ | 
-| |X |  |  | | |X |  |  | | |X |  |  | | |X |  |  | | |X |  |  | | |X |  |  | | |X |  |  | | 
-| +--+  +--+ | +--+  +--+ | +--+  +--+ | +--+  +--+ | +--+  +--+ | +--+  +--+ | +--+  +--+ | 
-|            |            |            |            |            |            |            | 
-+------------+------------+------------+------------+------------+------------+------------+ 
-  ^                        ^            ^            ^            ^            ^ 
-  |                        |            |            |            |            | 
-  +-------------+------------+------------+------------+------------+------------+ 
- 
- Légende : 7 sauvegardes sur 14 / semaine sur les 3 dernières semaines 
-</file> 
-===== Conclusion ===== 
- 
-TODO 
  
  • playground/playground.1511549158.txt.gz
  • (modification externe)