Brisanje starih e-mailova

E-mailKorisnici naših poslužitelja vrlo često iz neznanja ili nekih drugih razloga ostavljaju staru poštu u svom dolaznom pretincu na poslužitelju. Pretinci za pristiglu poštu nalaze se u /var/mail direktoriju. Na poslužiteljima gdje /var file system nema puno prostora, može doći do njegovog zatrpavanja, a jedan od razloga može biti i korisnička pošta.

Ovo možemo spriječiti na više načina - jedan od njih je konfiguriranje korisničkih mail klijenata da poštu ne ostavljaju na poslužitelju. Ili malo bolja varijanta, da poštu ostavljaju npr. 7 dana i onda brišu - na ovaj način korisnici mogu istu poštu prebaciti na svoje računalo kod kuće i na poslu.

Drugi način je obrazovno djelovanje prema korisnicima - objasniti im da staru poštu trebaju brisati i da nema smisla čuvati npr. novogodišnje čestitke iz 1999-e. Ako već nešto žele i trebaju čuvati treba ih naučiti kako da kreiraju foldere unutar svijih mail klijenata u koje će prebaciti takvu poštu.

Ako ništa od ovoga ne pomaže onda treba primjeniti silu - obrisati korisnicima staru poštu. Naravno, poželjno je prethodno iste obavijestiti da će im se to dogoditi.

Kako bi bilo previše naporno ulaziti u mailboxove korisnika pojedinačno i brisati staru poštu, korisno bi bilo tako nešto automatizirati. Na sreću, dobri ljudi su napravili jedan zgodan programčić koji nam tako nešto omogućava. Programčić se zove mail-expire i postoji njegova verzija u debian paketu.

Prva stvar koju trebamo napraviti je instalirati paket, na već uobičajeni način:

apt-get update
apt-get install mail-expire

Nakon instalacije možemo ga početi koristiti. Kao i svaki drugi program i mail-expire treba prethodno proučiti kako se koristi i to je najbolje napraviti čitanjem man stranica:

man mail-expire

Stranice su relativno kratke, zauzimaju samo dva ekrana, pa to neće predstavljati veliki problem.

Upotrebu programa ćemo prikazati na primjeru. Prvo ćemo u /var/mail direktoriju pronaći korisnika koji ima puno pošte, evo jednoga:

# ls -al /var/mail/jozo
-rw-rw---- 1 jozo mail 16126954 Dec 23 21:19 /var/mail/jozo

Nakon toga ćemo uporabom mail-expire obrisati svu poštu stariju od 30 dana:

# mail-expire --delete 30 /var/mail/jozo
I: Reading and splitting /var/mail/jozo (16126954 bytes)...
I: Analyzing ages (days before expiration): 53(old), 44(old), 39(old), 62(old), 5(new), 0(new),
I: Wrote 4 old entries to /var/mail/jozo.Nov_2006.gz
Deleting /var/mail/jozo... replacing with the new mailbox... done.

Program se koristi na sljedeći način:

mail-expire AGE FILE

Vidimo da je upotrebljena i opcija --delete, njena svrha je brisanje backupa starih poruka koje mail-expire napravi.

Pogledajmo kakva je sad situacija:

# ls -al /var/mail/jozo
-rw-r--r-- 1 root root 6984859 Dec 23 22:38 /var/mail/jozo

Primjetit ćemo još jedan problem - vlasništvo i prava pristupa nad datotekom. To treba popraviti:

# chown jozo:mail /var/mail/jozo
# chmod 660 /var/mail/jozo

Na ovaj način možemo riješiti sve problematične korisnike. Ali ako takvih ima puno, ili se radi o svima, bez iznimke, korisno je napraviti skriptu koja će to sama napraviti.

Evo jedne jedonstavne skripte:

#! /bin/sh
cd /var/mail
for i in *
do
mail-expire --delete 30 $i
chown $i:mail $i
chmod 660 $i
done

Izvršavanjem ove skripte, svim korisnicima će biti obrisana pošta starija od mjesec dana. Naravno, moguće je taj broj dana mijenjati po želji.

Ovo se može iskoristiti i za neke druge stvari, npr. korisnici koji koriste web mail u pravilu zaboravljaju brisati trash foldere. Ponekad to može dovesti i do blokiranja rada web maila za pojedinog korisnika. Ako povremeno izvršimo skriptu koja slijedi, riješit ćemo i taj problem:

#! /bin/sh
for i in `find /home -name INBOX.Trash`
do
rm stari-trash-priv
echo $i > stari-trash-priv
j=`cat stari-trash-priv | cut -d"/" -f3`
ls -al $i
mail-expire --delete 30 $i
chown $j $i
chmod 700 $i
done

Ove skripte možemo izvršavati ručno po potrebi, a možemo i staviti u cron.

mail-expire je prilično koristan u ovakvim situacijama kada imamo korisnike koji nisu uredni sa svojom poštom. S ovakvim čišćenjem rješavaju se mnogi problemi. Svakako je korisno prethodno upozoriti korisnike da se provode ovakva čišćenja, kako bi se izbjegle moguće neugodne situacije.

Kuharice: 
Kategorije: 
Vote: 
0
No votes yet

Komentari

možda bi trebalo malo modificirati skriptu s obzirom na permissione .. mene su poslije zezali permissioni