I Think I figured it out? I would love feedback…
Script: /usr/bin/find /var/mail/vhosts/ -type d | grep -P "\/var\/mail\/vhosts\/[a-z0-9\-\_]+\.[a-z]+\/[a-z\.]+$" | xargs -i /usr/bin/sa-learn --spam --progress "{}"/.Spam.New/*
It runs 18 times.
When I run: /usr/bin/find /var/mail/vhosts/ -type d | grep -P "\/var\/mail\/vhosts\/[a-z0-9\-\_]+\.[a-z]+\/[a-z\.]+$" | xargs -i /bin/echo "{}"/.Spam.New/
I get 18 results (which is expected).
So I think I have it figured out now.
> On Oct 22, 2015, at 10:13 AM, Ryan Coleman <ryan.coleman at cwis.biz> wrote:
>
> Moving forward…
>
>
> I have this command so far:
>> /usr/bin/find /var/mail/vhosts/ -type d | grep -P "\/var\/mail\/vhosts\/[a-z0-9\-\_]+\.[a-z]+\/[a-z\.]+$" | xargs -0 /usr/bin/sa-learn --no-sync --spam —progress
>
> But I need to put the folder name at the end of the xargs command along WITH a subfolder (like “/.Spam.New/*”)
>
> Any thoughts on how I would do that?
>
>
>> On Oct 22, 2015, at 9:29 AM, Ryan Coleman <ryan.coleman at cwis.biz <mailto:ryan.coleman at cwis.biz>> wrote:
>>
>> Cuz I’m smart like that…
>>
>> find /var/mail/vhosts/ -type d | grep -P "\/var\/mail\/vhosts\/[a-z0-9\-\_]+\.[a-z]+\/[a-z\.]+$”
>>
>> Finds just what I need… what a rPITA.
>>
>> —
>> Ryan
>>
>>
>>> On Oct 22, 2015, at 9:09 AM, Ryan Coleman <ryan.coleman at cwis.biz <mailto:ryan.coleman at cwis.biz>> wrote:
>>>
>>> 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 <http://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/ <http://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/* <http://cwis.biz/ryan.coleman/.Spam.New/cur/*> /var/mail/vhosts/cwis.biz/ryan.coleman/.Spam.Scanned/cur/ <http://cwis.biz/ryan.coleman/.Spam.Scanned/cur/>
>>> /bin/mv /var/mail/vhosts/cwis.biz/ryan.coleman/.Spam.New/new/* <http://cwis.biz/ryan.coleman/.Spam.New/new/*> /var/mail/vhosts/cwis.biz/ryan.coleman/.Spam.Scanned/cur/ <http://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
>>> _______________________________________________
>>> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
>>> tclug-list at mn-linux.org <mailto:tclug-list at mn-linux.org>
>>> http://mailman.mn-linux.org/mailman/listinfo/tclug-list <http://mailman.mn-linux.org/mailman/listinfo/tclug-list>
>>
>> _______________________________________________
>> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
>> tclug-list at mn-linux.org <mailto:tclug-list at mn-linux.org>
>> http://mailman.mn-linux.org/mailman/listinfo/tclug-list
>
> _______________________________________________
> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
> tclug-list at mn-linux.org
> http://mailman.mn-linux.org/mailman/listinfo/tclug-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20151022/41ec66b3/attachment.html>