JFIF       %%-))-969KKd       %%-))-969KKd! f%eK_.T  v_/n6q>e}&Cx@t7OuqySN%y%tz@ Un(quo{tS]\~LzǚPk;fϛϹ2y-=_z.NWW7DW@'4`3w3rr;hP8B%ַBe]`7Ҽo1e)弆O|4Wk*}7Su[9=U 9 |_+:@}@˵u@ g<4N<@=/ I(~}qq=y- u|. y'`3S+4$e= k4P]M^_Nou*R-,X0EI}m&LtVȱa|R\@ ʟ+YeIlY`XV^HV/c-eb du ̈́_2+DpV ` ^^->t7JydE]I 8:7#j̀iiVbp~o݃[}zwGF@-(RTJY@ Ty}X 1!2AQaq"3BR`r@PSb #4CTs0DU$EFcd?Lc4\K#E1$@CV8OƂZ5g;.141;%]6e laǃpv8)80D1ŌxLgWYc+z%:( w^PtdԣV Z:qDsh W) ͷ+~FO]"բ?eN 4)WREZ;T+}]:FRtI ѱއ>'s_[\qNhK ' ^qJv9 ]ʜ1FMzwF8ѯBIp-g`?si;|Hr%>jOh29-+-gQmBH?3P9e')>[k^OaxtLiS30ҿ6*o--I$ 1 z2+OЪ+i˺,_n3(~}StUMc \xSmGD0jMB06%') #1c6s/iaIɉgC%Yoi**MHЛ=rh ĭ總 E>Jў2+ct/^$[_kAOʕicR4qm#Lw!Squ/:e%~zMBfa|e7PUC|"/)CD\cy gڰF9(?\jU+>Cwl#>x^'a7C}LYX<@X`W8P hۂx͍q֜?de1qe* NDuTm-ߣ y+pUy*9aĺ:P4n$2&BTϵ@ a>v3uc,(uF0jˊ́a~32f2=ήZe[r!F !Bu)b FŌt%41N/֑41n1|> 1^;1=IĖEpq%"{/~M.QWDdUA6~z>kPh2Oi?Uc[`+l;՚':۾ږtoZjQ7\:Z3}~ &ڮRQH{mDq0TaM5i:5sC0x<]=Mp c!C<6]~vpxeH[AmY'iԖ_~ a(Ȕ@+a< w] wbk1#aD 9. ?p$ Qؒi-8S㨸f45t:ʙѾ.{mMshU1k\z^*#It@ v:%#iSZ.{.Vemm,Z3*;HtU8E.v'e ޴ 4WwLDe)jY*R'?wM֣ b+IfO('Y J$o޼ l.蕁~ Y Em>Y^m"r^4w}2PI7R1gV\wtVT׿w'*N{ZGN8qzrM/LO~ O~|ڞ櫮o{\dV斀AJmn E#HQg$!{XM'{u* 4O)>F.";l2z3IJ2?Fh7)rjrv@ AJlУ 0`StpGD&nƒpxΡ}P늿D@cEH҆2[9a}U/biEzu)xYR>߹q (yA~ُp \U\L\6~" U'>GJOP,ko:JGI*٢C8f8굟m#GV̐Cj]}N_]aJulE.+I&y5 6*TGHZRů}efjv"\3/3_hq՝g !ir,ܐv%~*lXccyo) 拏Qp_tT3!,Dur!CH7;9GQQmE:ÑCaƅ;zeij;d+% z#e%gdI9E5BB&۟S"=C(>{֠ ɫNUळiu>;P}حW]ouBmJS0ktRtDm+$ԫU_dq)$ ʃnLGSፑf'vlzP/_]QԂ]ȗ|W\;wTSf!m,ri{w了enP(`*.1i2.}e@;HA&_N᷸1|:Gjڒj~i/֬]1(N +^ bQq:›m*o5Y(.JPV[3ޭj֭j+i(uָ]kV)A/%X Fa?8'o>ꝣKks\_k)S%zDTRw#h#e#1Euk&,Yw+Ap"PIZ*j*Ug">m>|ڇ(#FXzCi9%J'H3Xwi-9s0S`R^֮ YLJz+q^i}i1jLK+ [ NzDSq[+Q'ݖl=s<[iIWz=%}[jɁ֠$$N7IUm83SVŭw)#0$g C26^ʓW<=B>{R)&繻8j3cbbce7TE1r\'}FūLO+KʢXm/=H 6FaRHI^Lȹ83g9CM93쑑nE)=q4I$s'ݠajm]"O>L4Vb;(eHm$֫ӆyYtYYr(<Ɠ2Fm "f֒;Tξu8jZR$b!E*9 yy+V:Dm Œ9@-f*l2#ٿPt#T҂ӵ&;AȃWlf xϜZكfj%bs ,/uN{,Gz*kkP M6f/0[I;S)ml-؉)~q9v`ǣ4gZJ}h&dﺥ#{}uDa7j(I'2OҒMF7 .Ey<$5;2ժTI %)TwG54Ŭ Kb6rG;uq\[8DJ'i$?Pq-ݗs\JGkYO2%}b\9;Tk⾜3%qSd( [O4i'jQՃ &F Ҧ T2!G{N j~:Cz J3|xd(6TZ a b5gfK\I)WYARA(RVE$G8at̖qWq{B:Q^g3QzcAZrH|GMcjb{+)r=>:de:¹[QOe@>ISP1nIq!:3G).!ŶB꠲#0Eb2"Lt4ƺKCGn9P=PeoX8@fղ Gi9k ^aHAV<)GG*k_aUΜWsX4ʷ\%m,W*F}<1E/&NJIʳ:PmeRuń%A<ᶧ2s^s-9$PHw]ZB#[>9Fm*>Ut.HugK9uaAF.%fW&J~$k^S:iގT9_5`_bR`ܒ(8Fa?jMc4Pŭ!VB7 W+߀ i>b٠,]?<{aXgpJ]璹نrV53-)p:,R%>#W۲4K{%L%]ͅP,7"[NI:ܴ- AJr)#"=k#Eoa PP$C>7m_t ڠcJZymA [qwDw|*3(FMۭ\KP-'1WK, suu;~ZaTnyi$A =46i֑AUU"l:gA ]"8&ד<{z&O!WF^XGhViWM\q(*p#Fk?p\Ym*J3B3'%jn+ IG{VcVL-f7 #/u}5bD7XMi!{#b$U]q\RGa ;OZXv^WZ\ܭ( lhSˎ6 V'h GY{49$r8AIȃ#V$HL/~l.]:>29:EkSO%N$Ϋkͯ⫝̸yˮ0mE+IVwuIu>Xj%6@[k)aqJz|؏!Υ֔RP.l@tⵅkZg'5nrqDU^kJBEBfrG)+J$"dB3#ٔk4yQCz9S\8'#/5cˑYO(4dhIM<6BߢJNDZFEgD6vnl|^kr;^hϨ1!ʌ:įZBᝋx|T+'!c t"YH=)"g6-t+.Ur$+ZzRG s*f9_QY4El>DI[}B=>v)iTg[?oWwۿlWG69k{Qx]-*$<-=W¹nUĂ}G4tZ]^Q8m!])SyR)vOR(_Aiϵei#{$hਧ.SLN}߬e}EgZwgAWPBcZÖ']P ;2/hy}1M9Fj'.ӖZy-,r ND|jlC)jqSʚV)]p3;❀[:tBH##HqhZr\j"tG-тtHtB24PJ:w;xI0$ wEQ#)FejK rSw|">Tҙ#2Xc8g,(L`S2 tM>5@<)A71iXSlHڛ9(y4KUu:xARdf5\Zq|m{ӭjI8%. ڟ5pxvqd(9P$#"8CQ NKFۘ;RTPE8^`WãRxL髍{}ġͭ緗Ҍ/<xcKOVy0\{Uk85A07)_uCuopN>~3e e޽ytYnDm3)ܠ&,![y3CcؽK+raޱX~aRbm<wE #+ԺQXfGq+h[71_A* [V٣sCEXb\fNiXNݔz NҲ wrG"+ kлYI`ϼUՄ o9Vc7^[Y"E]W>(GSkt]Gcx~hM`?WV8q w< `bJb̑ NNG[xr̈>Kþ7<7H56pIEKgoE`?4e)ޛ)7M(-4ot}LDG6"qycg~x{>8.,7W_ɦ/nG|MFU^VYpa",BBBH;GC#2JerK*ZIqbIphت݉)c繥ՅVtLnEcf62:;\Rw@{ S5Q $ϑTz;EzFO5Pn.NA<~ҌoXR|Ig$^]A|^_mmҷj8mbMbՅHmvI_MqƊFCq&Б%z>ΧKEAg4y;/0f[|@$SG,h5@0RȁцEH-qm%Kb%Dx:0XNHWIᰵ$G)|^ χ,m,#%6צIpO FDFUH5JKlI>Vxn;ĶY;dZkarnƭaeG< W#9+؄l?jEmDo<~W++0#π*<.ۘZ+H$VfF|J&#N ?*<<⢌՞\.#I: !#Sh-4'F |-[WQFH7 )d`JFCbFɞ9N9vՅW4xPOBHc2a"*90Iv5IGI<hI I*'Ƿ.-m1ȼѹKF2ٷ;*A*T6FDSKsipI tGx f$9 Ǐzf{kd@r:/?(i^b 3)_g;&IEWu̓*2t7qL Ti5, wdXr&Gwmŏy)IJD+iE:v6[=9ʰ;q` =}#q:<>~mFU631TqQ (t2/c~ iK'y˴TlxsF_$ {a8[yfc>Y͘k8&9x\Նڻ{I&7+ fv F=,ꌼcCA[c:麑î6B겦&|mFm㪈Rfw .xJês1?_UnuQGǪ?6wR5b-:q{wK  !1A2Qq"@PRa #03BCSbr4$T`c?K)o<rzѸUL<6K4F̘E¹?Q7 QZtʄSV9iE$m6vU>8_F!zaS# j_4Jzm_bȚ;/:Iq7A9Qڜp͖!QTaOSTQzqS5U{LHOWc;TWUA}YWqUNKURѾĴ:gfYnQ*dv?F6i1G6[H?W*!Wl 8OlE?U$jv<&Rا@TG"X޺51?Ikymc{TLʧA4Y+#a=[#j Ge;@֍Xًv_(uVgJjbէz;5$۱ʡ)zv|eS u̎b{ean<6\;CQ<@΍b{ZM%[*n,z{EZR++e`w޹bh9cWF2ǴU:RMWd架;UJcDtK_G@y5GāYzF 8cWb㖈qw4ecqMis,)',o=ߘq5e-0j.}xNGq?d;D5T Dbng2!zN%i`IJ4]JN Kv ./iLZFOii h=yn%wdԲ:d뉆2 ]|1jnvBV@XkxN_;J Kӯ$ΟVlXm x[0'id =qcamjdӚȹaE4rY26!۩PS#U v{-51~q<'x;Z *'Fg"pojg9l:5W媴txyyUU%`_58Mngv[+jz>XwbIt$]ɞ*{ &b^F=C4ЏZ+ F\pR]9c1b * @@K,\ϔ =0<9N{U^ozﺊ<˒D4p2 ,Ƿ˗:#]j*&*jFTܪTdF@x8׭CX2U&y({9b駴to90\DUaaƏ@J:tš#x]d0pUiJ!Џ_1Ke9s$\t%ZiW-]ZVp[!c8OڋGPmM 'ÈX$I"s)Ȍ[ڦT ׫wJsn$QӨ]dJ[;~ԕ$lŧt}7RU@&778ܷK "$4C^iQ􄆺h(Cg#P QҤ1 7~V=6~8:#7/N5qz=8ȂiEʀJpnx8.9@~1m3sE? :zqGY}:O#yw23$1%m}8`E毑s_PznQ[LF%D;S)י -YW < quTݪҒl>I£$qG,Ȑf=g + `~}m5dO+ipyOfv]ishu*8tx"4n7putfV]D`i=ZHWIwȩ<[.P\xӊF)jbKfzASi{*u#8 9p뚰 H@ff>,`2 L6b8 mw{Hn3|b3Fg1e6C<eH /_~B#L *t0xbS% 웞: Aɔ89hjd[OY墪9sŎzNZ:&Yiu%MGw=Y ]QӍ -u@'p[wK%suԘse^wbiɫ:f䲯4ֶCP JFE32 X;yVeAbFyyX%H ,vgb~Ksʊ&V φ 5f̅2K7ZVԎBLǑ=zv-yq,nȇ'(:8$(rH*!S RI.Lj"9\W>])|›\o?-tEs#678PI:e5n$i0ScudA F(ET lq{讬3 28xۆ1IPԲ v0r$0{[J*cyA 1OQ-3f5;׆!`;mV[g{*d$221VR8jk.aH)7c=BO>~ T77XӇʧ _NاVV:Gye)NKk Ǵ`ՏS=Wy\cu`}@8C2su XqC Պ̜xEU ڭ{$KόI@F؛NLOA$F[X2rĔG L\wE2J3S8IJ2e`A7),b +noĐ<{XA"Lj%W̮RI7=e0O {F 3t6ǽN7aNHmo!_5G/GGz`ǻwl${wzd2X,!a/@X{wh]S MARIJUANA
— DIOS — NO — CREA — NADA — EN — VANO —
Linux vps-ed8565de 5.10.0-32-cloud-amd64 #1 SMP Debian 5.10.223-1 (2024-08-10) x86_64
  SOFT : Apache/2.4.65 (Debian) PHP : 7.4.33
/usr/bin/
51.178.36.14

 
[ NAME ] [ SIZE ] [ PERM ] [ DATE ] [ ACT ]
+FILE +DIR
X11 dir drwxr-xr-x 2025-11-05 06:33 R D
[ 58.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
aa-enabled 30.367 KB -rwxr-xr-x 2021-04-03 06:09 R E G D
aa-exec 30.367 KB -rwxr-xr-x 2021-04-03 06:09 R E G D
ab 58.344 KB -rwxr-xr-x 2025-07-29 20:18 R E G D
addpart 26.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
apropos 51.203 KB -rwxr-xr-x 2021-02-19 10:14 R E G D
apt 18.227 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
apt-cache 86.305 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
apt-cdrom 26.305 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
apt-config 26.227 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
apt-extracttemplates 22.313 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
apt-ftparchive 270.313 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
apt-get 46.305 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
apt-key 27.53 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
apt-listchanges 11.955 KB -rwxr-xr-x 2021-03-28 11:06 R E G D
apt-mark 50.305 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
apt-sortpkgs 38.234 KB -rwxr-xr-x 2021-06-10 08:53 R E G D
arch 38.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
aria_chk 4.32 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
aria_dump_log 4.13 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
aria_ftdump 4.14 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
aria_pack 4.16 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
aria_read_log 4.28 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
awk 678.344 KB -rwxr-xr-x 2021-02-10 08:42 R E G D
b2sum 58.938 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
base32 42.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
base64 42.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
basename 38.781 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
basenc 54.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
bash 1.18 MB -rwxr-xr-x 2022-03-27 18:40 R E G D
bashbug 6.601 KB -rwxr-xr-x 2022-03-27 18:40 R E G D
bootctl 62.336 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
broadwayd 118.227 KB -rwxr-xr-x 2024-07-19 13:30 R E G D
bunzip2 38.07 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
busctl 82.336 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
bzcat 38.07 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
bzcmp 2.173 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
bzdiff 2.173 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
bzegrep 3.687 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
bzexe 4.763 KB -rwxr-xr-x 2019-09-04 13:22 R E G D
bzfgrep 3.687 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
bzgrep 3.687 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
bzip2 38.07 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
bzip2recover 17.992 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
bzless 1.267 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
bzmore 1.267 KB -rwxr-xr-x 2020-07-20 13:00 R E G D
c_rehash 6.527 KB -rwxr-xr-x 2025-10-03 09:54 R E G D
captoinfo 90.266 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
cat 42.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
catchsegv 3.228 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
catman 38.688 KB -rwxr-xr-x 2021-02-19 10:14 R E G D
certbot 0.938 KB -rwxr-xr-x 2021-02-13 18:56 R E G D
cgi-fcgi 18 KB -rwxr-xr-x 2025-10-12 09:03 R E G D
chage 78.375 KB -rwxr-sr-x 2025-04-18 13:46 R E G D
chardet 0.942 KB -rwxr-xr-x 2020-12-30 16:42 R E G D
chardetect 0.942 KB -rwxr-xr-x 2020-12-30 16:42 R E G D
chattr 14.156 KB -rwxr-xr-x 2024-10-03 14:08 R E G D
chcon 71.063 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
checkgid 14.156 KB -rwxr-xr-x 2025-07-29 20:18 R E G D
chfn 57.047 KB -rwsr-xr-x 2025-04-18 13:46 R E G D
chgrp 70.969 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
chmod 62.938 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
choom 50.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
chown 70.969 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
chronyc 111.016 KB -rwxr-xr-x 2022-03-14 21:17 R E G D
chrt 34.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
chsh 51.641 KB -rwsr-xr-x 2025-04-18 13:46 R E G D
cksum 38.781 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
clear 14.156 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
clear_console 14.305 KB -rwxr-xr-x 2022-03-27 18:40 R E G D
cloud-id 0.949 KB -rwxr-xr-x 2021-08-13 00:47 R E G D
cloud-init 0.953 KB -rwxr-xr-x 2021-08-13 00:47 R E G D
cloud-init-per 2.059 KB -rwxr-xr-x 2021-01-15 17:33 R E G D
cloud-localds 7.232 KB -rwxr-xr-x 2020-05-28 22:11 R E G D
cmp 46.781 KB -rwxr-xr-x 2021-01-01 17:52 R E G D
col 34.234 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
colcrt 14.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
colrm 30.234 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
column 50.234 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
comm 42.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
compose 18.053 KB -rwxr-xr-x 2021-02-25 18:24 R E G D
corelist 15.012 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
cp 147.625 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
cpan 8.161 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
cpan5.32-x86_64-linux-gnu 8.182 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
cpio 158.547 KB -rwxr-xr-x 2023-09-30 12:18 R E G D
crontab 42.547 KB -rwxr-sr-x 2021-02-22 22:43 R E G D
csplit 119.063 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
ctags 151.555 KB -rwxr-xr-x 2025-02-27 02:24 R E G D
ctags.emacs 151.555 KB -rwxr-xr-x 2025-02-27 02:24 R E G D
ctstat 22.508 KB -rwxr-xr-x 2021-02-05 23:34 R E G D
curl 250.07 KB -rwxr-xr-x 2025-06-09 01:01 R E G D
cut 46.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
cvtsudoers 274.977 KB -rwxr-xr-x 2025-06-26 17:03 R E G D
dash 122.617 KB -rwxr-xr-x 2020-12-10 13:23 R E G D
date 111 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
dbilogstrip 1.348 KB -rwxr-xr-x 2020-11-08 20:20 R E G D
dbiprof 6.061 KB -rwxr-xr-x 2020-11-08 20:20 R E G D
dbiproxy 5.268 KB -rwxr-xr-x 2020-11-08 20:20 R E G D
dbus-cleanup-sockets 14.133 KB -rwxr-xr-x 2023-06-06 14:07 R E G D
dbus-daemon 239.188 KB -rwxr-xr-x 2023-06-06 14:07 R E G D
dbus-monitor 26.141 KB -rwxr-xr-x 2023-06-06 14:07 R E G D
dbus-run-session 14.133 KB -rwxr-xr-x 2023-06-06 14:07 R E G D
dbus-send 30.133 KB -rwxr-xr-x 2023-06-06 14:07 R E G D
dbus-update-activation-environment 14.133 KB -rwxr-xr-x 2023-06-06 14:07 R E G D
dbus-uuidgen 14.133 KB -rwxr-xr-x 2023-06-06 14:07 R E G D
dd 79.07 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
deb-systemd-helper 20.893 KB -rwxr-xr-x 2020-12-14 20:19 R E G D
deb-systemd-invoke 4.308 KB -rwxr-xr-x 2020-12-14 20:19 R E G D
debconf 2.792 KB -rwxr-xr-x 2021-06-10 17:17 R E G D
debconf-apt-progress 11.271 KB -rwxr-xr-x 2021-06-10 17:17 R E G D
debconf-communicate 0.594 KB -rwxr-xr-x 2021-06-10 17:17 R E G D
debconf-copydb 1.679 KB -rwxr-xr-x 2021-06-10 17:17 R E G D
debconf-escape 0.632 KB -rwxr-xr-x 2021-06-10 17:17 R E G D
debconf-set-selections 2.866 KB -rwxr-xr-x 2021-06-10 17:17 R E G D
debconf-show 1.784 KB -rwxr-xr-x 2021-06-10 17:17 R E G D
debianbts 0.966 KB -rwxr-xr-x 2020-12-18 08:20 R E G D
decodemail 34.609 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
delpart 26.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
devdump 171.914 KB -rwxr-xr-x 2021-02-04 21:36 R E G D
df 91.734 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
dh_bash-completion 4.302 KB -rwxr-xr-x 2020-07-31 14:30 R E G D
dh_perl_dbi 1.17 KB -rwxr-xr-x 2020-11-08 20:20 R E G D
diff 203.438 KB -rwxr-xr-x 2021-01-01 17:52 R E G D
diff3 63 KB -rwxr-xr-x 2021-01-01 17:52 R E G D
dir 143.727 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
dircolors 46.82 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
dirmngr 565.641 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
dirmngr-client 106.781 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
dirname 38.781 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
dirsplit 16.741 KB -rwxr-xr-x 2006-11-25 23:13 R E G D
dmesg 82.461 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
dnsdomainname 22.07 KB -rwxr-xr-x 2019-11-07 11:31 R E G D
domainname 22.07 KB -rwxr-xr-x 2019-11-07 11:31 R E G D
dotlock 14.852 KB -rwxr-sr-x 2020-11-19 05:02 R E G D
dotlock.mailutils 14.852 KB -rwxr-sr-x 2020-11-19 05:02 R E G D
dpkg 306.531 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
dpkg-deb 158.383 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
dpkg-divert 150.438 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
dpkg-maintscript-helper 20.667 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
dpkg-query 162.43 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
dpkg-realpath 4.053 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
dpkg-split 122.336 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
dpkg-statoverride 62.117 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
dpkg-trigger 78.336 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
du 171.25 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
ebrowse 42.414 KB -rwxr-xr-x 2025-02-27 02:24 R E G D
ebrowse.emacs 42.414 KB -rwxr-xr-x 2025-02-27 02:24 R E G D
ec2metadata 8.189 KB -rwxr-xr-x 2020-05-28 22:11 R E G D
echo 38.781 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
edit 18.053 KB -rwxr-xr-x 2021-02-25 18:24 R E G D
editor 340.641 KB -rwxr-xr-x 2024-06-17 12:31 R E G D
egrep 0.027 KB -rwxr-xr-x 2023-01-25 08:23 R E G D
emacs 5.97 MB -rwxr-xr-x 2025-02-27 02:24 R E G D
emacs-gtk 5.97 MB -rwxr-xr-x 2025-02-27 02:24 R E G D
emacsclient 30.625 KB -rwxr-xr-x 2025-02-27 02:24 R E G D
emacsclient.emacs 30.625 KB -rwxr-xr-x 2025-02-27 02:24 R E G D
enc2xs 40.836 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
encguess 2.994 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
env 47.344 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
envsubst 34.227 KB -rwxr-xr-x 2021-02-02 21:35 R E G D
eqn 201.344 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
etags 147.336 KB -rwxr-xr-x 2025-02-27 02:24 R E G D
etags.emacs 147.336 KB -rwxr-xr-x 2025-02-27 02:24 R E G D
ex 3.03 MB -rwxr-xr-x 2025-03-30 03:33 R E G D
expand 42.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
expiry 30.43 KB -rwxr-sr-x 2025-04-18 13:46 R E G D
expr 114.969 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
factor 79.156 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
faillog 22.445 KB -rwxr-xr-x 2025-04-18 13:46 R E G D
fallocate 34.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
false 38.75 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
fc-cache 18.508 KB -rwxr-xr-x 2020-05-15 10:55 R E G D
fc-cat 14.453 KB -rwxr-xr-x 2020-05-15 10:55 R E G D
fc-conflist 14.273 KB -rwxr-xr-x 2020-05-15 10:55 R E G D
fc-list 14.336 KB -rwxr-xr-x 2020-05-15 10:55 R E G D
fc-match 14.398 KB -rwxr-xr-x 2020-05-15 10:55 R E G D
fc-pattern 14.328 KB -rwxr-xr-x 2020-05-15 10:55 R E G D
fc-query 14.297 KB -rwxr-xr-x 2020-05-15 10:55 R E G D
fc-scan 14.344 KB -rwxr-xr-x 2020-05-15 10:55 R E G D
fc-validate 14.344 KB -rwxr-xr-x 2020-05-15 10:55 R E G D
fcgistarter 14.156 KB -rwxr-xr-x 2025-07-29 20:18 R E G D
fgrep 0.027 KB -rwxr-xr-x 2023-01-25 08:23 R E G D
filan 91.961 KB -rwxr-xr-x 2021-02-03 12:58 R E G D
file 26.422 KB -rwxr-xr-x 2023-08-30 18:51 R E G D
fincore 34.273 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
find 303.719 KB -rwxr-xr-x 2021-01-09 17:36 R E G D
findmnt 67.414 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
flock 34.305 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
fmt 46.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
fold 42.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
free 26.227 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
frm 27.156 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
frm.mailutils 27.156 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
from 22.703 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
from.mailutils 22.703 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
fuser 39.773 KB -rwxr-xr-x 2021-02-08 10:19 R E G D
galera_new_cluster 0.896 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
galera_recovery 3.287 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
gawk 678.344 KB -rwxr-xr-x 2021-02-10 08:42 R E G D
gdk-pixbuf-csource 14.172 KB -rwxr-xr-x 2025-10-11 01:47 R E G D
gdk-pixbuf-pixdata 14.156 KB -rwxr-xr-x 2025-10-11 01:47 R E G D
gdk-pixbuf-thumbnailer 14.234 KB -rwxr-xr-x 2025-10-11 01:47 R E G D
genisoimage 622.945 KB -rwxr-xr-x 2021-02-04 21:36 R E G D
geqn 201.344 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
getconf 34.367 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
geteltorito 6.064 KB -rwxr-xr-x 2021-02-04 21:36 R E G D
getent 31.344 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
getopt 22.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
gettext 34.227 KB -rwxr-xr-x 2021-02-02 21:35 R E G D
gettext.sh 5.066 KB -rwxr-xr-x 2021-02-02 21:35 R E G D
ginstall-info 111.758 KB -rwxr-xr-x 2021-01-08 21:54 R E G D
gpasswd 86.234 KB -rwsr-xr-x 2025-04-18 13:46 R E G D
gpg 1.05 MB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpg-agent 400.82 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpg-connect-agent 146.875 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpg-wks-server 190.922 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpg-zip 3.434 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpgcompose 894.141 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpgconf 162.594 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpgparsemail 30.227 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpgsm 499 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpgsplit 70.484 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpgtar 143.25 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpgv 438.867 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
gpic 220.188 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
grep 198.313 KB -rwxr-xr-x 2023-01-25 08:23 R E G D
groff 121.375 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
grog 2.711 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
grops 181.781 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
grotty 133.406 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
groups 42.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
growpart 21.985 KB -rwxr-xr-x 2020-05-28 22:11 R E G D
grub-editenv 374.117 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-file 813.367 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-fstest 935.055 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-glue-efi 244.93 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-kbdcomp 1.642 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-menulst2cfg 228.977 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-mkfont 269.617 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-mkimage 354.117 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-mklayout 249.242 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-mknetdir 406.914 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-mkpasswd-pbkdf2 249.305 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-mkrelpath 240.648 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-mkrescue 991.789 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-mkstandalone 483.242 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-mount 758.008 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-render-label 825.93 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-script-check 268.773 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
grub-syslinux2cfg 774.445 KB -rwxr-xr-x 2023-10-02 14:11 R E G D
gtbl 142.352 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
gtk-builder-tool 34.578 KB -rwxr-xr-x 2024-07-19 13:30 R E G D
gtk-encode-symbolic-svg 18.258 KB -rwxr-xr-x 2024-07-19 13:30 R E G D
gtk-launch 18.305 KB -rwxr-xr-x 2024-07-19 13:30 R E G D
gtk-query-settings 14.148 KB -rwxr-xr-x 2024-07-19 13:30 R E G D
gtk-update-icon-cache 38.469 KB -rwxr-xr-x 2024-07-19 13:30 R E G D
gunzip 2.291 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
gzexe 6.296 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
gzip 95.75 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
h2ph 28.539 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
h2xs 59.503 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
hd 54.242 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
head 46.875 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
helpztags 2.455 KB -rwxr-xr-x 2025-02-07 08:22 R E G D
hexdump 54.242 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
host 102.625 KB -rwxr-xr-x 2025-10-30 09:48 R E G D
hostid 38.75 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
hostname 22.07 KB -rwxr-xr-x 2019-11-07 11:31 R E G D
hostnamectl 26.211 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
htcacheclean 34.164 KB -rwxr-xr-x 2025-07-29 20:18 R E G D
htdbm 26.156 KB -rwxr-xr-x 2025-07-29 20:18 R E G D
htdigest 14.156 KB -rwxr-xr-x 2025-07-29 20:18 R E G D
htpasswd 26.156 KB -rwxr-xr-x 2025-07-29 20:18 R E G D
i386 26.5 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
iconv 59.008 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
id 46.938 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
infocmp 62.227 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
infotocap 90.266 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
innochecksum 3.5 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
innotop 445.378 KB -rwxr-xr-x 2025-05-30 04:33 R E G D
install 155.789 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
install-info 111.758 KB -rwxr-xr-x 2021-01-08 21:54 R E G D
instmodsh 4.268 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
ionice 30.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
ip 617.805 KB -rwxr-xr-x 2021-02-05 23:34 R E G D
ipcmk 30.297 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
ipcrm 34.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
ipcs 70.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
iptables-xml 96.813 KB -rwxr-xr-x 2021-01-17 18:05 R E G D
ischroot 14.266 KB -rwxr-xr-x 2020-09-27 17:25 R E G D
isodump 179.914 KB -rwxr-xr-x 2021-02-04 21:36 R E G D
isoinfo 339.156 KB -rwxr-xr-x 2021-02-04 21:36 R E G D
isovfy 175.883 KB -rwxr-xr-x 2021-02-04 21:36 R E G D
join 54.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
journalctl 74.234 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
json-patch-jsondiff 0.98 KB -rwxr-xr-x 2020-05-11 08:59 R E G D
json_pp 4.872 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
jsondiff 0.98 KB -rwxr-xr-x 2020-05-11 08:59 R E G D
jsonpatch 3.576 KB -rwxr-xr-x 2020-05-11 08:59 R E G D
jsonpointer 1.795 KB -rwxr-xr-x 2020-05-08 09:01 R E G D
jsonschema 0.388 KB -rwxr-xr-x 2020-05-08 09:04 R E G D
kbxutil 158.695 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
kernel-install 4.838 KB -rwxr-xr-x 2021-02-02 15:29 R E G D
kill 30.227 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
killall 31.867 KB -rwxr-xr-x 2021-02-08 10:19 R E G D
kmod 166.18 KB -rwxr-xr-x 2021-01-08 01:37 R E G D
last 46.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
lastb 46.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
lastlog 31.5 KB -rwxr-xr-x 2025-04-18 13:46 R E G D
lcf 7.602 KB -rwxr-xr-x 2025-01-16 16:53 R E G D
ldd 5.275 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
less 179.695 KB -rwxr-xr-x 2024-05-02 18:29 R E G D
lessecho 14.164 KB -rwxr-xr-x 2024-05-02 18:29 R E G D
lessfile 8.343 KB -rwxr-xr-x 2024-05-02 18:29 R E G D
lesskey 23.57 KB -rwxr-xr-x 2024-05-02 18:29 R E G D
lesspipe 8.343 KB -rwxr-xr-x 2024-05-02 18:29 R E G D
letsencrypt 0.938 KB -rwxr-xr-x 2021-02-13 18:56 R E G D
lexgrog 98.969 KB -rwxr-xr-x 2021-02-19 10:14 R E G D
lft 2.435 KB -rwxr-xr-x 2022-12-29 07:27 R E G D
lft.db 2.435 KB -rwxr-xr-x 2022-12-29 07:27 R E G D
libnetcfg 15.405 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
link 38.75 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
linux-check-removal 4.564 KB -rwxr-xr-x 2018-09-05 17:52 R E G D
linux-update-symlinks 6.172 KB -rwxr-xr-x 2016-06-05 01:13 R E G D
linux-version 2.633 KB -rwxr-xr-x 2015-08-11 15:45 R E G D
linux32 26.5 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
linux64 26.5 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
ln 71.133 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
lnstat 22.508 KB -rwxr-xr-x 2021-02-05 23:34 R E G D
locale 54.039 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
localectl 26.219 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
localedef 307.75 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
logger 50.82 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
login 55.617 KB -rwxr-xr-x 2025-04-18 13:46 R E G D
loginctl 54.328 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
logname 38.781 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
logresolve 14.164 KB -rwxr-xr-x 2025-07-29 20:18 R E G D
look 14.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
ls 143.727 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
lsattr 14.156 KB -rwxr-xr-x 2024-10-03 14:08 R E G D
lsb_release 3.553 KB -rwxr-xr-x 2019-03-09 18:30 R E G D
lsblk 146.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
lscpu 98.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
lsinitramfs 0.689 KB -rwxr-xr-x 2021-01-14 18:04 R E G D
lsipc 94.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
lslocks 38.555 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
lslogins 66.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
lsmem 66.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
lsmod 166.18 KB -rwxr-xr-x 2021-01-08 01:37 R E G D
lsns 50.234 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
lsof 167.469 KB -rwxr-xr-x 2020-11-19 12:35 R E G D
lspci 91.945 KB -rwxr-xr-x 2020-12-24 17:49 R E G D
lspgpot 1.056 KB -rwxr-xr-x 2017-08-28 10:22 R E G D
lzcat 79.289 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
lzcmp 6.858 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
lzdiff 6.858 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
lzegrep 5.874 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
lzfgrep 5.874 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
lzgrep 5.874 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
lzless 1.757 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
lzma 79.289 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
lzmainfo 14.313 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
lzmore 2.111 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
m17n-db 3.646 KB -rwxr-xr-x 2019-11-20 23:46 R E G D
mail 213.047 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
mail.mailutils 213.047 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
mailq 30.148 KB -rwxr-xr-x 2024-03-09 15:38 R E G D
mailx 213.047 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
man 112.891 KB -rwxr-xr-x 2021-02-19 10:14 R E G D
man-recode 26.922 KB -rwxr-xr-x 2021-02-19 10:14 R E G D
mandb 135.148 KB -rwxr-xr-x 2021-02-19 10:14 R E G D
manpath 34.695 KB -rwxr-xr-x 2021-02-19 10:14 R E G D
mariadb 3.98 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-access 109.3 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-admin 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-analyze 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-binlog 4 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-check 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-conv 3.51 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-convert-table-format 4.122 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-dump 3.82 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-dumpslow 8.049 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-find-rows 3.213 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-fix-extensions 1.221 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-hotcopy 34.153 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-import 3.73 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-install-db 22.349 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-optimize 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-plugin 3.46 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-repair 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-report 49.22 KB -rwxr-xr-x 2025-05-30 04:33 R E G D
mariadb-secure-installation 13.477 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-service-convert 2.447 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-setpermission 17.556 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-show 3.73 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-slap 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-tzinfo-to-sql 3.46 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-upgrade 3.56 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadb-waitpid 3.45 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadbcheck 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadbd-multi 26.674 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadbd-safe 30.395 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mariadbd-safe-helper 3.42 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mawk 154.586 KB -rwxr-xr-x 2020-02-16 19:41 R E G D
mcookie 34.297 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
md5sum 46.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
md5sum.textutils 46.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
mesg 14.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
messages 14.516 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
messages.mailutils 14.516 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
migrate-pubring-from-classic-gpg 2.988 KB -rwxr-xr-x 2022-04-27 19:31 R E G D
mimeview 59.555 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
mkdir 83.188 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
mkfifo 67.094 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
mkisofs 622.945 KB -rwxr-xr-x 2021-02-04 21:36 R E G D
mknod 75.094 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
mktemp 46.938 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
mkzftree 26.578 KB -rwxr-xr-x 2021-02-04 21:36 R E G D
mokutil 60.188 KB -rwxr-xr-x 2022-06-12 20:41 R E G D
more 58.234 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
mount 54.227 KB -rwsr-xr-x 2024-03-28 10:09 R E G D
mount-image-callback 13.808 KB -rwxr-xr-x 2020-05-28 22:11 R E G D
mountpoint 18.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
movemail 40.102 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
movemail.mailutils 40.102 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
msql2mysql 1.412 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mt 83.32 KB -rwxr-xr-x 2023-09-30 12:18 R E G D
mt-gnu 83.32 KB -rwxr-xr-x 2023-09-30 12:18 R E G D
mv 143.633 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
my_print_defaults 3.45 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
myisam_ftdump 3.73 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
myisamchk 3.85 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
myisamlog 3.72 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
myisampack 3.76 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql 3.98 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_convert_table_format 4.122 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_find_rows 3.213 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_fix_extensions 1.221 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_install_db 22.349 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_plugin 3.46 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_secure_installation 13.477 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_setpermission 17.556 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_tzinfo_to_sql 3.46 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_upgrade 3.56 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysql_waitpid 3.45 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqlaccess 109.3 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqladmin 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqlanalyze 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqlbinlog 4 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqlcheck 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqld_multi 26.674 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqld_safe 30.395 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqld_safe_helper 3.42 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqldump 3.82 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqldumpslow 8.049 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqlhotcopy 34.153 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqlimport 3.73 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqloptimize 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqlrepair 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqlreport 49.22 KB -rwxr-xr-x 2025-05-30 04:33 R E G D
mysqlshow 3.73 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mysqlslap 3.74 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
mytop 71.954 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
namei 34.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
nano 340.641 KB -rwxr-xr-x 2024-06-17 12:31 R E G D
nawk 678.344 KB -rwxr-xr-x 2021-02-10 08:42 R E G D
neqn 0.892 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
netstat 151.648 KB -rwxr-xr-x 2025-05-30 20:08 R E G D
networkctl 94.219 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
newaliases 30.148 KB -rwxr-xr-x 2024-03-09 15:38 R E G D
newgrp 43.586 KB -rwsr-xr-x 2025-04-18 13:46 R E G D
ngettext 34.227 KB -rwxr-xr-x 2021-02-02 21:35 R E G D
nice 42.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
nisdomainname 22.07 KB -rwxr-xr-x 2019-11-07 11:31 R E G D
nl 111.031 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
nohup 42.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
nproc 42.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
nroff 3.216 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
nsenter 34.453 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
nstat 78.234 KB -rwxr-xr-x 2021-02-05 23:34 R E G D
numfmt 66.969 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
od 70.938 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
open 18.053 KB -rwxr-xr-x 2021-02-25 18:24 R E G D
openssl 719.523 KB -rwxr-xr-x 2025-10-03 09:54 R E G D
pager 179.695 KB -rwxr-xr-x 2024-05-02 18:29 R E G D
partx 118.234 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
passwd 62.461 KB -rwsr-xr-x 2025-04-18 13:46 R E G D
paste 42.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
pathchk 38.781 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
pdb3 61.262 KB -rwxr-xr-x 2025-03-20 02:07 R E G D
pdb3.9 61.262 KB -rwxr-xr-x 2025-03-20 02:07 R E G D
peekfd 14.445 KB -rwxr-xr-x 2021-02-08 10:19 R E G D
perf 0.516 KB -rwxr-xr-x 2018-07-20 01:35 R E G D
perl 3.51 MB -rwxr-xr-x 2024-10-20 21:53 R E G D
perl5.32-x86_64-linux-gnu 14.344 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
perl5.32.1 3.51 MB -rwxr-xr-x 2024-10-20 21:53 R E G D
perlbug 44.201 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
perldoc 0.122 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
perlivp 10.609 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
perlthanks 44.201 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
perror 3.64 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
pgrep 30.234 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
phar 14.536 KB -rwxr-xr-x 2025-07-27 11:10 R E G D
phar.default 14.536 KB -rwxr-xr-x 2025-07-27 11:10 R E G D
phar.phar 14.536 KB -rwxr-xr-x 2025-07-27 11:10 R E G D
phar.phar.default 14.536 KB -rwxr-xr-x 2025-07-27 11:10 R E G D
phar.phar7.4 14.536 KB -rwxr-xr-x 2025-07-27 11:10 R E G D
phar7.4 14.536 KB -rwxr-xr-x 2025-07-27 11:10 R E G D
phar7.4.phar 14.536 KB -rwxr-xr-x 2025-07-27 11:10 R E G D
php 4.55 MB -rwxr-xr-x 2025-07-27 11:10 R E G D
php.default 4.55 MB -rwxr-xr-x 2025-07-27 11:10 R E G D
php7.4 4.55 MB -rwxr-xr-x 2025-07-27 11:10 R E G D
pic 220.188 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
pico 340.641 KB -rwxr-xr-x 2024-06-17 12:31 R E G D
piconv 8.161 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
pidof 26.227 KB -rwxr-xr-x 2021-12-16 18:12 R E G D
pidwait 30.234 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
pinentry 62.492 KB -rwxr-xr-x 2020-05-08 17:10 R E G D
pinentry-curses 62.492 KB -rwxr-xr-x 2020-05-08 17:10 R E G D
ping 75.617 KB -rwxr-xr-x 2021-02-02 17:49 R E G D
ping4 75.617 KB -rwxr-xr-x 2021-02-02 17:49 R E G D
ping6 75.617 KB -rwxr-xr-x 2021-02-02 17:49 R E G D
pinky 42.969 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
pkill 30.234 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
pl2pm 4.427 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
pldd 22.57 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
pmap 34.234 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
pod2html 4.037 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
pod2man 14.682 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
pod2text 10.55 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
pod2usage 3.855 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
podchecker 3.572 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
pr 75.094 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
preconv 62.352 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
print 18.053 KB -rwxr-xr-x 2021-02-25 18:24 R E G D
printenv 38.75 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
printf 58.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
prlimit 38.742 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
procan 79.859 KB -rwxr-xr-x 2021-02-03 12:58 R E G D
prove 13.335 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
prtstat 18.508 KB -rwxr-xr-x 2021-02-08 10:19 R E G D
ps 134.453 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
pslog 14.383 KB -rwxr-xr-x 2021-02-08 10:19 R E G D
pstree 35.727 KB -rwxr-xr-x 2021-02-08 10:19 R E G D
pstree.x11 35.727 KB -rwxr-xr-x 2021-02-08 10:19 R E G D
ptar 3.466 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
ptardiff 2.566 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
ptargrep 4.289 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
ptx 135.094 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
pwd 42.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
pwdx 14.219 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
py3clean 7.623 KB -rwxr-xr-x 2021-04-05 12:00 R E G D
py3compile 12.875 KB -rwxr-xr-x 2021-04-05 12:00 R E G D
py3versions 11.442 KB -rwxr-xr-x 2021-04-05 12:00 R E G D
pydoc3 0.076 KB -rwxr-xr-x 2025-03-20 02:07 R E G D
pydoc3.9 0.076 KB -rwxr-xr-x 2025-03-20 02:07 R E G D
pygettext3 21.032 KB -rwxr-xr-x 2021-02-19 12:31 R E G D
pygettext3.9 21.032 KB -rwxr-xr-x 2021-02-19 12:31 R E G D
pyjwt3 0.363 KB -rwxr-xr-x 2019-10-27 00:17 R E G D
python3 5.23 MB -rwxr-xr-x 2025-03-20 02:07 R E G D
python3.9 5.23 MB -rwxr-xr-x 2025-03-20 02:07 R E G D
qemu-img 1.93 MB -rwxr-xr-x 2025-09-08 21:30 R E G D
qemu-io 1.87 MB -rwxr-xr-x 2025-09-08 21:30 R E G D
qemu-nbd 2.02 MB -rwxr-xr-x 2025-09-08 21:30 R E G D
querybts 10.815 KB -rwxr-xr-x 2024-06-19 11:11 R E G D
rbash 1.18 MB -rwxr-xr-x 2022-03-27 18:40 R E G D
rcp 114.141 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
rdma 130.234 KB -rwxr-xr-x 2021-02-05 23:34 R E G D
readlink 50.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
readmsg 35.758 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
readmsg.mailutils 35.758 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
realpath 54.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
renice 14.219 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
replace 3.44 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
reportbug 110.004 KB -rwxr-xr-x 2024-06-19 11:11 R E G D
reset 30.156 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
resize-part-image 4.244 KB -rwxr-xr-x 2020-05-28 22:11 R E G D
resizepart 62.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
resolve_stack_dump 3.45 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
resolvectl 126.367 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
resolveip 3.45 MB -rwxr-xr-x 2025-05-30 06:25 R E G D
rev 14.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
rgrep 0.029 KB -rwxr-xr-x 2020-01-29 12:09 R E G D
rlogin 778.789 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
rm 71 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
rmail 13.992 KB -rwxr-xr-x 2024-03-09 15:38 R E G D
rmdir 50.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
rnano 340.641 KB -rwxr-xr-x 2024-06-17 12:31 R E G D
rotatelogs 26.227 KB -rwxr-xr-x 2025-07-29 20:18 R E G D
routef 0.203 KB -rwxr-xr-x 2021-02-05 23:34 R E G D
routel 1.617 KB -rwxr-xr-x 2021-02-05 23:34 R E G D
rrsync 7.352 KB -rwxr-xr-x 2025-01-17 21:03 R E G D
rsh 778.789 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
rsync 481.57 KB -rwxr-xr-x 2025-01-17 21:03 R E G D
rsync-ssl 4.826 KB -rwxr-xr-x 2025-01-17 21:03 R E G D
rtstat 22.508 KB -rwxr-xr-x 2021-02-05 23:34 R E G D
run-mailcap 18.053 KB -rwxr-xr-x 2021-02-25 18:24 R E G D
run-parts 26.828 KB -rwxr-xr-x 2020-09-27 17:25 R E G D
runcon 42.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
rview 3.03 MB -rwxr-xr-x 2025-03-30 03:33 R E G D
rvim 3.03 MB -rwxr-xr-x 2025-03-30 03:33 R E G D
savelog 10.235 KB -rwxr-xr-x 2020-09-27 17:25 R E G D
scp 114.141 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
screen 471.008 KB -rwxr-xr-x 2021-02-27 00:52 R E G D
script 66.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
scriptlive 54.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
scriptreplay 42.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
sdiff 46.906 KB -rwxr-xr-x 2021-01-01 17:52 R E G D
sed 119.359 KB -rwxr-xr-x 2018-12-22 14:24 R E G D
see 18.053 KB -rwxr-xr-x 2021-02-25 18:24 R E G D
select-editor 2.389 KB -rwxr-xr-x 2021-01-12 22:01 R E G D
sensible-browser 1.201 KB -rwxr-xr-x 2021-01-12 22:01 R E G D
sensible-editor 1.15 KB -rwxr-xr-x 2021-01-12 22:01 R E G D
sensible-pager 0.441 KB -rwxr-xr-x 2021-01-12 22:01 R E G D
seq 54.875 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
setarch 26.5 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
setpci 30.227 KB -rwxr-xr-x 2020-12-24 17:49 R E G D
setpriv 50.234 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
setsid 14.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
setterm 46.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
sftp 170.352 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
sg 43.586 KB -rwsr-xr-x 2025-04-18 13:46 R E G D
sh 122.617 KB -rwxr-xr-x 2020-12-10 13:23 R E G D
sha1sum 50.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
sha224sum 62.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
sha256sum 62.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
sha384sum 66.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
sha512sum 66.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
shasum 9.742 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
shred 63.094 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
shuf 58.969 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
sieve 31.891 KB -rwxr-xr-x 2020-11-19 05:02 R E G D
skill 30.227 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
slabtop 22.227 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
sleep 42.781 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
slogin 778.789 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
snice 30.227 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
socat 397.93 KB -rwxr-xr-x 2021-02-03 12:58 R E G D
soelim 46.352 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
sort 115.633 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
splain 18.956 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
split 59.469 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
ss 177.063 KB -rwxr-xr-x 2021-02-05 23:34 R E G D
ssh 778.789 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
ssh-add 366.125 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
ssh-agent 346.133 KB -rwxr-sr-x 2025-05-08 11:03 R E G D
ssh-argv0 1.421 KB -rwxr-xr-x 2025-04-29 13:14 R E G D
ssh-copy-id 10.693 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
ssh-keygen 474.195 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
ssh-keyscan 458.227 KB -rwxr-xr-x 2025-05-08 11:03 R E G D
stat 83.188 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
stdbuf 50.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
streamzip 5.392 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
stty 82.938 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
su 70.227 KB -rwsr-xr-x 2024-03-28 10:09 R E G D
sudo 178.32 KB -rwsr-xr-x 2025-06-26 17:03 R E G D
sudoedit 178.32 KB -rwsr-xr-x 2025-06-26 17:03 R E G D
sudoreplay 115.391 KB -rwxr-xr-x 2025-06-26 17:03 R E G D
sum 46.883 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
sync 38.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
systemctl 1.02 MB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd 1.66 MB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-analyze 1.62 MB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-ask-password 14.328 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-cat 14.219 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-cgls 18.32 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-cgtop 34.234 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-delta 26.219 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-detect-virt 14.211 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-escape 18.211 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-hwdb 110.516 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-id128 22.211 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-inhibit 22.234 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-machine-id-setup 22.313 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-mount 50.438 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-notify 18.219 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-path 18.211 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-resolve 126.367 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-run 54.414 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-socket-activate 26.219 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-stdio-bridge 18.219 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-sysusers 54.523 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-tmpfiles 86.414 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-tty-ask-password-agent 30.219 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
systemd-umount 50.438 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
tabs 18.148 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
tac 106.969 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
tail 75.063 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
tar 519.461 KB -rwxr-xr-x 2024-01-20 09:59 R E G D
taskset 34.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
tbl 142.352 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
tcpdump 1.2 MB -rwxr-xr-x 2022-05-22 16:22 R E G D
tee 42.875 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
tempfile 14.117 KB -rwxr-xr-x 2020-09-27 17:25 R E G D
test 54.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
tic 90.266 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
timedatectl 42.211 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
timeout 43.406 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
tload 14.234 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
toe 22.148 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
top 122.07 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
touch 99.031 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
tput 26.18 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
tr 54.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
traceproto 2.817 KB -rwxr-xr-x 2022-12-29 07:27 R E G D
traceproto.db 2.817 KB -rwxr-xr-x 2022-12-29 07:27 R E G D
traceroute 71.156 KB -rwxr-xr-x 2022-12-29 07:27 R E G D
traceroute-nanog 1.58 KB -rwxr-xr-x 2022-12-29 07:27 R E G D
traceroute.db 71.156 KB -rwxr-xr-x 2022-12-29 07:27 R E G D
traceroute6 71.156 KB -rwxr-xr-x 2022-12-29 07:27 R E G D
traceroute6.db 71.156 KB -rwxr-xr-x 2022-12-29 07:27 R E G D
tree 79.602 KB -rwxr-xr-x 2019-08-06 19:31 R E G D
troff 751.75 KB -rwxr-xr-x 2021-01-27 09:42 R E G D
true 38.75 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
truncate 42.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
tset 30.156 KB -rwxr-xr-x 2023-05-26 18:31 R E G D
tsort 54.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
tty 38.781 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
tzselect 14.993 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
ubuntu-cloudimg-query 8.383 KB -rwxr-xr-x 2020-05-28 22:11 R E G D
ucf 40.908 KB -rwxr-xr-x 2025-01-16 16:53 R E G D
ucfq 18.913 KB -rwxr-xr-x 2025-01-16 16:53 R E G D
ucfr 10.468 KB -rwxr-xr-x 2025-01-16 16:53 R E G D
udevadm 1021.094 KB -rwxr-xr-x 2025-06-26 00:44 R E G D
ul 22.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
umount 34.219 KB -rwsr-xr-x 2024-03-28 10:09 R E G D
uname 38.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
unattended-upgrade 97.214 KB -rwxr-xr-x 2021-02-19 12:11 R E G D
unattended-upgrades 97.214 KB -rwxr-xr-x 2021-02-19 12:11 R E G D
uncompress 2.291 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
unexpand 42.844 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
uniq 50.906 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
unlink 38.75 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
unlzma 79.289 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
unmkinitramfs 3.59 KB -rwxr-xr-x 2021-01-14 18:04 R E G D
unshare 46.461 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
unxz 79.289 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
update-alternatives 58.086 KB -rwxr-xr-x 2023-09-13 21:38 R E G D
update-mime-database 59.188 KB -rwxr-xr-x 2020-10-09 17:26 R E G D
uptime 14.219 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
users 38.813 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
utmpdump 30.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
uuidgen 14.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
uuidparse 38.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
vcs-run 6.75 KB -rwxr-xr-x 2020-05-28 22:11 R E G D
vdir 143.727 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
vi 3.03 MB -rwxr-xr-x 2025-03-30 03:33 R E G D
view 3.03 MB -rwxr-xr-x 2025-03-30 03:33 R E G D
vim 3.03 MB -rwxr-xr-x 2025-03-30 03:33 R E G D
vim.basic 3.03 MB -rwxr-xr-x 2025-03-30 03:33 R E G D
vim.tiny 1.34 MB -rwxr-xr-x 2025-03-30 03:33 R E G D
vimdiff 3.03 MB -rwxr-xr-x 2025-03-30 03:33 R E G D
vimtutor 2.071 KB -rwxr-xr-x 2025-03-30 03:33 R E G D
vmstat 38.242 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
w 22.219 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
wall 34.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
watch 26.602 KB -rwxr-xr-x 2021-04-06 07:17 R E G D
watchgnupg 18.148 KB -rwxr-xr-x 2022-07-01 07:03 R E G D
wc 46.945 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
wdctl 62.25 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
wget 527.281 KB -rwxr-xr-x 2025-04-20 10:39 R E G D
whatis 51.203 KB -rwxr-xr-x 2021-02-19 10:14 R E G D
whereis 30.664 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
which 0.924 KB -rwxr-xr-x 2020-09-27 17:25 R E G D
whiptail 26.703 KB -rwxr-xr-x 2020-12-08 01:18 R E G D
who 58.969 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
whoami 38.781 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
write 22.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
write-mime-multipart 3.514 KB -rwxr-xr-x 2020-05-28 22:11 R E G D
write.ul 22.227 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
wsrep_sst_backup 2.394 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
wsrep_sst_common 66.822 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
wsrep_sst_mariabackup 49.47 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
wsrep_sst_mysqldump 8.088 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
wsrep_sst_rsync 29.723 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
wsrep_sst_rsync_wan 29.723 KB -rwxr-xr-x 2025-05-30 06:25 R E G D
x86_64 26.5 KB -rwxr-xr-x 2024-03-28 10:09 R E G D
xargs 74.367 KB -rwxr-xr-x 2021-01-09 17:36 R E G D
xsubpp 5.043 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
xxd 18.117 KB -rwxr-xr-x 2025-03-30 03:33 R E G D
xz 79.289 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
xzcat 79.289 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
xzcmp 6.858 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
xzdiff 6.858 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
xzegrep 5.874 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
xzfgrep 5.874 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
xzgrep 5.874 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
xzless 1.757 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
xzmore 2.111 KB -rwxr-xr-x 2022-04-11 14:36 R E G D
yes 38.75 KB -rwxr-xr-x 2020-09-24 08:36 R E G D
ypdomainname 22.07 KB -rwxr-xr-x 2019-11-07 11:31 R E G D
zcat 1.938 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
zcmp 1.639 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
zdiff 5.76 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
zdump 22.398 KB -rwxr-xr-x 2025-05-27 10:40 R E G D
zegrep 0.028 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
zfgrep 0.028 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
zforce 2.032 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
zgrep 7.86 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
zipdetails 50.038 KB -rwxr-xr-x 2024-10-20 21:53 R E G D
zless 2.154 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
zmore 1.799 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
znew 4.47 KB -rwxr-xr-x 2022-04-10 05:50 R E G D
REQUEST EXIT
©TheAlmightyZeus
#!/usr/bin/perl # Copyright (c) 2000, 2017, Oracle and/or its affiliates. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; version 2 # of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, # MA 02110-1335 USA use strict; use Getopt::Long; use Data::Dumper; use File::Basename; use File::Path; use DBI; use Sys::Hostname; use File::Copy; use File::Temp qw(tempfile); =head1 NAME mysqlhotcopy - fast on-line hot-backup utility for local MySQL databases and tables =head1 SYNOPSIS mysqlhotcopy db_name mysqlhotcopy --suffix=_copy db_name_1 ... db_name_n mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory mysqlhotcopy db_name./regex/ mysqlhotcopy db_name./^\(foo\|bar\)/ mysqlhotcopy db_name./~regex/ mysqlhotcopy db_name_1./regex_1/ db_name_1./regex_2/ ... db_name_n./regex_n/ /path/to/new_directory mysqlhotcopy --method='scp -Bq -i /usr/home/foo/.ssh/identity' --user=root --password=secretpassword \ db_1./^nice_table/ user@some.system.dom:~/path/to/new_directory WARNING: THIS PROGRAM IS STILL IN BETA. Comments/patches welcome. =cut # Documentation continued at end of file # fix CORE::GLOBAL::die to return a predictable exit code BEGIN { *CORE::GLOBAL::die= sub { warn @_; exit 1; }; } my $VERSION = "1.23"; my $opt_tmpdir = $ENV{TMPDIR} || "/tmp"; my $OPTIONS = <<"_OPTIONS"; $0 Ver $VERSION Usage: $0 db_name[./table_regex/] [new_db_name | directory] -?, --help display this help-screen and exit -u, --user=# user for database login if not current user -p, --password=# password to use when connecting to server (if not set in my.cnf, which is recommended) -h, --host=# hostname for local server when connecting over TCP/IP -P, --port=# port to use when connecting to local server with TCP/IP -S, --socket=# socket to use when connecting to local server --old_server connect to old MySQL-server (before v5.5) which doesn't have FLUSH TABLES WITH READ LOCK fully implemented. --allowold don\'t abort if target dir already exists (rename it _old) --addtodest don\'t rename target dir if it exists, just add files to it --keepold don\'t delete previous (now renamed) target when done --noindices don\'t include full index files in copy --method=# method for copy (only "cp" currently supported) -q, --quiet be silent except for errors --debug enable debug -n, --dryrun report actions without doing them --regexp=# copy all databases with names matching regexp --suffix=# suffix for names of copied databases --checkpoint=# insert checkpoint entry into specified db.table --flushlog flush logs once all tables are locked --resetmaster reset the binlog once all tables are locked --resetslave reset the master.info once all tables are locked --tmpdir=# temporary directory (instead of $opt_tmpdir) --record_log_pos=# record slave and master status in specified db.table --chroot=# base directory of chroot jail in which mysqld operates Try \'perldoc $0\' for more complete documentation _OPTIONS sub usage { die @_, $OPTIONS; } # Do not initialize user or password options; that way, any user/password # options specified in option files will be used. If no values are specified # at all, the defaults will be used (login name, no password). my %opt = ( noindices => 0, allowold => 0, # for safety keepold => 0, method => "cp", flushlog => 0, ); Getopt::Long::Configure(qw(no_ignore_case)); # disambiguate -p and -P GetOptions( \%opt, "help", "host|h=s", "user|u=s", "password|p=s", "port|P=s", "socket|S=s", "old_server", "allowold!", "keepold!", "addtodest!", "noindices!", "method=s", "debug", "quiet|q", "mv!", "regexp=s", "suffix=s", "checkpoint=s", "record_log_pos=s", "flushlog", "resetmaster", "resetslave", "tmpdir|t=s", "dryrun|n", "chroot=s", ) or usage("Invalid option"); # @db_desc # ========== # a list of hash-refs containing: # # 'src' - name of the db to copy # 't_regex' - regex describing tables in src # 'target' - destination directory of the copy # 'tables' - array-ref to list of tables in the db # 'files' - array-ref to list of files to be copied # 'index' - array-ref to list of indexes to be copied # my @db_desc = (); my $tgt_name = undef; usage("") if ($opt{help}); if ( $opt{regexp} || $opt{suffix} || @ARGV > 2 ) { $tgt_name = pop @ARGV unless ( exists $opt{suffix} ); @db_desc = map { s{^([^\.]+)\./(.+)/$}{$1}; { 'src' => $_, 't_regex' => ( $2 ? $2 : '.*' ) } } @ARGV; } else { usage("Database name to hotcopy not specified") unless ( @ARGV ); $ARGV[0] =~ s{^([^\.]+)\./(.+)/$}{$1}; @db_desc = ( { 'src' => $ARGV[0], 't_regex' => ( $2 ? $2 : '.*' ) } ); if ( @ARGV == 2 ) { $tgt_name = $ARGV[1]; } else { $opt{suffix} = "_copy"; } } my %mysqld_vars; my $start_time = time; $opt_tmpdir= $opt{tmpdir} if $opt{tmpdir}; $0 = $1 if $0 =~ m:/([^/]+)$:; $opt{quiet} = 0 if $opt{debug}; $opt{allowold} = 1 if $opt{keepold}; # --- connect to the database --- my $dsn; $dsn = ";host=" . (defined($opt{host}) ? $opt{host} : "localhost"); $dsn .= ";port=$opt{port}" if $opt{port}; $dsn .= ";mariadb_socket=$opt{socket}" if $opt{socket}; # use mariadb_read_default_group=mysqlhotcopy so that [client] and # [mysqlhotcopy] groups will be read from standard options files. my $dbh = DBI->connect("DBI:MariaDB:$dsn;mariadb_read_default_group=mysqlhotcopy", $opt{user}, $opt{password}, { RaiseError => 1, PrintError => 0, AutoCommit => 1, }); # --- check that checkpoint table exists if specified --- if ( $opt{checkpoint} ) { $opt{checkpoint} = quote_names( $opt{checkpoint} ); eval { $dbh->do( qq{ select time_stamp, src, dest, msg from $opt{checkpoint} where 1 != 1} ); }; die "Error accessing Checkpoint table ($opt{checkpoint}): $@" if ( $@ ); } # --- check that log_pos table exists if specified --- if ( $opt{record_log_pos} ) { $opt{record_log_pos} = quote_names( $opt{record_log_pos} ); eval { $dbh->do( qq{ select host, time_stamp, log_file, log_pos, master_host, master_log_file, master_log_pos from $opt{record_log_pos} where 1 != 1} ); }; die "Error accessing log_pos table ($opt{record_log_pos}): $@" if ( $@ ); } # --- get variables from database --- my $sth_vars = $dbh->prepare("show variables like 'datadir'"); $sth_vars->execute; while ( my ($var,$value) = $sth_vars->fetchrow_array ) { $mysqld_vars{ $var } = $value; } my $datadir = $mysqld_vars{'datadir'} || die "datadir not in mysqld variables"; $datadir= $opt{chroot}.$datadir if ($opt{chroot}); $datadir =~ s:/$::; # --- get target path --- my ($tgt_dirname, $to_other_database); $to_other_database=0; if (defined($tgt_name) && $tgt_name =~ m:^\w+$: && @db_desc <= 1) { $tgt_dirname = "$datadir/$tgt_name"; $to_other_database=1; } elsif (defined($tgt_name) && ($tgt_name =~ m:/: || $tgt_name eq '.')) { $tgt_dirname = $tgt_name; } elsif ( $opt{suffix} ) { print "Using copy suffix '$opt{suffix}'\n" unless $opt{quiet}; } else { $tgt_name="" if (!defined($tgt_name)); die "Target '$tgt_name' doesn't look like a database name or directory path.\n"; } # --- resolve database names from regexp --- if ( defined $opt{regexp} ) { my $t_regex = '.*'; if ( $opt{regexp} =~ s{^/(.+)/\./(.+)/$}{$1} ) { $t_regex = $2; } my $sth_dbs = $dbh->prepare("show databases"); $sth_dbs->execute; while ( my ($db_name) = $sth_dbs->fetchrow_array ) { next if $db_name =~ m/^information_schema$/i; push @db_desc, { 'src' => $db_name, 't_regex' => $t_regex } if ( $db_name =~ m/$opt{regexp}/o ); } } # --- get list of tables and views to hotcopy --- my $hc_locks = ""; my $hc_tables = ""; my $hc_base_tables = ""; my $hc_views = ""; my $num_base_tables = 0; my $num_views = 0; my $num_tables = 0; my $num_files = 0; foreach my $rdb ( @db_desc ) { my $db = $rdb->{src}; my @dbh_base_tables = get_list_of_tables( $db ); my @dbh_views = get_list_of_views( $db ); ## filter out certain system non-lockable tables. ## keep in sync with mysqldump. if ($db =~ m/^mysql$/i) { @dbh_base_tables = grep { !/^(apply_status|schema|general_log|slow_log|transaction_registry)$/ } @dbh_base_tables } ## generate regex for tables/files my $t_regex; my $negated; if ($rdb->{t_regex}) { $t_regex = $rdb->{t_regex}; ## assign temporary regex $negated = $t_regex =~ s/^~//; ## note and remove negation operator $t_regex = qr/$t_regex/; ## make regex string from ## user regex ## filter (out) tables specified in t_regex print "Filtering tables with '$t_regex'\n" if $opt{debug}; @dbh_base_tables = ( $negated ? grep { $_ !~ $t_regex } @dbh_base_tables : grep { $_ =~ $t_regex } @dbh_base_tables ); ## filter (out) views specified in t_regex print "Filtering tables with '$t_regex'\n" if $opt{debug}; @dbh_views = ( $negated ? grep { $_ !~ $t_regex } @dbh_views : grep { $_ =~ $t_regex } @dbh_views ); } ## Now concatenate the base table and view arrays. my @dbh_tables = (@dbh_base_tables, @dbh_views); ## get list of files to copy my $db_dir = "$datadir/$db"; opendir(DBDIR, $db_dir ) or die "Cannot open dir '$db_dir': $!"; my %db_files; while ( defined( my $name = readdir DBDIR ) ) { $db_files{$name} = $1 if ( $name =~ /(.+)\.\w+$/ ); } closedir( DBDIR ); unless( keys %db_files ) { warn "'$db' is an empty database\n"; } ## filter (out) files specified in t_regex my @db_files; if ($rdb->{t_regex}) { @db_files = ($negated ? grep { $db_files{$_} !~ $t_regex } keys %db_files : grep { $db_files{$_} =~ $t_regex } keys %db_files ); } else { @db_files = keys %db_files; } @db_files = sort @db_files; my @index_files=(); ## remove indices unless we're told to keep them if ($opt{noindices}) { @index_files= grep { /\.(ISM|MYI)$/ } @db_files; @db_files = grep { not /\.(ISM|MYI)$/ } @db_files; } $rdb->{files} = [ @db_files ]; $rdb->{index} = [ @index_files ]; my @hc_base_tables = map { quote_names("$db.$_") } @dbh_base_tables; my @hc_views = map { quote_names("$db.$_") } @dbh_views; my @hc_tables = (@hc_base_tables, @hc_views); $rdb->{tables} = [ @hc_tables ]; $hc_locks .= ", " if ( length $hc_locks && @hc_tables ); $hc_locks .= join ", ", map { "$_ READ" } @hc_tables; $hc_base_tables .= ", " if ( length $hc_base_tables && @hc_base_tables ); $hc_base_tables .= join ", ", @hc_base_tables; $hc_views .= ", " if ( length $hc_views && @hc_views ); $hc_views .= join " READ, ", @hc_views; @hc_tables = (@hc_base_tables, @hc_views); $num_base_tables += scalar @hc_base_tables; $num_views += scalar @hc_views; $num_tables += $num_base_tables + $num_views; $num_files += scalar @{$rdb->{files}}; } # --- resolve targets for copies --- if (defined($tgt_name) && length $tgt_name ) { # explicit destination directory specified # GNU `cp -r` error message die "copying multiple databases, but last argument ($tgt_dirname) is not a directory\n" if ( @db_desc > 1 && !(-e $tgt_dirname && -d $tgt_dirname ) ); if ($to_other_database) { foreach my $rdb ( @db_desc ) { $rdb->{target} = "$tgt_dirname"; } } elsif ($opt{method} =~ /^scp\b/) { # we have to trust scp to hit the target foreach my $rdb ( @db_desc ) { $rdb->{target} = "$tgt_dirname/$rdb->{src}"; } } else { die "Last argument ($tgt_dirname) is not a directory\n" if (!(-e $tgt_dirname && -d $tgt_dirname ) ); foreach my $rdb ( @db_desc ) { $rdb->{target} = "$tgt_dirname/$rdb->{src}"; } } } else { die "Error: expected \$opt{suffix} to exist" unless ( exists $opt{suffix} ); foreach my $rdb ( @db_desc ) { $rdb->{target} = "$datadir/$rdb->{src}$opt{suffix}"; } } print Dumper( \@db_desc ) if ( $opt{debug} ); # --- bail out if all specified databases are empty --- die "No tables to hot-copy" unless ( length $hc_locks ); # --- create target directories if we are using 'cp' --- my @existing = (); if ($opt{method} =~ /^cp\b/) { foreach my $rdb ( @db_desc ) { push @existing, $rdb->{target} if ( -d $rdb->{target} ); } if ( @existing && !($opt{allowold} || $opt{addtodest}) ) { $dbh->disconnect(); die "Can't hotcopy to '", join( "','", @existing ), "' because directory\nalready exist and the --allowold or --addtodest options were not given.\n" } } retire_directory( @existing ) if @existing && !$opt{addtodest}; foreach my $rdb ( @db_desc ) { my $tgt_dirpath = "$rdb->{target}"; # Remove trailing slashes (needed for Mac OS X) substr($tgt_dirpath, 1) =~ s|/+$||; if ( $opt{dryrun} ) { print "mkdir $tgt_dirpath, 0750\n"; } elsif ($opt{method} =~ /^scp\b/) { ## assume it's there? ## ... } else { mkdir($tgt_dirpath, 0750) or die "Can't create '$tgt_dirpath': $!\n" unless -d $tgt_dirpath; my @f_info= stat "$datadir/$rdb->{src}"; chown $f_info[4], $f_info[5], $tgt_dirpath; } } ############################## # --- PERFORM THE HOT-COPY --- # # Note that we try to keep the time between the LOCK and the UNLOCK # as short as possible, and only start when we know that we should # be able to complete without error. # read lock all the tables we'll be copying # in order to get a consistent snapshot of the database if ( $opt{checkpoint} || $opt{record_log_pos} ) { # convert existing READ lock on checkpoint and/or log_pos table into WRITE lock foreach my $table ( grep { defined } ( $opt{checkpoint}, $opt{record_log_pos} ) ) { $hc_locks .= ", $table WRITE" unless ( $hc_locks =~ s/$table\s+READ/$table WRITE/ ); } } my $hc_started = time; # count from time lock is granted if ( $opt{dryrun} ) { if ( $opt{old_server} ) { print "LOCK TABLES $hc_locks\n"; print "FLUSH TABLES /*!32323 $hc_tables */\n"; } else { # Lock base tables and views separately. print "FLUSH TABLES $hc_base_tables WITH READ LOCK\n" if ( $hc_base_tables ); print "LOCK TABLES $hc_views READ\n" if ( $hc_views ); } print "FLUSH LOGS\n" if ( $opt{flushlog} ); print "RESET MASTER\n" if ( $opt{resetmaster} ); print "RESET SLAVE\n" if ( $opt{resetslave} ); } else { my $start = time; if ( $opt{old_server} ) { $dbh->do("LOCK TABLES $hc_locks"); printf "Locked $num_tables tables in %d seconds.\n", time-$start unless $opt{quiet}; $hc_started = time; # count from time lock is granted # flush tables to make on-disk copy up to date $start = time; $dbh->do("FLUSH TABLES /*!32323 $hc_tables */"); printf "Flushed tables ($hc_tables) in %d seconds.\n", time-$start unless $opt{quiet}; } else { # Lock base tables and views separately, as 'FLUSH TABLES # ... WITH READ LOCK' (introduced in 5.5) would fail for views. # Also, flush tables to make on-disk copy up to date $dbh->do("FLUSH TABLES $hc_base_tables WITH READ LOCK") if ( $hc_base_tables ); printf "Flushed $num_base_tables tables with read lock ($hc_base_tables) in %d seconds.\n", time-$start unless $opt{quiet}; $start = time; $dbh->do("LOCK TABLES $hc_views READ") if ( $hc_views ); printf "Locked $num_views views ($hc_views) in %d seconds.\n", time-$start unless $opt{quiet}; $hc_started = time; # count from time lock is granted } $dbh->do( "FLUSH LOGS" ) if ( $opt{flushlog} ); $dbh->do( "RESET MASTER" ) if ( $opt{resetmaster} ); $dbh->do( "RESET SLAVE" ) if ( $opt{resetslave} ); if ( $opt{record_log_pos} ) { record_log_pos( $dbh, $opt{record_log_pos} ); $dbh->do("FLUSH TABLES /*!32323 $hc_tables */"); } } my @failed = (); foreach my $rdb ( @db_desc ) { my @files = map { "$datadir/$rdb->{src}/$_" } @{$rdb->{files}}; next unless @files; eval { copy_files($opt{method}, \@files, $rdb->{target}); }; push @failed, "$rdb->{src} -> $rdb->{target} failed: $@" if ( $@ ); @files = @{$rdb->{index}}; if ($rdb->{index}) { copy_index($opt{method}, \@files, "$datadir/$rdb->{src}", $rdb->{target} ); } if ( $opt{checkpoint} ) { my $msg = ( $@ ) ? "Failed: $@" : "Succeeded"; eval { $dbh->do( qq{ insert into $opt{checkpoint} (src, dest, msg) VALUES ( '$rdb->{src}', '$rdb->{target}', '$msg' ) } ); }; if ( $@ ) { warn "Failed to update checkpoint table: $@\n"; } } } if ( $opt{dryrun} ) { print "UNLOCK TABLES\n"; if ( @existing && !$opt{keepold} ) { my @oldies = map { $_ . '_old' } @existing; print "rm -rf @oldies\n" } $dbh->disconnect(); exit(0); } else { $dbh->do("UNLOCK TABLES"); } my $hc_dur = time - $hc_started; printf "Unlocked tables.\n" unless $opt{quiet}; # # --- HOT-COPY COMPLETE --- ########################### $dbh->disconnect; if ( @failed ) { # hotcopy failed - cleanup # delete any @targets # rename _old copy back to original my @targets = (); foreach my $rdb ( @db_desc ) { push @targets, $rdb->{target} if ( -d $rdb->{target} ); } print "Deleting @targets \n" if $opt{debug}; print "Deleting @targets \n" if $opt{debug}; rmtree([@targets]); if (@existing) { print "Restoring @existing from back-up\n" if $opt{debug}; foreach my $dir ( @existing ) { rename("${dir}_old", $dir ) or warn "Can't rename ${dir}_old to $dir: $!\n"; } } die join( "\n", @failed ); } else { # hotcopy worked # delete _old unless $opt{keepold} if ( @existing && !$opt{keepold} ) { my @oldies = map { $_ . '_old' } @existing; print "Deleting previous copy in @oldies\n" if $opt{debug}; rmtree([@oldies]); } printf "$0 copied %d tables (%d files) in %d second%s (%d seconds overall).\n", $num_tables, $num_files, $hc_dur, ($hc_dur==1)?"":"s", time - $start_time unless $opt{quiet}; } exit 0; # --- sub copy_files { my ($method, $files, $target) = @_; my @cmd; print "Copying ".@$files." files...\n" unless $opt{quiet}; if ($method =~ /^s?cp\b/) # cp or scp with optional flags { my $cp = $method; # add option to preserve mod time etc of copied files # not critical, but nice to have $cp.= " -p" if $^O =~ m/^(solaris|linux|freebsd|darwin)$/; # add recursive option for scp $cp.= " -r" if $^O =~ /m^(solaris|linux|freebsd|darwin)$/ && $method =~ /^scp\b/; # perform the actual copy safe_system( $cp, (map { "'$_'" } @$files), "'$target'" ); } else { die "Can't use unsupported method '$method'\n"; } } # # Copy only the header of the index file # sub copy_index { my ($method, $files, $source, $target) = @_; print "Copying indices for ".@$files." files...\n" unless $opt{quiet}; foreach my $file (@$files) { my $from="$source/$file"; my $to="$target/$file"; my $buff; open(INPUT, "<$from") || die "Can't open file $from: $!\n"; binmode(INPUT, ":raw"); my $length=read INPUT, $buff, 2048; die "Can't read index header from $from\n" if ($length < 1024); close INPUT; if ( $opt{dryrun} ) { print "$opt{method}-header $from $to\n"; } elsif ($opt{method} eq 'cp') { open(OUTPUT,">$to") || die "Can\'t create file $to: $!\n"; if (syswrite(OUTPUT,$buff) != length($buff)) { die "Error when writing data to $to: $!\n"; } close OUTPUT || die "Error on close of $to: $!\n"; } elsif ($opt{method} =~ /^scp\b/) { my ($fh, $tmp)= tempfile('mysqlhotcopy-XXXXXX', DIR => $opt_tmpdir) or die "Can\'t create/open file in $opt_tmpdir\n"; if (syswrite($fh,$buff) != length($buff)) { die "Error when writing data to $tmp: $!\n"; } close $fh || die "Error on close of $tmp: $!\n"; safe_system("$opt{method} $tmp $to"); unlink $tmp; } else { die "Can't use unsupported method '$opt{method}'\n"; } } } sub safe_system { my @sources= @_; my $method= shift @sources; my $target= pop @sources; ## @sources = list of source file names ## We have to deal with very long command lines, otherwise they may generate ## "Argument list too long". ## With 10000 tables the command line can be around 1MB, much more than 128kB ## which is the common limit on Linux (can be read from ## /usr/src/linux/include/linux/binfmts.h ## see http://www.linuxjournal.com/article.php?sid=6060). my $chunk_limit= 100 * 1024; # 100 kB my @chunk= (); my $chunk_length= 0; foreach (@sources) { push @chunk, $_; $chunk_length+= length($_); if ($chunk_length > $chunk_limit) { safe_simple_system($method, @chunk, $target); @chunk=(); $chunk_length= 0; } } if ($chunk_length > 0) { # do not forget last small chunk safe_simple_system($method, @chunk, $target); } } sub safe_simple_system { my @cmd= @_; if ( $opt{dryrun} ) { print "@cmd\n"; } else { ## for some reason system fails but backticks works ok for scp... print "Executing '@cmd'\n" if $opt{debug}; my $cp_status = system "@cmd > /dev/null"; if ($cp_status != 0) { warn "Executing command failed ($cp_status). Trying backtick execution...\n"; ## try something else `@cmd` || die "Error: @cmd failed ($?) while copying files.\n"; } } } sub retire_directory { my ( @dir ) = @_; foreach my $dir ( @dir ) { my $tgt_oldpath = $dir . '_old'; if ( $opt{dryrun} ) { print "rmtree $tgt_oldpath\n" if ( -d $tgt_oldpath ); print "rename $dir, $tgt_oldpath\n"; next; } if ( -d $tgt_oldpath ) { print "Deleting previous 'old' hotcopy directory ('$tgt_oldpath')\n" unless $opt{quiet}; rmtree([$tgt_oldpath],0,1); } rename($dir, $tgt_oldpath) or die "Can't rename $dir=>$tgt_oldpath: $!\n"; print "Existing hotcopy directory renamed to '$tgt_oldpath'\n" unless $opt{quiet}; } } sub record_log_pos { my ( $dbh, $table_name ) = @_; eval { my ($file,$position) = get_row( $dbh, "show master status" ); die "master status is undefined" if !defined $file || !defined $position; my $row_hash = get_row_hash( $dbh, "show slave status" ); my ($master_host, $log_file, $log_pos ); if ( $dbh->{mariadb_serverinfo} =~ /^3\.23/ ) { ($master_host, $log_file, $log_pos ) = @{$row_hash}{ qw / Master_Host Log_File Pos / }; } else { ($master_host, $log_file, $log_pos ) = @{$row_hash}{ qw / Master_Host Relay_Master_Log_File Exec_Master_Log_Pos / }; } my $hostname = hostname(); $dbh->do( qq{ replace into $table_name set host=?, log_file=?, log_pos=?, master_host=?, master_log_file=?, master_log_pos=? }, undef, $hostname, $file, $position, $master_host, $log_file, $log_pos ); }; if ( $@ ) { warn "Failed to store master position: $@\n"; } } sub get_row { my ( $dbh, $sql ) = @_; my $sth = $dbh->prepare($sql); $sth->execute; return $sth->fetchrow_array(); } sub get_row_hash { my ( $dbh, $sql ) = @_; my $sth = $dbh->prepare($sql); $sth->execute; return $sth->fetchrow_hashref(); } sub get_list_of_tables { my ( $db ) = @_; my $tables = eval { $dbh->selectall_arrayref('SHOW FULL TABLES FROM ' . $dbh->quote_identifier($db) . ' WHERE Table_type = \'BASE TABLE\'') } || []; warn "Unable to retrieve list of tables in $db: $@" if $@; return (map { $_->[0] } @$tables); } sub get_list_of_views { my ( $db ) = @_; my $views = eval { $dbh->selectall_arrayref('SHOW FULL TABLES FROM ' . $dbh->quote_identifier($db) . ' WHERE Table_type = \'VIEW\'') } || []; warn "Unable to retrieve list of views in $db: $@" if $@; return (map { $_->[0] } @$views); } sub quote_names { my ( $name ) = @_; # given a db.table name, add quotes my ($db, $table, @cruft) = split( /\./, $name ); die "Invalid db.table name '$name'" if (@cruft || !defined $db || !defined $table ); # Earlier versions of DBD return table name non-quoted, # such as DBD-2.1012 and the newer ones, such as DBD-2.9002 # returns it quoted. Let's have a support for both. $table=~ s/\`//g; return "`$db`.`$table`"; } __END__ =head1 DESCRIPTION mysqlhotcopy is designed to make stable copies of live MySQL databases. Here "live" means that the database server is running and the database may be in active use. And "stable" means that the copy will not have any corruptions that could occur if the table files were simply copied without first being locked and flushed from within the server. =head1 OPTIONS =over 4 =item --checkpoint checkpoint-table As each database is copied, an entry is written to the specified checkpoint-table. This has the happy side-effect of updating the MySQL update-log (if it is switched on) giving a good indication of where roll-forward should begin for backup+rollforward schemes. The name of the checkpoint table should be supplied in database.table format. The checkpoint-table must contain at least the following fields: =over 4 time_stamp timestamp not null src varchar(32) dest varchar(60) msg varchar(255) =back =item --record_log_pos log-pos-table Just before the database files are copied, update the record in the log-pos-table from the values returned from "show master status" and "show slave status". The master status values are stored in the log_file and log_pos columns, and establish the position in the binary logs that any slaves of this host should adopt if initialised from this dump. The slave status values are stored in master_host, master_log_file, and master_log_pos, corresponding to the coordinates of the next to the last event the slave has executed. The slave or its siblings can connect to the master next time and request replication starting from the recorded values. The name of the log-pos table should be supplied in database.table format. A sample log-pos table definition: =over 4 CREATE TABLE log_pos ( host varchar(60) NOT null, time_stamp timestamp NOT NULL, log_file varchar(32) default NULL, log_pos int(11) default NULL, master_host varchar(60) NULL, master_log_file varchar(32) NULL, master_log_pos int NULL, PRIMARY KEY (host) ); =back =item --suffix suffix Each database is copied back into the originating datadir under a new name. The new name is the original name with the suffix appended. If only a single db_name is supplied and the --suffix flag is not supplied, then "--suffix=_copy" is assumed. =item --allowold Move any existing version of the destination to a backup directory for the duration of the copy. If the copy successfully completes, the backup directory is deleted - unless the --keepold flag is set. If the copy fails, the backup directory is restored. The backup directory name is the original name with "_old" appended. Any existing versions of the backup directory are deleted. =item --keepold Behaves as for the --allowold, with the additional feature of keeping the backup directory after the copy successfully completes. =item --addtodest Don't rename target directory if it already exists, just add the copied files into it. This is most useful when backing up a database with many large tables and you don't want to have all the tables locked for the whole duration. In this situation, I you are happy for groups of tables to be backed up separately (and thus possibly not be logically consistent with one another) then you can run mysqlhotcopy several times on the same database each with different db_name./table_regex/. All but the first should use the --addtodest option so the tables all end up in the same directory. =item --flushlog Rotate the log files by executing "FLUSH LOGS" after all tables are locked, and before they are copied. =item --resetmaster Reset the bin-log by executing "RESET MASTER" after all tables are locked, and before they are copied. Useful if you are recovering a slave in a replication setup. =item --resetslave Reset the master.info by executing "RESET SLAVE" after all tables are locked, and before they are copied. Useful if you are recovering a server in a mutual replication setup. =item --regexp pattern Copy all databases with names matching the pattern. =item --regexp /pattern1/./pattern2/ Copy all tables with names matching pattern2 from all databases with names matching pattern1. For example, to select all tables which names begin with 'bar' from all databases which names end with 'foo': mysqlhotcopy --indices --method=cp --regexp /foo$/./^bar/ =item db_name./pattern/ Copy only tables matching pattern. Shell metacharacters ( (, ), |, !, etc.) have to be escaped (e.g., \). For example, to select all tables in database db1 whose names begin with 'foo' or 'bar': mysqlhotcopy --indices --method=cp db1./^\(foo\|bar\)/ =item db_name./~pattern/ Copy only tables not matching pattern. For example, to copy tables that do not begin with foo nor bar: mysqlhotcopy --indices --method=cp db1./~^\(foo\|bar\)/ =item -?, --help Display help-screen and exit. =item -u, --user=# User for database login if not current user. =item -p, --password=# Password to use when connecting to the server. Note that you are strongly encouraged *not* to use this option as every user would be able to see the password in the process list. Instead use the '[mysqlhotcopy]' section in one of the config files, normally /etc/my.cnf or your personal ~/.my.cnf. (See the chapter 'my.cnf Option Files' in the manual.) =item -h, -h, --host=# Hostname for local server when connecting over TCP/IP. By specifying this different from 'localhost' will trigger mysqlhotcopy to use TCP/IP connection. =item -P, --port=# Port to use when connecting to MySQL server with TCP/IP. This is only used when using the --host option. =item -S, --socket=# UNIX domain socket to use when connecting to local server. =item --old_server Use old server (pre v5.5) commands. =item --noindices Don\'t include index files in copy. Only up to the first 2048 bytes are copied; You can restore the indexes with isamchk -r or myisamchk -r on the backup. =item --method=# Method for copy (only "cp" currently supported). Alpha support for "scp" was added in November 2000. Your experience with the scp method will vary with your ability to understand how scp works. 'man scp' and 'man ssh' are your friends. The destination directory _must exist_ on the target machine using the scp method. --keepold and --allowold are meaningless with scp. Liberal use of the --debug option will help you figure out what\'s really going on when you do an scp. Note that using scp will lock your tables for a _long_ time unless your network connection is _fast_. If this is unacceptable to you, use the 'cp' method to copy the tables to some temporary area and then scp or rsync the files at your leisure. =item -q, --quiet Be silent except for errors. =item --debug Debug messages are displayed. =item -n, --dryrun Display commands without actually doing them. =back =head1 WARRANTY This software is free and comes without warranty of any kind. You should never trust backup software without studying the code yourself. Study the code inside this script and only rely on it if I believe that it does the right thing for you. Patches adding bug fixes, documentation and new features are welcome. Please send these to internals@lists.mysql.com. =head1 TO DO Extend the individual table copy to allow multiple subsets of tables to be specified on the command line: mysqlhotcopy db newdb t1 t2 /^foo_/ : t3 /^bar_/ : + where ":" delimits the subsets, the /^foo_/ indicates all tables with names beginning with "foo_" and the "+" indicates all tables not copied by the previous subsets. 'newdb' is either the name of the new database, or the full path name of the new database file. The database should not already exist. Add option to lock each table in turn for people who don\'t need cross-table integrity. Add option to FLUSH STATUS just before UNLOCK TABLES. Add support for other copy methods (e.g., tar to single file?). Add support for forthcoming MySQL ``RAID'' table subdirectory layouts. =head1 AUTHOR Tim Bunce Martin Waite - Added checkpoint, flushlog, regexp and dryrun options. Fixed cleanup of targets when hotcopy fails. Added --record_log_pos. RAID tables are now copied (don't know if this works over scp). Ralph Corderoy - Added synonyms for commands. Scott Wiersdorf - Added table regex and scp support. Monty - Working --noindex (copy only first 2048 bytes of index file). Fixes for --method=scp. Ask Bjoern Hansen - Cleanup code to fix a few bugs and enable -w again. Emil S. Hansen - Added resetslave and resetmaster. Jeremy D. Zawodny - Removed deprecated DBI calls. Fixed bug which resulted in nothing being copied when a regexp was specified but no database name(s). Martin Waite - Fix to handle database name that contains space. Paul DuBois - Remove end '/' from directory names.