7440 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un programme qui me permet de faire un backup de ma bdd, et j'ai vue qu'il y avait possibilité de mettre une option au nombre de backup sur le serveur.

Les 5 dernières ou les 3 ...

Genre : Nombre de sauvegardes à conserver

Si vous avez un tuto, pour mettre en place ce système ça serait sympa. A l'heure actuelle, mes backup se font mais je peux arriver à 10 sur le serveur, et j'aimerai limiter au 3 derniers par exemple.

Merci par avance.

Bonne journée. Smiley smile
Modifié par Tintin75 (13 Oct 2017 - 13:17)
Hello,

Bien que je sache le faire en PHP, j'avais envie de le coder en Python Smiley loveu :

#coding:utf-8

import os, time
def ksort(d):
    return [(k,d[k]) for k in sorted(d.keys())]

if __name__ == "__main__":
    try:
        path = "/mon/chemin/vers/fichiers/"

        #dump sql
        dump = "mysqldump -h localhost -uroot -p ma_base_de_donness > {pathToDump}{filenameToDump}"
        dumpFile = "_" + time.time() + '.sql'
        os.system( dump.format( pathToDump = path, filenameToDump = dumpFile ) )

        #delete files if count > 3
        files = os.listdir(path)
        dictFiles = {}
        limitToRemove = 3

        for file in files:
            if os.path.isfile(path + file):
                dictFiles[ os.path.getmtime(path + file) ] = path + file

        if len(dictFiles) > limitToRemove:
            ksort(dictFiles)
            count = 0

            for k , v in dictFiles.items():
                if count >= limitToRemove and os.path.exists(v):
                    os.remove(v)
                count += 1

    except Exception as e:
        print('error system >>>---------> ', e)


J'ai fait relativement de tête. Je peux m'être trompé. C'est une piste à suivre. Pour bien faire, il faudrait renvoyer les erreurs d'exception dans les logs du système et surement importé le module errno (/var/log/syslog)

Ce script fait un dump de la base et supprime les fichiers au-delà des 3 derniers "dumpés".

Je t'invite à regarder ce qu'est une cron.
Modifié par niuxe (13 Oct 2017 - 12:48)
Meilleure solution