/opt/dedrads/__pycache__
NameSizeModeActions
alp.cpython-313.pyc188170644editdlrm
check_prov.cpython-313.pyc63940644editdlrm
clean_exim.cpython-313.pyc89020644editdlrm
cmspass.cpython-313.pyc63780644editdlrm
cms_check.cpython-313.pyc140790644editdlrm
cms_counter.cpython-313.pyc329480644editdlrm
cpanel_postgres_manager.cpython-313.pyc407620644editdlrm
docroot.cpython-313.pyc54920644editdlrm
envinfo.cpython-313.pyc81840644editdlrm
exclude_rbl.cpython-313.pyc66820644editdlrm
first_setup.cpython-313.pyc204930644editdlrm
fixwpcron.cpython-313.pyc72230644editdlrm
innodb_converter.cpython-313.pyc143470644editdlrm
mail_sources.cpython-313.pyc99690644editdlrm
modsec_disable.cpython-313.pyc158380644editdlrm
mysql_selector.cpython-313.pyc867480644editdlrm
show-conns-adv.cpython-313.pyc684140644editdlrm
sparta.cpython-313.pyc4909030644editdlrm
vhost_data.cpython-313.pyc69830644editdlrm
Edit: /opt/dedrads/__pycache__/clean_exim.cpython-313.pyc (8902B)
}jSrSSKrSSKrSSKrSSKrSSKJr \R"S5rSS\ \ \ -S\R4Sjjr SSjr S rS rS rS rS rSrSrSrSrSr\S:Xa\"5 gg)zDPython exim cleanup script to reduce the urge to run hacky onelinersN) defaultdictzT\s*(?P[0-9]+[mhd])\s+[0-9\.]+[M|K]? (?P[a-zA-Z0-9\-]+)\s+\<(?P.*)\>commandreturnc <Un[R"USUSSSS9nU$)zX Run a process with arguments. Optionally, as a shell command returns CompletedProcess. Tsurrogateescapezutf-8F)capture_outputshellerrorsencodingcheck) subprocessrun)rr argsresults /opt/dedrads/clean_exim.pyrrs0 D ^^   F Mc`/n[SS/5nURR5nUH~n[R U5nUcMUR 5nU(a USS:XaM?U(a USS:waMQ[ US5US'USS:dMmURU5 M U$)zuGet current exim queue as a list of dicts, each dict containing a single message, with keys 'age', 'id', and 'sender'eximz-bpsenderage)rstdout splitlines EXIM_BP_REmatch groupdictexim_age_to_secsappend)exclude_bounces bounces_onlyqueueout queue_lineslinerrs r get_queuer&%s E vuo C**'')K  & = OO% y2b8  Ih/25 +Ie,<= % U d " LL # LrcVSSSS.nXSn[URS55U-$)zconvert exim age to seconds<riQ)mhdmhd)intrstrip)r conversions multipliers rrr:s3E2KW%J szz% !J ..rc[SSU/5nUR5 URR5nSU;$![R a gf=f)z6Determine if a message ID is a boxtrapper msg in queuer-MvhFz1Subject: Your email requires verification verify#)rcheck_returncoderstripr CalledProcessError)msg_idr#heads r is_boxtrapperr9Cs]666*+ zz! ?$ FF  ( (s8?AAc[U[5(aSRU5n[SSU/5R 5 g![ R a gf=f)z-Here, msg_id may be a list or just one string rz-MrmN) isinstancelistjoinrr4r r6)r7s r remove_msgr?NsR&$&!  VVV $%668  ( (   sAAAc[[UR555S:Xa [S5 g[S5 UR 5Hup[SX4-5 M g)z2Given a dict of user:count mappings, print removedrzNone to removezRemoved:z %s: %dN)lenr=keysprintitems)removedusercounts r print_removedrHXsL 4   A%  j"==?KD )tm+ ,+rc[S5 [[5n[SS9nUVs/sHn[ US5(dMUPM nnUH n[ US5 XS==S- ss'M" [ U5 gs snf)zRemove old boxtrapper messages from queue. The theory is that if still stuck in queue after min_age_secs, they were likely sent from an illigitimate email address and will never clear from queue normallyz#Removing old boxtrapper messages...Tr idrN)rCrr.r&r9r?rH)rEr"xmsgs rclean_boxtrapperrObsw /0#G d +E 81qw!7QE 83t9H !#' 9s A=A=cN[SSU/5nUR5 URR5nSU;agUR 5nSn[U5HupESU;dM US- n O US:aX#R5$g![R a gf=f)z:Get the user for a message which is at full quota, or Nonerz-MvbNz Mailbox quota exceededr,rLr)rr4rr5r r6r enumerate)r7r#body addr_lineline_numr%s rget_full_quota_userrUps666*+ zz! (4 / ?? DI#D/ '4 / 1 I *A~$$&&   ( (s8B B$#B$c[S5 [[5n[SS9nUH0n[ US5nUcM[ US5 X==S- ss'M2 [ U5 g)z2Remove "mailbox quota exceeded" bounces from queuez"Removing old full inbox bounces...T)r!rKNrL)rCrr.r&rUr?rH)rEr"rNrFs rclean_full_inbox_bouncesrWsa ./#G 4 (E"3t9- < 3t9   'rcz[S5 [[5n[SS9nUHln[ SSUS/5nUR 5 UR R5nSU;dMGSU;dMO[US5 XS ==S - ss'Mn [U5 g ![Ra Mf=f) zoRemove old auto-responder emails from queue which are likely responses to spam if they have been stuck in queuezRemoving old auto-responses...TrJrr3rKzX-Autorespond: auto_replyrrLN) rCrr.r&rr4rr5r r6r?rH)rEr"rNr#headerss rclean_autorespondersr[s *+#G d +E vvs4y12C  "jj&&(G w &<7+B s4y ! M "a ' "' ,,   s;B""B:9B:c[R"SSS9nURSSSSS9 URS S SS S9 URS S SSS9 URSSSSS9 UR5n[ U5R 5VVs/sHup#USLdM UPM nnn[ U5S:wa&UR5 [R"S5 U$s snnf)zParse commandline argumentszExim cleanup toolz"One and only one option is allowed) descriptionepilogz-az--all store_truezDo all cleanup procedures)actionhelpz-bz --boxtrapperzRemove old boxtrapper messagesz-rz --autorespondz"Remove old auto-responder messagesz-fz--fullz!Remove old bounces for full inboxTrL) argparseArgumentParser add_argument parse_argsvarsrDrA print_helpsysexit)parserrkeyvaluechosens r _parse_argsrns  $ $'3F  gl1L   -     1     0     D$(J$4$4$6 H$6jc%4-c$6F H 6{a  K Is CCc"[5nUR(dUR(a [5 UR(dUR(a [ 5 UR (dUR(a [5 gg)z Main logicN)rn boxtrapperallrOfullrW autorespondr[)rs rmainrtsI =D $(( yyDHH " 488$r__main__)F)FF)__doc__rbrer rh collectionsrcompilerr=strCompletedProcessrr&rr9r?rHrOrUrWr[rnrt__name__rrr~sJ  #ZZ cS*2M2M&*/G - * & F zFr