Portál AbcLinuxu, 29. dubna 2024 15:15


Dotaz: Kopie Maildirů bez duplikátů

25.5.2009 22:16 maturant
Kopie Maildirů bez duplikátů
Přečteno: 201×
Odpovědět | Admin

Pro učení spamassassinu využívám toho, že si skriptem kopíruji Spamy uživatelů do účtu postmastera a potom SA učím. Háček je v tom, že vznikají duplikáty kopií. Asi to bude rozdílem přečtené/nepřečtené, ačkoliv kopíruji pouze .Spam/cur. Proč? Jak mám skript upravit, aby nekopíroval pořád ty samé zprávy, které se asi jen jinak jmenují?

 

for mailbox in `ls /home/vmail/domena.cz/`; do
        if [ "$mailbox" != "postmaster@domena.cz" ]; then
                for message in `ls /home/vmail/domena.cz/$mailbox/Maildir/.Spam/cur/`; do
                        cp /home/vmail/domena.cz/$mailbox/Maildir/.Spam/cur/$message /home/vmail/domena.cz/postmaster@domena.cz/Maildir/.Spam/cur -u -p -f &>/dev/null
                done
                echo -n "."
        fi
done

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.5.2009 22:55 maturant
Rozbalit Rozbalit vše Re: Kopie Maildirů bez duplikátů
Odpovědět | | Sbalit | Link | Blokovat | Admin

Chtělo by to něco co by porovnávalo i nějak ty obsahy zpráv. Pokud jsem kopíroval vše pomocí cp /zdroj/* /někam -u -p -f, tak to duplikáty nedělalo. Ale ejhle, "argument list too long", tak jsem musel udělat toto.

27.5.2009 12:26 maturant
Rozbalit Rozbalit vše Re: Kopie Maildirů bez duplikátů

Tak jsem si napsal skript, ktery funguje. Ale mam problem, ze jednoho uzivatele(rikejme mu stanek@domena.cz) se ty zpravy stale kopirujui, i kdyz uz tam jednou zkopirovany jsou a pritom se tam nedokopiruji, teda cp je spusten ale do ciloveho adresare se to nedostane a proto se to pri dalsim spusteni skriptu pokousi zas to same kopirovat a tak porad dokola. Pokud prikaz cp provedu rucne vne skriptui tak to jede. Je to docela divny. Zadny chybovy hlasky. Mam tam nekde chyby?:

#!/bin/sh

copyqueue=".Spam .Ham"

for item in $copyqueue; do

    if [ "$item" == ".Spam" ]; then
        echo "KOPIRUJI SPAM"
    fi
    if [ "$item" == ".Ham" ]; then
        echo "KOPIRUJI HAM"
    fi

    rovnost_vse=0
    for domainDir in `ls /home/vmail/*.cz -d`; do
        rovnost=0
        echo -n `echo $domainDir | awk -F\/ '{print $4}'`
        echo -n " "
        for mailbox in `ls $domainDir/`; do
            if [ "$mailbox" != "postmaster@domena.cz" ]; then
                ls $domainDir/postmaster@domena.cz/Maildir/$item/cur/ 2>/dev/null | sed 's/\:2\(.*\)//g' > /tmp/NaucSA.dst
                ls $domainDir/$mailbox/Maildir/$item/cur/ 2>/dev/null | sed 's/\:2\(.*\)//g' > /tmp/NaucSA.src
                addto=`diff /tmp/NaucSA.src /tmp/NaucSA.dst | grep '^< ' | awk '{print $2}' > /tmp/NaucSA.add`
               
                for message in `cat /tmp/NaucSA.add`; do
                    rovnost=`expr $rovnost + 1`;
                    rovnost_vse=`expr $rovnost_vse + 1`;
                    #ls $domainDir/$mailbox/Maildir/$item/cur/$message* >> /tmp/mess
                    cp $domainDir/$mailbox/Maildir/$item/cur/${message}* /home/vmail/domena.cz/postmaster@domena.cz/Maildir/$item/cur -u -p -f
                done
                echo -n "."
   
            fi
        done
        echo " $rovnost"
    done

    echo "> $rovnost_vse <"
    echo ""

done

rm /tmp/NaucSA.dst
rm /tmp/NaucSA.src
rm /tmp/NaucSA.add

echo ""
echo "Nyni mate moznost pretridit spamy a hamy. SpamAssassin se bude ucit ze slozek Spam_korekce a Ham_korekce"
echo -n "Mohu zacit uceni? [a,n] "
read learn_answer
echo ""

if [ "$learn_answer" == "a" ]; then
    echo "SPAMASSASSIN SE UCI"

    sa-learn --spam /home/vmail/domena.cz/postmaster@domena.cz/Maildir/.Spam_korekce/cur --progress
    sa-learn --ham /home/vmail/domena.cz/postmaster@domena.cz/Maildir/.Ham_korekce/cur --progress
   
    chown amavis:amavis /root/.spamassassin -R
fi

27.5.2009 12:28 maturant
Rozbalit Rozbalit vše Re: Kopie Maildirů bez duplikátů

Tak neblbne jen u toho jednoho uzivatele, ale vetsina jich funguje, tak nevim proc.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.