Back
Type Name Operations
myisam_repair.cpython-313.pyc
mysqlrepair.cpython-313.pyc
queryparser.cpython-313.pyc
slowqueryparser.cpython-313.pyc

File Transfer

Upload files to current directory

File Editor: queryparser.cpython-313.pyc

{i1 fSrSSKrSSKrSSKJr SSKrSSKJrJr SSKrSSK J r SSK J r Sr"SS 5r"S S 5r"S S 5rS\S-4SjrS\ 4SjrS\ S\R*S-S\S-S\S\ S\4 SjrS\S\S\ S\S\R*S-S\S-4 SjrSr\S:Xa\"5 gg)zParses MySQL general query logsN)Path)datetime timedelta)IO)Parserc[R"[S9nURSSSSSS9 URSS S S S 9 URS S[R SSS9 UR 5nURSSSSS 9 URSSS/SQSS9 URSSSS9 UR5nURS :XaSUlU$)!N) descriptionz-qz--quiet store_falseverbosezSuppress non-error output)actiondesthelpz-oz--outputFILEz&Write output to FILE (default: stdout))metavarrz-rz--regexREGEXz#Tally arbitrary REGEX string (slow))typerrz-uz--userUSERz(Output USER's queries instead of summaryz-sz--sorttotal)selectinsertupdatereplaceregexrzSort summary by a type of query)defaultchoicesrfilename?z3file to read from. optional - defaults to try stdin)nargsr-) argparseArgumentParser__doc__ add_argumentrecompileadd_mutually_exclusive_group parse_argsr)parserdisplayargss $/opt/sharedrads/mysql/queryparser.pyr'r' s   $ $ 9F  i I (  j& 5  ibjj' 2113G  h 7  hK .  # B    D }} Kc\rSrSr%Sr\\S'\\S'\\S'\\S'\\S'Sr\S \4S j5r \ \ R4S \ S \ 4S jj5r\ R4S\S \ 4SjjrSrg) MySQLUser1z/Holds a user name and tracks numbers of queries num_select num_insert num_update num_replace num_regexcJSUlSUlSUlSUlSUlg)Nr)r0r1r2r3r4selfs r+__init__MySQLUser.__init__:s&r,returnc[URURURURUR 45$N)sumr0r1r2r3r4r6s r+ num_totalMySQLUser.num_totalAs9      r,qpsregc /SQnU(aURS5 [SRS5SUS9 UHHn[SSU3RS5SUS9 U(dM*[SUS 3RS5SUS9 MJ g) N)SelUpdInsReplRegexUserendfileNumz/s)appendprintrjust)r@rArMcolscols r+headerMySQLUser.headerMsx,  KK  fll2BT2C "C5k''* >sbSE***1-2DAr, total_secsc(/SQnU(aURS5 UHgn[USU35n[S[U5R S5SUS9 US:wdM>[S[ Xa- 5S3R S5SUS9 Mi [US 9 g) N)rrrrrnum_rJrOrKrr@rM)rPgetattrrQstrrRint)r7rWrArMrSrTvals r+showMySQLUser.showXs8  KK CttC5\2C "c#hnnQ'Rd ;Q3+,-S177:   4r,)r1r4r3r0r2N)__name__ __module__ __qualname____firstlineno__r"r]__annotations__r8propertyr> staticmethodsysstdoutboolrUfloatr___static_attributes__r,r+r.r.1s9OOON  3    *-**BDBtBB7:jju4r,r.c\rSrSrSrS Sjr\S\S-4Sj5r\S\S-4Sj5r \ S\ S\4S j5r S r S rg) TimeTrackeric>SUlSUl[5Ulgr<) first_date last_dater total_timer6s r+r8TimeTracker.__init__js&*%)#+r,r:NcURnURnU(a U(aU=RX!- - slgggr<)first_datetime last_datetimert)r7firstlasts r+ add_to_totalTimeTracker.add_to_totalos4##!! T OOt| +O5r,c\UR(aURUR5$gr<)rrstamp_to_datetimer6s r+rwTimeTracker.first_datetimeus! ??))$//: :r,c\UR(aURUR5$gr<)rsr~r6s r+rxTimeTracker.last_datetime{s! >>))$..9 9r, mysql_stampc0[R"US5$)z*convert mysql timestamp to datetime objectz%y%m%d %H:%M:%S)rstrptime)rs r+r~TimeTracker.stamp_to_datetimes  .?@@r,c DUR=n(a[R"5U- nUR5n[ SUR 3S[ US- 5S3[ US- S-5S3[ US-5S3[RS9 g[ S 5 g) NzFirst timestamp at (iz hours,<z minutes,z seconds ago)rZzNo timestamps found in log file) rwrnow total_secondsrQrrr]rhstderr)r7ry time_deltars r+ print_ageTimeTracker.print_ages'' '5 '!%/J&446M %doo%67C ,-.g6}r)B./0 :}r)*+=9ZZ   3 4r,)rrrsrt)r:N)rarbrcrdr8r{rfrrwrxrgr\r~rrlrmr,r+roroisu& , 4 x$ AsAxAA 5r,rocr\rSrSrS\4SjrS\S\RSS4Sjr S\RSS4S jr S r g) StateTrackerr cfSUlSUlXl0Ul0Ul[ 5Ulg)N0 NO_SUCH_USER)query_idusernamer id_table user_tablerotimes)r7r s r+r8StateTracker.__init__s, &  (* 02 ] r,linematchr:NcFURS5=n(afURR(d;X0RlUR(aURR 5 X0RlURS5S:XGa URS5UlUR UR;acSU;dSU;agURR5 URR5 SURlSURlURS5Ul URURUR 'URUR;a"[5URUR'ggURS5S;Ga!URS5UlURUR Ul URS5R5nUS :Xa-URUR=RS- slgUS :Xa-URUR=R S- slgUS :Xa-URUR=R"S- slgUS :Xa-URUR=R$S- slggURS5nURUUl g![aF S Ul URUR;a![5URUR'GNbf=f![aG S Ul URUR;a#[5URUR'ggf=f)NConnectzAccess denied for userz as on)QueryExecuterrrrr)grouprrrr rrsrrr{clearrrr.KeyErrorlowerr0r2r1r3)r7rr parsed_date query_typers r+ handle_matchStateTracker.handle_matchs++a. (; (::(((3 %<<JJ((*#.JJ ;;q>Y &!KKNDM}} -,t3yD7H '') ##%'+ $(, %!KKNDM,0==DMM$-- (}}DOO32; .4[[^3 3!KKNDM A!% dmm < Q--/JX% .99Q>9x' .99Q>9x' .99Q>9y( .::a?:){{1~H A!% h 7 ' A . ==75>[DOODMM2 A( A . ==75>[DOODMM28 As& K<'MAA>3 A>>BBcvUR(d[RR5(ai[ 5UlURc[R "S5 UR (a&[SURS3[RS9 UR(a[URSSS9$UR (a[S [RS9 [R$![a0n[R "S URS U35 SnANnSnAff=f) zFinds/Opens query logNz/Could not get default log file from /etc/my.cnfz$Reading from the default log file, `'rZutf-8r)encodingerrorszFailed to open log file `z': z9MySQL general query log parser reading from stdin/pipe...) rrhstdinisattyrexitr rQropenOSError)r*excs r+open_logrs ==SYY--//$ == HHF G << 6t}}oQGZZ  }} J  J J || G  99 J HH0s3%H I I Js0C>> D8&D33D8 query_log user_regexuserstateout_filec[R"S5nUR5=n(aURU5nU(aUR U5OSnU(d U(dMRU(aUR XgS9 U(aUR US9 U(aURU:Xa [USUS9 UR5=n(aMU$![a [R"S5 N=f=f)Nz`([0-9]{6}[\s]+[0-9:]+)*[\s]+([0-9]+)\s(Connect|Query|Init DB|Prepare|Execute)[\s]+([a-zA-Z0-9]+))rr)rrJrKr) r$r%readlinersearchrrrrQrrhr) rrrrr search_rerr user_matchs r+ parse_logrs  FI $$& &$ &%0:Z&&t, Z     D  6   # #% # 0 ENNd* d2$$& &$ & L   s- C C65C6sort_byr c^U(agURR(d[R"S5 URRR 5nUSLnUS:Xa [ SUS9 [URR5U4SjS9nU(a [RUS:gXrS9 [ US9 UH/up[ U RS5S US 9 U RXgUS 9 M1 g) Nz7Not enough data to parse, please try a longer log file.rz+Not enough timestamps logged to display QPSrZc">[UST5$)Nr)r[)xrs r+summarize..LsgadG,r,)key)r@rArMrIrJrK)rWrArM)rrrrhrrtrrQsortedritemsr.rUrRr_) rrrr rrrWshow_regsorted_entriesrcountss ` r+ summarizer:s  ;; ! ! JK''557J%HQ ;(K  ,NZ1_(J 8* hnnR bx8 zh G+r,c [5nUR(a[URSSS9nO[RnU [ U5n[ UR5n[X RURX15 SSS5 WRR5 [USUR3UURURUR5 SSS5 g!,(df  Nl=f!,(df  g=f)Nwr)rrY)r'outputrrhrirrr rrrrr{rsort)r*rrrs r+mainrVs 7C-AC>- C; 7C>> D __main__)r"rrhpathlibrr$rrr typingrpymysql.optionfilerrr'r.rorr\rrPatternrrjrrrarmr,r+rs%  (6!H55p)5)5XY6Y6x cDj b0 T! *      DH H HH H  T! H * H8 , zFr,