From c49498646c9d3136b3aeafb7966bcb8748d136df Mon Sep 17 00:00:00 2001 From: Lucas Serrano Date: Sun, 3 Mar 2013 03:13:13 +0100 Subject: [PATCH] [utils/old_ml.py] Script de listing de vieilles MLs --- utils/old_ml.py | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 utils/old_ml.py diff --git a/utils/old_ml.py b/utils/old_ml.py new file mode 100755 index 00000000..634db406 --- /dev/null +++ b/utils/old_ml.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +'''Script de retrait des vielles Mailing-List + v0.2b (02/2012) par Lucas Serrano + Merci à Vincent Le Gallic pour son aide. + + ''' + +import time +import sys +import os +#import argparse + +sys.path.insert(0, '/var/lib/mailman') +from Mailman import MailList +from Mailman import Utils + + +#Parsing des arguments +DISK_USAGE = True +if "--no-du" in sys.argv: + DISK_USAGE = False + +try: + date=sys.argv[1] + date=time.mktime(time.strptime(date, "%d/%m/%Y")) +except: + sys.exit("\nErreur: Veuillez poster une date de peremption sous le format JJ/MM/AAAA\n") + + +listeDeListes = Utils.list_names() #Recupère les noms des listes sous forme de string +listes = list() +for n in listeDeListes: + temp = MailList.MailList(n, lock=False) #Créer les objets liste à l'aide de leurs noms + listes.append([n, temp.last_post_time, temp.archive_dir(), temp.members.keys()]) +listes.sort(key=lambda list:list[1]) #Classement par date du dernier post + +#Partie affichage +tailleTotale = 0 +if DISK_USAGE: + print "\n \n%-40s | %-12s | %s | %s\n" %("Nom de la liste", "Dernier post", "Taille", "Membres") +else: + print "\n \n%-40s | %-12s | %s\n" %("Nom de la liste", "Dernier post", "Membres") + +for l in listes: + if l[1] > date: + break + dateFormatee = time.strftime("%d/%m/%Y", time.gmtime(l[1])) + if DISK_USAGE: + taille = 0 + chemin = l[2] + #Recherche de la taille du dossier d'archive + for (path, dirs, files) in os.walk(chemin): + for file in files: + filename = os.path.join(path, file) + taille += os.path.getsize(filename) + taille = taille / 1048576.0 + tailleTotale += taille + print "%-40s | %-11s | %-6.1f MB | %s" %(l[0], dateFormatee, taille, len(l[3])) + else: + print "%-40s | %-11s | %s" %(l[0], dateFormatee, len(l[3])) + +if DISK_USAGE: + print "Taille Totale: %0.1f MB" % (tailleTotale) +