Skrypcik do archiwizacji poczty

Dzisiaj sobota i jakoś tak się złożyło że nie jest ona szczególnie zajęta. Postanowiłem odchudzić skrzynkę pocztową i napisałem skrypcik bashowy. Może komuś się przyda. Jeżeli nie podamy katalogu w linii komend skrypt wchodzi do katalogu ~/Mail/Maildir/. Wyszukuje pliki według daty modyfikacji tak że pliki z każdego roku trafiają do osobnego pliku tar.gz w ~/Mail. Jeżeli ustawimy opcję REMOVE_FILES_AFTER_BAKUP=yes pliki będą tam przeniesione a oryginały usunięte.
#!/bin/bash

YEARS=(2000 2001 2002 2003 2004 2005 2006 2007 2008)
REMOVE_FILES_AFTER_BAKUP=no

function Days_go()
{
 DATENOW=`date +%s`
 DATEOLD=`date -d ${1}0101 +%s`
 DATEOLDER=`date -d $[$1-1]0101 +%s`
 DAYS=$[($DATENOW-$DATEOLD)/(60*60*24)]
 DAYSYEARBEFORE=$[($DATENOW-$DATEOLDER)/(60*60*24)]
}

if [ -z "$1" ]
        then
                DIRECTORY=~/Mail/Maildir/
        else
                DIRECTORY=$1
fi
if [ $REMOVE_FILES_AFTER_BAKUP="yes" ]
        then
                OPT="--remove-files"
        else
                OPT=""
fi

echo $DIRECTORY
for YEAR in ${YEARS[@]}
        do
                Days_go ${YEAR}
                FILES2BACKUP="archmail${YEAR}${DATENOW}.tmp"
                echo -n "Mails changed before `date -d ${YEAR}0101 +%Y-%M-%d` : "
                find ${DIRECTORY} -mtime +$[$DAYS-1] -mtime -${DAYSYEARBEFORE} -type f -print > ${FILES2BACKUP};
                MAILNR=`wc -l ${FILES2BACKUP} | cut -f1 -d' '`
                echo $MAILNR
                if [ -s ${FILES2BACKUP} ]
                        then
                                echo "Processing $YEAR ..."
                                tar -czf "${DIRECTORY}/../arch${YEAR}.tar.gz" ${OPT} --files-from ${FILES2BACKUP};
                                echo "${DIRECTORY}/../arch${YEAR}.tar.gz Saved"
                fi

                rm ${FILES2BACKUP}
        done

Komentarze do wpisu "Skrypcik do archiwizacji poczty":

Jeszcze nie ma żadnych komentarzy. Twój może być pierwszy.

Dodaj komentarz:

Textile Lite włączony ( szczegółowy opis znaczników ):
*strong* | # lista numerowana | * lista wypunktowana | _em_ | __italic__ | "link":http:// | bq. cytat.