[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Archiver mails



On Mon, Jun 14, 2021 at 05:08:36PM +0200,
 steve <dlist@bluewin.ch> wrote 
 a message of 12 lines which said:

> > Un petit script Python lancé par cron tous les mois qui renomme les
> > boites par exemple debian/french -> debian/french-2021-06.
> 
> Serait-ce possible de le partager ou est-ce secret défense ?

Attaché. À lancer, par exemple, avec :

./backup-mailboxes.py && (find Mail -type f -ctime +90 | xargs gzip --best)
#!/usr/bin/env python3

# $Id: backup-mailboxes.py 5778 2021-06-15 06:10:10Z stephane $

import os
import re
import time

startdir = os.environ['HOME'] + "/Mail"
filter = "-[-0-9]+(\.gz|\.bz2|.Z|)$"
regexp = re.compile(filter)

def display(name):
    if not regexp.search(name):
        newname = name + \
                  time.strftime("-%Y-%m", time.localtime(time.time()-\
                                                            (14*86400)))
        if exists(newname):
            print(newname + " already exists, skipping...")
        else:
            print(name + " -> " + newname)
            os.rename (name, newname)

def exists(filename):
    try:
        values = os.stat(filename)
        return 1
    except os.error:
        return 0
    
def listsub(dir, action):
    try:	
        names = os.listdir(dir)
    except os.error:
        print("Can't list", dir)
        names = []
    for name in names:
        fullname = os.path.join(dir, name)
        if os.path.isfile(fullname):
            action(*(fullname,))
        elif os.path.isdir(fullname) and \
             not os.path.islink(fullname):
            listsub(fullname, action)
            
if __name__ == '__main__':
    listsub(startdir, display)



Reply to: