Strumenti Utente

Strumenti Sito


documentazione_3di_riservata:manuali_sysadmin:mail

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
documentazione_3di_riservata:manuali_sysadmin:mail [2015/12/31 13:29] aalberghinidocumentazione_3di_riservata:manuali_sysadmin:mail [Data sconosciuta] (versione attuale) – eliminata - modifica esterna (Data sconosciuta) 127.0.0.1
Linea 1: Linea 1:
-====== Gestione servizi di posta ====== 
- 
-===== Mail interna ===== 
- 
-===== Mail esterna ===== 
- 
- 
-====== Procedure automatizzate ====== 
- 
-===== Conversione maildir posftfix in file mbox ===== 
- 
-Dalla [[http://wiki.dovecot.org/Migration/MailFormat#Converting_from_Maildir_to_mbox | wiki di Dovecot]] si è estratto e riadattato uno script perl per convertire in mbox anche le maildir prodotte da postfix mediante il programma formail (già presente nella suite di postfix). 
- 
-Si riporta il codice utilizzato per la conversione. Lo script necessita del pacchetto **Path::Iterator::Rule** (presente anche su [[http://www.cpan.org/ | CPAN]]) per funzionare. Nel caso la propria distro non lo preveda tra i suoi pacchetti, è possibile installarlo mediante il comando: 
- 
-  cpan -i Path::Iterator::Rule 
- 
-<code perl maildir2mbox.pl> 
-#!/usr/bin/perl 
- 
-use Path::Iterator::Rule; 
-use Cwd; 
-use File::Basename; 
-use File::Spec; 
- 
-use warnings; 
- 
-sub recurse_maildir { 
-  my $rule = Path::Iterator::Rule->new; 
- 
-  $rule->directory; 
-  $rule->skip_subdirs ("cur","new","tmp"); 
- 
-  foreach my $dir ( $rule->all($_[0])) { 
-    next unless stat("$dir/cur") || stat("$dir/new"); 
-    print "Going into ",  $dir, "\n"; 
-    my $pwd = getcwd; 
-    chdir ($dir); 
-    if ($dir eq $parentDir ) { 
-      $dir = "INBOX"; 
-                                                                                                                                                                                                    
-    my $cleanDir = basename($dir);                                                                                                                                                                     
-    if ($cleanDir =~ m/^\.(.*)/ ) {                                                                                                                                                                    
-       $cleanDir = $1;                                                                                                                                                                                 
-    }                                                                                                                                                                                                  
-    my $finalOutputFile = File::Spec->catfile (dirname ($outputfile),$cleanDir . "_" .  basename ($outputfile));                                                                                       
-    print "Saving all mails to $finalOutputFile)\n"; 
-    my @files = (<cur/*>,<new/*>); 
-    foreach my $file (@files) { 
-       next unless -f $file; # skip non-regular files 
-       next unless -s $file; # skip empty files 
-       next unless -r $file; # skip unreadable files 
-       $file =~ s/'/'"'"'/;  # escape ' (single quote) 
-       my $run = "cat '$file' | $cmd >>'$finalOutputFile'"; 
-       system($run) == 0 or warn "cannot run \"$run\"."; 
-    } 
-    chdir ($pwd); 
-  } 
- 
-} 
- 
-# dw-maildirtombox.pl 
-# dw = Dovecot Wiki :-) 
-# NOTE! The output file must not contain single quotes (')! 
-# figure out which program to run 
-$cmd="reformail -f1"; 
-system("$cmd </dev/null >/dev/null 2>/dev/null") == 0 or $cmd="formail"; 
-system("$cmd </dev/null >/dev/null 2>/dev/null") == 0 
-or die "cannot find reformail or formail on your \$PATH!\nAborting"; 
-$parentDir=$ARGV[0]; 
-$outputfile=$ARGV[1]; 
-if (($outputfile eq '') || ($parentDir eq '')) 
-{ die "Usage: ./archivemail.pl mailbox outputfile\nAborting"; } 
- 
-recurse_maildir ($parentDir); 
- 
-</code> 
- 
-===== Backup di tutte le cartelle di posta ===== 
- 
-In concomitanza allo script Perl sopra riportato, è stato realizzato un altro script bash per effettuare il backup automatizzato di tutte le maildir degli utenti. Tale script esegue le seguenti operazioni per ogni maildir: 
-  - compressione in 7z di tutta la maildir così com'è 
-  - conversione in mbox di tutte le cartelle contenute nella maildir e successiva compressione in 7z 
-  - salvataggio degli archivi compressi su \\storage\UTSHARE\nomeUtente 
- 
-Di seguito il codice dello script. 
-<code bash backupMaildirs.sh> 
-#!/bin/bash 
- 
-MAILDIR_ROOT=/var/vmail/3di.it 
-OUTPUT_ROOT=/mnt/UTSHARE 
-OUTPUT_GROUP=5106 
-MAILDIRS=(aalberghini abarducci afistani bcerr commerciale dcwerr dpranteda eluconi fcappelli ganastasi gmgelli helpdesk helpdesk-area itarlassi lpalumbo lsopko mb-archivio mb-proto mbelluomini mbernardini mbrugnetti mciullo mgelli mpascale mstancikova ncandelora opera-assistenza pgramaccioni ppala rtirabassi scavinato sesar siammtest spassarotto sstagni sviluppo test-archiviatore tickets vcapoccia) 
- 
-set -e 
- 
-cd "$MAILDIR_ROOT" 
-for USER in ${MAILDIRS[@]} 
-do 
-        echo "Processing $USER maildir" 
-        TEMPDIR=$(mktemp -d) 
-        if [ ! -d "$OUTPUT_ROOT/$USER" ] 
-        then 
-                echo "Creating output folder" 
-                install -d  -m700 -g "$OUTPUT_GROUP" -o "$USER" "$OUTPUT_ROOT/$USER" 
-        fi 
-        echo "Creating maildir archive: 7z a -mx=9 -m0=LZMA2 $OUTPUT_ROOT/$USER/${USER}_maildir.7z" 
-        7z a -mx=9 -m0=LZMA2 "$OUTPUT_ROOT/$USER/${USER}_maildir.7z" "$USER" 
-        echo "Creating mbox archives: /root/bin/dw-maildir2mbox_recur.pl $USER $TEMPDIR/${USER}.mbox" 
-        /root/bin/dw-maildir2mbox_recur.pl "$USER" "$TEMPDIR/${USER}.mbox" 
-        ( cd "$TEMPDIR" && 7z a -mx=9 -m0=LZMA2 "$OUTPUT_ROOT/$USER/${USER}_mbox.7z" *.mbox ) 
-        rm -rf "$TEMPDIR" 
-        chown $USER:$OUTPUT_GROUP "$OUTPUT_ROOT/$USER/${USER}"_{maildir,mbox}.7z 
-done 
-</code> 
- 
- 
- 
- 
- 
  
/data/attic/documentazione_3di_riservata/manuali_sysadmin/mail.1451564994.txt.gz · Ultima modifica: 2017/09/08 10:59 (modifica esterna)