I have my spam-learning script which runs against all the folders that meet a criteria… however the parent directories share the same style…
So what I have is…
/var/mail/vhosts/domain.ltd/first.lastname/.folders{…}
The scan I have search for .Spam.New and .Spam.Suspected and runs those…
but I would like to scan through the entire structure and grab each first.lastname folder (it would be the *2nd* level of my scan as I have a half-dozen domains and will add more soon)…
That point behind it is I can scan specific folders as SPAM and any other folders (other than Inbox, Sent and Trash) as HAM.
So here’s my folder for this specific email address (cwis.biz):
drwxrws--- 5 vmail spamd 4096 Oct 22 09:07 .Drafts
-rwxrwx--- 1 vmail spamd 0 Jan 21 2015 maildirfolder
drwxrws--- 5 vmail spamd 4096 Mar 19 2015 .Mailing Lists
drwxrws--- 5 vmail spamd 4096 Oct 22 05:49 .Mailing Lists.MySQL
drwxrws--- 5 vmail spamd 4096 Oct 15 16:44 .Mailing Lists.Nextdoor
drwxrws--- 5 vmail spamd 4096 Oct 17 09:38 .Mailing Lists.PFSense
drwxrws--- 5 vmail spamd 4096 Oct 22 07:38 .Mailing Lists.spamassassin
drwxrws--- 5 vmail spamd 4096 Oct 21 14:25 .Mailing Lists.TCLUG
drwxrws--- 5 vmail spamd 4096 Oct 21 12:59 .Mailing Lists.TCPHP
drwxrws--- 2 vmail spamd 16384 Oct 22 09:06 new
drwxrws--- 5 vmail spamd 4096 Jan 21 2015 .Notes
drwxrws--- 5 vmail spamd 4096 Oct 21 22:34 .Sent Messages
drwxrws--- 3 vmail spamd 4096 Oct 15 17:02 sieve
drwxrws--- 5 vmail spamd 4096 Oct 22 07:19 .Spam.New
drwxrws--- 5 vmail spamd 4096 Oct 22 07:25 .Spam.Scanned
drwxrws--- 5 vmail spamd 4096 Oct 22 09:06 .Spam.Suspected
drwxrws--- 5 vmail spamd 4096 Oct 22 09:06 .Spam.Tagged
-rwxrwx--- 1 vmail spamd 282 Oct 15 16:43 subscriptions
drwxrws--- 2 vmail spamd 4096 Oct 22 09:06 tmp
drwxrws--- 5 vmail spamd 4096 Oct 22 01:25 .Trash
Basically I want to get any folder that starts with “." inside of /var/mail/vhosts/cwis.biz/ryan.coleman/
And then run the following commands:
/usr/bin/find /var/mail/vhosts/ -name '*.Spam.New*' -type d -exec /usr/bin/sa-learn --spam --progress {}* \;
/usr/bin/find /var/mail/vhosts/ -name '*.Spam.Suspected*' -type d -exec /usr/bin/sa-learn --spam --progress {}* \;
/bin/mv /var/mail/vhosts/cwis.biz/ryan.coleman/.Spam.New/cur/* /var/mail/vhosts/cwis.biz/ryan.coleman/.Spam.Scanned/cur/
/bin/mv /var/mail/vhosts/cwis.biz/ryan.coleman/.Spam.New/new/* /var/mail/vhosts/cwis.biz/ryan.coleman/.Spam.Scanned/cur/
My regex-foo is not very good. I know there’s a way to do that with find(1) but I wouldn’t be able to wrap my head around it anyway.
TIA!
—
Ryan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20151022/3d4a3770/attachment.html>