{"id":367,"date":"2016-03-25T16:06:38","date_gmt":"2016-03-25T15:06:38","guid":{"rendered":"http:\/\/geisti.de\/wordpress\/?p=367"},"modified":"2016-03-25T16:06:38","modified_gmt":"2016-03-25T15:06:38","slug":"doveadm-expunge-rekursiv-ohne-iterate","status":"publish","type":"post","link":"https:\/\/geisti.de\/index.php\/2016\/03\/25\/doveadm-expunge-rekursiv-ohne-iterate\/","title":{"rendered":"doveadm expunge rekursiv ohne iterate"},"content":{"rendered":"<p>Da ich dovecot mit staticdb einsetze und diverse Clients im Einsatz sind, welche nicht ordentlich aufr\u00e4umen, habe ich folgendes Script zu meinen t\u00e4glichen Cronjobs gepackt. Enth\u00e4lt noch keine Returncodes etc. &#8211; quick and dirty halt \ud83d\ude09<\/p>\n<p>Einfach das SQL-Statement und ganz unten die eMailadresse anpassen und (wenn man so faul ist wie ich) nach cron.daily speichern. Wer sonst nichts mit cron zu schaffen hat: &#8222;KEINE&#8220; Punkte im Namen verwenden. (Beispiel &#8222;geloeschteloeschen&#8220; ist OK, nicht aber &#8222;geloeschteloeschen.sh&#8220;!)<\/p>\n<blockquote><p>#!\/bin\/bash<br \/>\n#Script: Jan Ligendza v.25.03.2016<br \/>\n#info AT ligit.de<\/p>\n<p># Variable mit Benutzern aus DB fuellen (SQL-Statement ggf. anpassen. Hier werden die kompletten eMail-Adressen zur\u00fcckgegeben. Beispiel: hans.wurst@hier.dort)<br \/>\nMAILUSER=$(mysql &#8211;host=DATENBANKHOST &#8211;user=BENUTZER &#8211;password=&#8217;PASSWORT&#8216; &#8211;database=DATENBANK\u00a0&#8211;skip-column-names &#8211;execute=&#8220;SELECT email from virtual_users;&#8220;)<\/p>\n<p># Variable Zeile f\u00fcr Zeile abarbeiten und die Postf\u00e4cher bereinigen (&#8222;Geloescht und aelter als 7Tage&#8220;)<br \/>\nMAILINFO=$(while read line<br \/>\n<span style=\"line-height: 1.5;\">do<br \/>\n<\/span><span style=\"line-height: 1.5;\">MAILBOXUSR=&#8220;$line&#8220;<br \/>\n<\/span><span style=\"line-height: 1.5;\">echo &#8222;USER: $MAILBOXUSR&#8220;<br \/>\n<\/span><span style=\"line-height: 1.5;\">MAILBOXEN=$(doveadm mailbox list -u &#8222;$MAILBOXUSR&#8220; 2&gt;&amp;1)<\/span><\/p>\n<p style=\"padding-left: 30px;\"># Zweite Variable Zeile f\u00fcr Zeile abarbeiten um alle Ordner incl. Unterordnern zu erwischen, da doveadm expunge unbedingt die mailbox (den Ordner) wissen will<br \/>\n<span style=\"line-height: 1.5;\">while read line<br \/>\n<\/span>do<br \/>\n<span style=\"line-height: 1.5;\">doveadm mailbox status -u &#8222;$MAILBOXUSR&#8220; &#8222;messages unseen vsize&#8220; &#8222;$line&#8220; 2&gt;&amp;1<\/span><br \/>\n<span style=\"line-height: 1.5;\">doveadm -v expunge -u $MAILBOXUSR mailbox &#8222;$line&#8220; DELETED savedbefore 7d 2&gt;&amp;1<br \/>\n<\/span><span style=\"line-height: 1.5;\">done &lt;&lt;&lt; &#8222;$MAILBOXEN&#8220;<\/span><\/p>\n<p><span style=\"line-height: 1.5;\">echo -e<br \/>\n<\/span>done &lt;&lt;&lt; &#8222;$MAILUSER&#8220;)<\/p>\n<p># Infomail versenden<br \/>\necho &#8222;$MAILINFO&#8220; | mail -s &#8218;mail: dovecot expunge information&#8216; email@adresse.j0Rr<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Da ich dovecot mit staticdb einsetze und diverse Clients im Einsatz sind, welche nicht ordentlich aufr\u00e4umen, habe ich folgendes Script zu meinen t\u00e4glichen Cronjobs gepackt. Enth\u00e4lt noch keine Returncodes etc. &#8211; quick and dirty halt \ud83d\ude09 Einfach das SQL-Statement und ganz unten die eMailadresse anpassen und (wenn man so faul ist wie ich) nach cron.daily\u2026 <span class=\"read-more\"><a href=\"https:\/\/geisti.de\/index.php\/2016\/03\/25\/doveadm-expunge-rekursiv-ohne-iterate\/\">Weiterlesen &raquo;<\/a><\/span><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-367","post","type-post","status-publish","format-standard","hentry","category-computergedingens"],"_links":{"self":[{"href":"https:\/\/geisti.de\/index.php\/wp-json\/wp\/v2\/posts\/367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geisti.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geisti.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geisti.de\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/geisti.de\/index.php\/wp-json\/wp\/v2\/comments?post=367"}],"version-history":[{"count":0,"href":"https:\/\/geisti.de\/index.php\/wp-json\/wp\/v2\/posts\/367\/revisions"}],"wp:attachment":[{"href":"https:\/\/geisti.de\/index.php\/wp-json\/wp\/v2\/media?parent=367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geisti.de\/index.php\/wp-json\/wp\/v2\/categories?post=367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geisti.de\/index.php\/wp-json\/wp\/v2\/tags?post=367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}