Outils pour utilisateurs

Outils du site


new_backup_dir

Ajouter une ressource au backup de telnew

On va s'intéresser au script de backup de telnew et plus précisément à comment le patcher pour rajouter des choses à backuper.

Patch métier

Regardons de plus près comment est construite la classe ServerBackup :

class ServerBackup(object):
  def tar(self, source, name)
  def file_backup(self, source, name=None)
  def mysql(self)
  def files_list(self)
  def packages(self)

Il y a une méthode dédiée au travail de compression (invocation de tar), et les autres sont dédiées à un type de ressource. mysql, files_list et packages sont hardcodées pour faire le travail qu'on leur demande alors que file_backup prend en paramètre une source.

Si l'on souhaite rajouter un répertoire au backup, il n'y a pas de code à rajouter dans ServerBackup. On appellera la méthode file_backup avec d'autres arguments.

Par contre, s'il y a besoin d'un traitement spécifique avant la génération du .tgz (comme l'appel à mysqldump pour mysql), on rajoutera une méthode avec le squelette suivant :

def <FUNCTION>(self):
      """
      <DESCRIPTION>
      """
      
      self.step += 1
      log("---------- Step {} : <STEP NAME> ----------".format(self.step))
      
      log("<LOG COMMENTARY>")
      <TRAITEMENT>
      
      log("Archiving <NAME>")
      tgz = self.tar(BACKUP_PATH + "<RESOURCE NAME>", name="<FILENAME>")
      log("<NAME> archived")
      
      return tgz

Patch de traitement

Pour que les fonctions rajoutées soient bien exécutées, il faut rajouter dans le main ce genre des lignes du style :

ressource = backup.ressource()

tars = [
        [...]
       (ressource, '/telnew'),
]
new_backup_dir.txt · Dernière modification: 2017/10/10 11:28 par deldel