2015-08-15 69 views
-1

我設立一個腳本來從郵件目錄文件夾「.LearnAsSpam」將文件移動到一個相對目錄匹配 - 垃圾郵件處理

學習垃圾郵件,垃圾郵件就會得知後,我想所有的垃圾郵件移動到爲所有用戶 「.Junk」 文件夾:

即:

  • /家庭/ vmail /域1/USER1 /Maildir/.LearnAsSpam/cur/* - > /家庭/ vmail/DOMAIN1/user1 /Maildir/.Junk/cur/

  • /家庭/ vmail /域1/user2的 /Maildir/.LearnAsSpam/cur/* - > /家庭/ vmail /域1/user2的/Maildir的/。垃圾/當前/

有沒有簡單的方法來編寫一個bash腳本,將正確地匹配和移動每個用戶的文件?

回答

0

OK,認爲這將工作:

find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsSpam/cur" -exec sh -c '(cd {} && mv ./* ../../.Junk/cur)' ';' 

萬一有人有興趣,對垃圾郵件的學習和移動垃圾郵件整個腳本是這樣的:

# do a spam check in LearnAsSpam and LearnAsHam folders 
# find spam 
sa-learn -p ~/.spamassassin/user_prefs --spam /home/vmail/*/*/Maildir/.LearnAsSpam/{cur,new} 
# find ham 
sa-learn -p ~/.spamassassin/user_prefs --ham /home/vmail/*/*/Maildir/.LearnAsHam/{cur,new} 
# move spam 
find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsSpam/cur" -exec sh -c '(cd {} && mv ./* ../../.Junk/cur)' ';' 
find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsSpam/new" -exec sh -c '(cd {} && mv ./* ../../.Junk/new)' ';' 
# move ham 
find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsHam/cur" -exec sh -c '(cd {} && mv ./* ../../.Inbox/cur)' ';' 
find /home/vmail/ -type d -path "*/*/Maildir/.LearnAsHam/new" -exec sh -c '(cd {} && mv ./* ../../.Inbox/new)' ';' 

這個被添加到/etc/cron.daily/spamassassin腳本

相關問題