It is a known fact that gmail’s spam filters get the job done.
I am working with spamassassin on local mail setups and i want spamassasin to learn automatically from my gmail Spam folder.
So is it possible?
Of course it is possible.
First we have to get all the mails from our gmail account into a local dummy mail account (easy we’ll use getmail) and then we have to educate spamassasin from our local dummy mail account (sa-learn).
one config file and two commands via cron will do the work.
First the getmailrc (i shall not bother with the getmail & spamassassin installation or setup).
/root/.getmail/getmailrc
[options]
delete = false
message_log = /var/log/getmail.log
verbose = 0
read_all = false
[retriever]
type = SimpleIMAPSSLRetriever
server = imap.gmail.com
mailboxes = ("[Gmail]/Spam",)
username = username@example.com
password = XXXXXXXXXXXXXXX
[destination]
type = Mboxrd
path = /var/spool/mail/gmail_spam
user = nobody
So now when we execute: getmail
every new mail is gmail spam folder will be downloaded into /var/spool/mail/gmail_spam
Next we need to execute sa-learn
sa-learn --spam --mbox /var/spool/mail/gmail_spam
Thats it!
Simple as that!
Dont forget to add the below cron entries:
@daily getmail &> /dev/null
@daily sa-learn --spam --mbox /var/spool/mail/gmail_spam &> /dev/null
Το παρόν post αφορά κυρίως sysadmins, οι υπόλοιποι διαβάστε το για να πάρετε μια ιδέα πως είναι να εργάζεσαι ως sysadmin.
Διαβάζοντας το εξής άρθρο: Henry’s Techno-Musings: Philosophy of Troubleshooting: Sea of Troubles (ξέρω, ξέρω πολύ μεγάλος τίτλος. Μα είναι στο linux gazette, οπότε δώστε του μια ευκαιρία) θυμήθηκα κάτι από το 2006 όταν ξεκίνησα να εργάζομαι στην τωρινή μου θέση.
Πριν εξιστορήσω όμως την ιστορία, θα πρέπει να τονίσω ότι κάθε sysadmin που σέβεται τον εαυτό του ή θέλει να τον σέβονται οι άλλοι, θα πρέπει να γνωρίζει τι είναι τα semaphores ειδικά δε, εάν εργάζεται με τον apache web server.
[story]
Περί το τέλος του 2006 σε ένα ξεχασμένο datacenter, ένας ταπεινός sysadmin εργάζεται στο γραφείο του. Με ζήλο για την δουλειά του, νέος στον συγκεκριμένο χώρο, προσπαθεί να μαζέψει όλες τις απαραίτητες πληροφορίες ώστε να επιλύσει ένα πρόβλημα που ταλάνιζε πελάτες κι άλλους ταπεινούς sysadmins. Ο apache δεν δούλευε σωστά! Κι έτσι ο ταπεινός μας sysadmin σκέφτηκε να ρίξει μια ματιά στα logs. Θέλοντας τα δείξει ότι γνωρίζει τα μυστικά του vim, προσπάθησε να ανοίξει δύο log αρχεία με μία εντολή κι έτσι έγραψε:
vim -O logfile1 logfile2
Δεν κοίταξε όμως ποτέ το μέγεθος των αρχείων. Δεν είδε ποτέ ότι το κάθε αρχείο ήταν περίπου 2 με 2.5 gb και δεν κατάλαβε ποτέ γιατί ξαφνικά η ελεύθερη 4gb μνήμη γέμισε σε μερικά δευτερόλεπτα. Επίσης Δεν μπόρεσε να εξηγήσει εκείνη την στιγμή γιατί ο server έγινε κόκκινος στο monitor.
Σκέφτηκε ότι δεν μπορεί να φταίει αυτός, αυτός ένα vim άνοιξε!
Αλλά εν τέλη είχε καταφέρει να κρασάρει τον web server.
[/story]
Φυσικά κι αυτός ήμουν εγώ (σε άλλο άρθρο θα σας γράψω άλλη παρόμοια ιστορία).
Φυσικά από το τότε λάθος, έμαθα. Δεν είναι όμως πρέπον να μαθαίνεις μόνο από λάθη,
χρειάζεται να μαθαίνουμε κι από τα σωστά και τις εμπειρίες των άλλων.
Επίλογος:
Για επίλογο θα σας δώσω τρεις εντολές και πως χρησιμοποιούνται.
Το πρόβλημα είναι ότι ο apache έχει τερματιστεί και δεν σηκώνεται ή δεν έχει τερματιστεί καλά ή whatever, δεν παίζουν οι ινδιάνοι.
01.
lsof | egrep --color -i 'http|apache'
Βλέπουμε τα ανοιχτά αρχεία που έχουν δεσμευτεί από τον web server μας.
02.
ipcs -s
Χρειαζόμαστε την 2η στήλη με τα semid. Βλέπουμε ποιοι πόροι του συστήματός μας είναι δεσμευμένοι από τον web server μας.
03.
ipcrm -s SEMID
Αποδεσμεύουμε τον συγκεκριμένο πόρο από το σύστημά μας. Φυσικά μπορεί να χρειαστούν πολλά ipcrm και φυσικά πρέπει να αντικαταστήσετε το SEMID με το πραγματικό, αυτό που έχετε δει από το ipcs.