/
usr
/
bin
/
/usr/bin
mkdir
upload
Name
Size
Mode
Actions
X11/
-
0755
rm
411toppm
14568
0755
edit
dl
rm
ab
43432
0755
edit
dl
rm
ac
43432
0755
edit
dl
rm
aclocal
37738
0755
edit
dl
rm
aclocal-1.17
37738
0755
edit
dl
rm
addr2line
23776
0755
edit
dl
rm
animate
15016
0755
edit
dl
rm
animate-im7
15016
0755
edit
dl
rm
animate-im7.q16
15016
0755
edit
dl
rm
annotate
14416
0755
edit
dl
rm
anytopnm
12556
0755
edit
dl
rm
apropos
52520
0755
edit
dl
rm
apt
18752
0755
edit
dl
rm
apt-cache
92552
0755
edit
dl
rm
apt-cdrom
27016
0755
edit
dl
rm
apt-config
31040
0755
edit
dl
rm
apt-get
59784
0755
edit
dl
rm
apt-mark
63880
0755
edit
dl
rm
aptitude
4655304
0755
edit
dl
rm
aptitude-changelog-parser
542
0755
edit
dl
rm
aptitude-create-state-bundle
1939
0755
edit
dl
rm
aptitude-curses
4655304
0755
edit
dl
rm
aptitude-run-state-bundle
2850
0755
edit
dl
rm
ar
52480
0755
edit
dl
rm
arch
43464
0755
edit
dl
rm
as
795184
0755
edit
dl
rm
asciitopgm
14568
0755
edit
dl
rm
aspell
166320
0755
edit
dl
rm
aspell-import
2044
0755
edit
dl
rm
atktopbm
14568
0755
edit
dl
rm
autoconf
6694
0755
edit
dl
rm
autoheader
9098
0755
edit
dl
rm
autom4te
34929
0755
edit
dl
rm
automake
264360
0755
edit
dl
rm
automake-1.17
264360
0755
edit
dl
rm
autoreconf
26873
0755
edit
dl
rm
autoscan
17182
0755
edit
dl
rm
autoupdate
34022
0755
edit
dl
rm
avstopam
14568
0755
edit
dl
rm
awk
717248
0755
edit
dl
rm
b2sum
63944
0755
edit
dl
rm
base32
47528
0755
edit
dl
rm
base64
47528
0755
edit
dl
rm
basename
43432
0755
edit
dl
rm
basenc
59816
0755
edit
dl
rm
bash
1306608
0755
edit
dl
rm
bash-static
43432
0755
edit
dl
rm
bashbug
6947
0755
edit
dl
rm
bc
97048
0755
edit
dl
rm
bdf2gdfont
4689
0755
edit
dl
rm
bdftogd
3997
0755
edit
dl
rm
bdftopcf
43672
0755
edit
dl
rm
bdftruncate
14792
0755
edit
dl
rm
bioradtopgm
14568
0755
edit
dl
rm
bmptopnm
26856
0755
edit
dl
rm
bmptoppm
26856
0755
edit
dl
rm
brushtopbm
14568
0755
edit
dl
rm
brz
544200
0755
edit
dl
rm
bsd-mailx
117064
0755
edit
dl
rm
bsd-write
43432
0755
edit
dl
rm
bundle3.3
563
0755
edit
dl
rm
bundler3.3
565
0755
edit
dl
rm
bunzip2
39224
0755
edit
dl
rm
busctl
100888
0755
edit
dl
rm
bzcat
39224
0755
edit
dl
rm
bzcmp
2225
0755
edit
dl
rm
bzdiff
2225
0755
edit
dl
rm
bzegrep
3775
0755
edit
dl
rm
bzexe
4893
0755
edit
dl
rm
bzfgrep
3775
0755
edit
dl
rm
bzgrep
3775
0755
edit
dl
rm
bzip2
39224
0755
edit
dl
rm
bzip2recover
14568
0755
edit
dl
rm
bzless
1297
0755
edit
dl
rm
bzmore
1297
0755
edit
dl
rm
bzr
544200
0755
edit
dl
rm
c++
1166360
0755
edit
dl
rm
c++filt
23128
0755
edit
dl
rm
c89
428
0755
edit
dl
rm
c89-gcc
428
0755
edit
dl
rm
c99
454
0755
edit
dl
rm
c99-gcc
454
0755
edit
dl
rm
cameratopam
108856
0755
edit
dl
rm
captoinfo
96608
0755
edit
dl
rm
cat
47592
0755
edit
dl
rm
catman
43792
0755
edit
dl
rm
cc
1162264
0755
edit
dl
rm
chage
43432
0755
edit
dl
rm
chartex
5817
0755
edit
dl
rm
chattr
43432
0755
edit
dl
rm
chcon
43432
0755
edit
dl
rm
checkgid
14576
0755
edit
dl
rm
chfn
43432
0755
edit
dl
rm
chg
35808
0755
edit
dl
rm
chgrp
76232
0755
edit
dl
rm
chmod
72136
0755
edit
dl
rm
choom
55688
0755
edit
dl
rm
chown
76232
0755
edit
dl
rm
chronic
2180
0755
edit
dl
rm
chrt
72072
0755
edit
dl
rm
chsh
43432
0755
edit
dl
rm
ci
807
0755
edit
dl
rm
cistopbm
14568
0755
edit
dl
rm
cjpeg
55632
0755
edit
dl
rm
cksum
137672
0755
edit
dl
rm
clear
14584
0755
edit
dl
rm
clear_console
14488
0755
edit
dl
rm
cmake
13275056
0755
edit
dl
rm
cmp
56272
0755
edit
dl
rm
cmuwmtopbm
14568
0755
edit
dl
rm
co
807
0755
edit
dl
rm
col
35216
0755
edit
dl
rm
colcrt
14728
0755
edit
dl
rm
colrm
35216
0755
edit
dl
rm
column
63888
0755
edit
dl
rm
combine
3047
0755
edit
dl
rm
comm
47560
0755
edit
dl
rm
compare
15016
0755
edit
dl
rm
compare-im7
15016
0755
edit
dl
rm
compare-im7.q16
15016
0755
edit
dl
rm
composite
15016
0755
edit
dl
rm
composite-im7
15016
0755
edit
dl
rm
composite-im7.q16
15016
0755
edit
dl
rm
config_data
7138
0755
edit
dl
rm
conjure
15016
0755
edit
dl
rm
conjure-im7
15016
0755
edit
dl
rm
conjure-im7.q16
15016
0755
edit
dl
rm
convert
15016
0755
edit
dl
rm
convert-im7
15016
0755
edit
dl
rm
convert-im7.q16
15016
0755
edit
dl
rm
corelist
15375
0755
edit
dl
rm
cp
149960
0755
edit
dl
rm
cpack
13705200
0755
edit
dl
rm
cpan
8360
0755
edit
dl
rm
cpan5.40-x86_64-linux-gnu
8381
0755
edit
dl
rm
cpansign
2032
0755
edit
dl
rm
cpio
162680
0755
edit
dl
rm
cpp
1166360
0755
edit
dl
rm
cpp-14
1166360
0755
edit
dl
rm
crc32
1062
0755
edit
dl
rm
crontab
51936
2755
edit
dl
rm
csh
435656
0755
edit
dl
rm
csplit
59848
0755
edit
dl
rm
ctags
106520
0755
edit
dl
rm
ctags.emacs
106520
0755
edit
dl
rm
ctest
14906864
0755
edit
dl
rm
curl
321880
0755
edit
dl
rm
cut
55752
0755
edit
dl
rm
cvs
841096
0755
edit
dl
rm
cvs-switchroot
2525
0755
edit
dl
rm
c_rehash
6919
0755
edit
dl
rm
dash
129736
0755
edit
dl
rm
date
100808
0755
edit
dl
rm
db5.3_archive
14504
0755
edit
dl
rm
db5.3_checkpoint
14568
0755
edit
dl
rm
db5.3_deadlock
14576
0755
edit
dl
rm
db5.3_dump
18656
0755
edit
dl
rm
db5.3_hotbackup
18696
0755
edit
dl
rm
db5.3_load
30992
0755
edit
dl
rm
db5.3_log_verify
14552
0755
edit
dl
rm
db5.3_printlog
35088
0755
edit
dl
rm
db5.3_recover
14560
0755
edit
dl
rm
db5.3_replicate
14584
0755
edit
dl
rm
db5.3_stat
14512
0755
edit
dl
rm
db5.3_tuner
22688
0755
edit
dl
rm
db5.3_upgrade
14520
0755
edit
dl
rm
db5.3_verify
14520
0755
edit
dl
rm
dbf_dump
4271
0755
edit
dl
rm
dbilogstrip
1380
0755
edit
dl
rm
dbiprof
6206
0755
edit
dl
rm
dbiproxy
5394
0755
edit
dl
rm
db_archive
14504
0755
edit
dl
rm
db_checkpoint
14568
0755
edit
dl
rm
db_deadlock
14576
0755
edit
dl
rm
db_dump
18656
0755
edit
dl
rm
db_hotbackup
18696
0755
edit
dl
rm
db_load
30992
0755
edit
dl
rm
db_log_verify
14552
0755
edit
dl
rm
db_printlog
35088
0755
edit
dl
rm
db_recover
14560
0755
edit
dl
rm
db_replicate
14584
0755
edit
dl
rm
db_stat
14512
0755
edit
dl
rm
db_upgrade
14520
0755
edit
dl
rm
db_verify
14520
0755
edit
dl
rm
dc
55472
0755
edit
dl
rm
dd
76272
0755
edit
dl
rm
ddbugtopbm
14568
0755
edit
dl
rm
deb-systemd-helper
24358
0755
edit
dl
rm
deb-systemd-invoke
7135
0755
edit
dl
rm
debconf
2870
0755
edit
dl
rm
debconf-apt-progress
11846
0755
edit
dl
rm
debconf-communicate
623
0755
edit
dl
rm
debconf-copydb
1718
0755
edit
dl
rm
debconf-escape
668
0755
edit
dl
rm
debconf-set-selections
3216
0755
edit
dl
rm
debconf-show
1825
0755
edit
dl
rm
debsums
25494
0755
edit
dl
rm
delv
58712
0755
edit
dl
rm
df
109488
0755
edit
dl
rm
dh_autotools-dev_restoreconfig
1836
0755
edit
dl
rm
dh_autotools-dev_updateconfig
1850
0755
edit
dl
rm
dh_bash-completion
4527
0755
edit
dl
rm
dh_perl_dbi
1198
0755
edit
dl
rm
dh_perl_openssl
1567
0755
edit
dl
rm
diff
163440
0755
edit
dl
rm
diff3
72848
0755
edit
dl
rm
dig
146248
0755
edit
dl
rm
dir
158632
0755
edit
dl
rm
dircolors
55752
0755
edit
dl
rm
dirmngr
641512
0755
edit
dl
rm
dirmngr-client
109424
0755
edit
dl
rm
dirname
43432
0755
edit
dl
rm
display
15016
0755
edit
dl
rm
display-im7
15016
0755
edit
dl
rm
display-im7.q16
15016
0755
edit
dl
rm
djpeg
47440
0755
edit
dl
rm
dmesg
43432
0755
edit
dl
rm
dnsdomainname
26776
0755
edit
dl
rm
dnstap-read
22864
0755
edit
dl
rm
domainname
26776
0755
edit
dl
rm
dotlockfile
23104
0755
edit
dl
rm
dpkg
326704
0755
edit
dl
rm
dpkg-deb
182816
0755
edit
dl
rm
dpkg-divert
162584
0755
edit
dl
rm
dpkg-maintscript-helper
21124
0755
edit
dl
rm
dpkg-query
174864
0755
edit
dl
rm
dpkg-realpath
59728
0755
edit
dl
rm
dpkg-split
145904
0755
edit
dl
rm
dpkg-statoverride
88584
0755
edit
dl
rm
dpkg-trigger
92672
0755
edit
dl
rm
du
113096
0755
edit
dl
rm
dul-receive-pack
1261
0755
edit
dl
rm
dul-upload-pack
1257
0755
edit
dl
rm
dulwich
961
0755
edit
dl
rm
dvipdf
1007
0755
edit
dl
rm
ebrowse
47752
0755
edit
dl
rm
ebrowse.emacs
47752
0755
edit
dl
rm
echo
43432
0755
edit
dl
rm
editor
3921984
0755
edit
dl
rm
egrep
41
0755
edit
dl
rm
elfedit
35976
0755
edit
dl
rm
emacs
10397968
0755
edit
dl
rm
emacs-nox
10397968
0755
edit
dl
rm
emacsclient
31608
0755
edit
dl
rm
emacsclient.emacs
31608
0755
edit
dl
rm
enc2xs
41953
0755
edit
dl
rm
encguess
3065
0755
edit
dl
rm
env
56144
0755
edit
dl
rm
eps2eps
639
0755
edit
dl
rm
eqn
214448
0755
edit
dl
rm
erb
524
0755
edit
dl
rm
erb3.3
524
0755
edit
dl
rm
errno
22856
0755
edit
dl
rm
escp2topbm
14568
0755
edit
dl
rm
etags
106328
0755
edit
dl
rm
etags.emacs
106328
0755
edit
dl
rm
ex
3921984
0755
edit
dl
rm
exifautotran
1132
0755
edit
dl
rm
expand
47560
0755
edit
dl
rm
expiry
43432
0755
edit
dl
rm
expr
51624
0755
edit
dl
rm
ext_skel8.3
13425
0755
edit
dl
rm
eyuvtoppm
14568
0755
edit
dl
rm
factor
76232
0755
edit
dl
rm
faillog
43432
0755
edit
dl
rm
fallocate
35208
0755
edit
dl
rm
false
43432
0755
edit
dl
rm
fax2ps
26952
0755
edit
dl
rm
fax2tiff
22776
0755
edit
dl
rm
fc-cache
22840
0755
edit
dl
rm
fc-cat
18744
0755
edit
dl
rm
fc-conflist
14648
0755
edit
dl
rm
fc-list
14648
0755
edit
dl
rm
fc-match
14648
0755
edit
dl
rm
fc-pattern
14648
0755
edit
dl
rm
fc-query
14648
0755
edit
dl
rm
fc-scan
14648
0755
edit
dl
rm
fc-validate
14648
0755
edit
dl
rm
fcgistarter
14576
0755
edit
dl
rm
fgrep
41
0755
edit
dl
rm
fiascotopnm
101456
0755
edit
dl
rm
file
27200
0755
edit
dl
rm
file-rename
4482
0755
edit
dl
rm
find
233040
0755
edit
dl
rm
findmnt
102296
0755
edit
dl
rm
fitstopnm
18664
0755
edit
dl
rm
flock
35288
0755
edit
dl
rm
fmt
51624
0755
edit
dl
rm
fold
47528
0755
edit
dl
rm
fonttosfnt
47864
0755
edit
dl
rm
free
26936
0755
edit
dl
rm
fstopgm
14568
0755
edit
dl
rm
ftp
178960
0755
edit
dl
rm
funzip
27176
0755
edit
dl
rm
g++
1166360
0755
edit
dl
rm
g++-14
1166360
0755
edit
dl
rm
g3topbm
19520
0755
edit
dl
rm
gawk
717248
0755
edit
dl
rm
gawkbug
6783
0755
edit
dl
rm
gcc
1162264
0755
edit
dl
rm
gcc-14
1162264
0755
edit
dl
rm
gcc-ar
31312
0755
edit
dl
rm
gcc-ar-14
31312
0755
edit
dl
rm
gcc-nm
31312
0755
edit
dl
rm
gcc-nm-14
31312
0755
edit
dl
rm
gcc-ranlib
31312
0755
edit
dl
rm
gcc-ranlib-14
31312
0755
edit
dl
rm
gcov
458872
0755
edit
dl
rm
gcov-14
458872
0755
edit
dl
rm
gcov-dump
372808
0755
edit
dl
rm
gcov-dump-14
372808
0755
edit
dl
rm
gcov-tool
405672
0755
edit
dl
rm
gcov-tool-14
405672
0755
edit
dl
rm
gd2copypal
14416
0755
edit
dl
rm
gd2togif
14416
0755
edit
dl
rm
gd2topng
14416
0755
edit
dl
rm
gdcmpgif
14416
0755
edit
dl
rm
gdparttopng
14416
0755
edit
dl
rm
gdtopng
14416
0755
edit
dl
rm
gem
253
0755
edit
dl
rm
gem3.3
252
0755
edit
dl
rm
gemtopbm
14568
0755
edit
dl
rm
gemtopnm
14568
0755
edit
dl
rm
gencat
27000
0755
edit
dl
rm
geqn
214448
0755
edit
dl
rm
GET
16249
0755
edit
dl
rm
getconf
26920
0755
edit
dl
rm
getent
35480
0755
edit
dl
rm
getopt
35208
0755
edit
dl
rm
ghostscript
14600
0755
edit
dl
rm
giftogd2
14416
0755
edit
dl
rm
giftopnm
26856
0755
edit
dl
rm
ginstall-info
48952
0755
edit
dl
rm
git
4082768
0755
edit
dl
rm
git-receive-pack
4082768
0755
edit
dl
rm
git-shell
2316656
0755
edit
dl
rm
git-upload-archive
4082768
0755
edit
dl
rm
git-upload-pack
4082768
0755
edit
dl
rm
gmake
278448
0755
edit
dl
rm
gouldtoppm
14568
0755
edit
dl
rm
gp-archive
35928
0755
edit
dl
rm
gp-collect-app
56592
0755
edit
dl
rm
gp-display-html
645479
0755
edit
dl
rm
gp-display-src
31544
0755
edit
dl
rm
gp-display-text
161136
0755
edit
dl
rm
gpasswd
43432
0755
edit
dl
rm
gpg
1230080
0755
edit
dl
rm
gpg-agent
456184
0755
edit
dl
rm
gpg-connect-agent
142608
0755
edit
dl
rm
gpg2
1230080
0755
edit
dl
rm
gpgconf
171560
0755
edit
dl
rm
gpgsm
628040
0755
edit
dl
rm
gpic
229648
0755
edit
dl
rm
gprof
98736
0755
edit
dl
rm
gprofng
23128
0755
edit
dl
rm
gprofng-archive
35928
0755
edit
dl
rm
gprofng-collect-app
56592
0755
edit
dl
rm
gprofng-display-html
645479
0755
edit
dl
rm
gprofng-display-src
31544
0755
edit
dl
rm
gprofng-display-text
161136
0755
edit
dl
rm
grep
203152
0755
edit
dl
rm
groff
128464
0755
edit
dl
rm
grog
19195
0755
edit
dl
rm
grops
198512
0755
edit
dl
rm
grotty
148944
0755
edit
dl
rm
groups
43432
0755
edit
dl
rm
gs
14600
0755
edit
dl
rm
gsbj
350
0755
edit
dl
rm
gsdj
352
0755
edit
dl
rm
gsdj500
352
0755
edit
dl
rm
gslj
353
0755
edit
dl
rm
gslp
350
0755
edit
dl
rm
gsnd
277
0755
edit
dl
rm
gtbl
158136
0755
edit
dl
rm
gunzip
2335
0755
edit
dl
rm
gzexe
6436
0755
edit
dl
rm
gzip
102200
0755
edit
dl
rm
h2ph
28826
0755
edit
dl
rm
h2xs
60934
0755
edit
dl
rm
hardlink
63976
0755
edit
dl
rm
hd
63896
0755
edit
dl
rm
hdifftopam
14568
0755
edit
dl
rm
HEAD
16249
0755
edit
dl
rm
head
51656
0755
edit
dl
rm
helpztags
2514
0755
edit
dl
rm
hexdump
63896
0755
edit
dl
rm
hg
1441
0755
edit
dl
rm
hg-ssh
3538
0755
edit
dl
rm
hipstopgm
14568
0755
edit
dl
rm
host
113472
0755
edit
dl
rm
hostid
43432
0755
edit
dl
rm
hostname
26776
0755
edit
dl
rm
hostnamectl
31112
0755
edit
dl
rm
hpcdtoppm
798
0755
edit
dl
rm
htcacheclean
35064
0755
edit
dl
rm
htdbm
26864
0755
edit
dl
rm
htdigest
14576
0755
edit
dl
rm
htpasswd
26864
0755
edit
dl
rm
httping
107120
0755
edit
dl
rm
i386
88736
0755
edit
dl
rm
icontopbm
14568
0755
edit
dl
rm
iconv
68032
0755
edit
dl
rm
id
51656
0755
edit
dl
rm
ident
125304
0755
edit
dl
rm
identify
15016
0755
edit
dl
rm
identify-im7
15016
0755
edit
dl
rm
identify-im7.q16
15016
0755
edit
dl
rm
ifdata
27064
0755
edit
dl
rm
ifnames
4188
0755
edit
dl
rm
ifne
14416
0755
edit
dl
rm
ilbmtoppm
39224
0755
edit
dl
rm
imagetops
1241
0755
edit
dl
rm
imgsize
4677
0755
edit
dl
rm
imgtoppm
14568
0755
edit
dl
rm
import
15016
0755
edit
dl
rm
import-im7
15016
0755
edit
dl
rm
import-im7.q16
15016
0755
edit
dl
rm
index_dump
2495
0755
edit
dl
rm
info
252696
0755
edit
dl
rm
infobrowser
252696
0755
edit
dl
rm
infocmp
67904
0755
edit
dl
rm
infotocap
96608
0755
edit
dl
rm
infotopam
14648
0755
edit
dl
rm
innotop
456416
0755
edit
dl
rm
install
154096
0755
edit
dl
rm
install-info
48952
0755
edit
dl
rm
instmodsh
4373
0755
edit
dl
rm
interpreter
9078
0755
edit
dl
rm
ionice
35208
0755
edit
dl
rm
ipcmk
35280
0755
edit
dl
rm
ipcrm
80264
0755
edit
dl
rm
ipcs
84360
0755
edit
dl
rm
irb
524
0755
edit
dl
rm
irb3.3
524
0755
edit
dl
rm
ischroot
14752
0755
edit
dl
rm
ispell-wrapper
7220
0755
edit
dl
rm
isutf8
14416
0755
edit
dl
rm
jbigtopnm
58440
0755
edit
dl
rm
jmacs
744440
0755
edit
dl
rm
joe
744440
0755
edit
dl
rm
join
59880
0755
edit
dl
rm
journalctl
93296
0755
edit
dl
rm
jpeg2ktopam
213760
0755
edit
dl
rm
jpegexiforient
14584
0755
edit
dl
rm
jpegtopnm
39224
0755
edit
dl
rm
jpegtran
47368
0755
edit
dl
rm
jpico
744440
0755
edit
dl
rm
json_pp
5021
0755
edit
dl
rm
json_xs
7013
0755
edit
dl
rm
jstar
744440
0755
edit
dl
rm
kernel-install
55944
0755
edit
dl
rm
kill
22840
0755
edit
dl
rm
ksh
310240
0755
edit
dl
rm
l4p-tmpl
1846
0755
edit
dl
rm
last
43432
0755
edit
dl
rm
lckdo
14416
0755
edit
dl
rm
ld
1861256
0755
edit
dl
rm
ld.bfd
1861256
0755
edit
dl
rm
ld.so
225672
0755
edit
dl
rm
ldd
5356
0755
edit
dl
rm
leaftoppm
14568
0755
edit
dl
rm
less
249376
0755
edit
dl
rm
lessecho
14584
0755
edit
dl
rm
lessfile
9047
0755
edit
dl
rm
lesskey
26944
0755
edit
dl
rm
lesspipe
9047
0755
edit
dl
rm
lexgrog
110056
0755
edit
dl
rm
libnetcfg
15778
0755
edit
dl
rm
libtoolize
137226
0755
edit
dl
rm
link
43432
0755
edit
dl
rm
linux32
88736
0755
edit
dl
rm
linux64
88736
0755
edit
dl
rm
lispmtopgm
14568
0755
edit
dl
rm
lksh
346368
0755
edit
dl
rm
ln
76240
0755
edit
dl
rm
locale
46656
0755
edit
dl
rm
localectl
27008
0755
edit
dl
rm
localedef
310328
0755
edit
dl
rm
logger
43432
0755
edit
dl
rm
login
43432
0755
edit
dl
rm
loginctl
68112
0755
edit
dl
rm
logname
43432
0755
edit
dl
rm
logresolve
14584
0755
edit
dl
rm
look
18824
0755
edit
dl
rm
ls
158632
0755
edit
dl
rm
lsblk
248208
0755
edit
dl
rm
lsb_release
2834
0755
edit
dl
rm
lscpu
170384
0755
edit
dl
rm
lsipc
113032
0755
edit
dl
rm
lslocks
80696
0755
edit
dl
rm
lslogins
113032
0755
edit
dl
rm
lsmem
72072
0755
edit
dl
rm
lsmod
43432
0755
edit
dl
rm
lsns
92560
0755
edit
dl
rm
lsof
208792
0755
edit
dl
rm
lto-dump
32960064
0755
edit
dl
rm
lto-dump-14
32960064
0755
edit
dl
rm
lwp-download
10292
0755
edit
dl
rm
lwp-dump
2711
0755
edit
dl
rm
lwp-mirror
2413
0755
edit
dl
rm
lwp-request
16249
0755
edit
dl
rm
lynx
1962448
0755
edit
dl
rm
lzcat
105160
0755
edit
dl
rm
lzcmp
7588
0755
edit
dl
rm
lzdiff
7588
0755
edit
dl
rm
lzegrep
10413
0755
edit
dl
rm
lzfgrep
10413
0755
edit
dl
rm
lzgrep
10413
0755
edit
dl
rm
lzless
2383
0755
edit
dl
rm
lzma
105160
0755
edit
dl
rm
lzmainfo
18744
0755
edit
dl
rm
lzmore
2234
0755
edit
dl
rm
lzop
80248
0755
edit
dl
rm
m4
286232
0755
edit
dl
rm
macptopbm
14568
0755
edit
dl
rm
magick
15016
0755
edit
dl
rm
magick-im7
15016
0755
edit
dl
rm
magick-im7.q16
15016
0755
edit
dl
rm
magick-script
15016
0755
edit
dl
rm
magick-script-im7
15016
0755
edit
dl
rm
magick-script-im7.q16
15016
0755
edit
dl
rm
Mail
117064
0755
edit
dl
rm
mail
117064
0755
edit
dl
rm
mailx
117064
0755
edit
dl
rm
make
278448
0755
edit
dl
rm
make-first-existing-target
4905
0755
edit
dl
rm
man
124272
0755
edit
dl
rm
man-recode
36232
0755
edit
dl
rm
mandb
151152
0755
edit
dl
rm
manpath
35616
0755
edit
dl
rm
mariadb
5390168
0755
edit
dl
rm
mariadb-access
112084
0755
edit
dl
rm
mariadb-admin
5142496
0755
edit
dl
rm
mariadb-analyze
5139976
0755
edit
dl
rm
mariadb-binlog
5428048
0755
edit
dl
rm
mariadb-check
5139976
0755
edit
dl
rm
mariadb-config
15128
0755
edit
dl
rm
mariadb-conv
4839856
0755
edit
dl
rm
mariadb-convert-table-format
4386
0755
edit
dl
rm
mariadb-dump
5252496
0755
edit
dl
rm
mariadb-dumpslow
8382
0755
edit
dl
rm
mariadb-find-rows
3433
0755
edit
dl
rm
mariadb-fix-extensions
1346
0755
edit
dl
rm
mariadb-hotcopy
35497
0755
edit
dl
rm
mariadb-import
5283024
0755
edit
dl
rm
mariadb-optimize
5139976
0755
edit
dl
rm
mariadb-plugin
4820096
0755
edit
dl
rm
mariadb-repair
5139976
0755
edit
dl
rm
mariadb-report
50201
0755
edit
dl
rm
mariadb-secure-installation
14401
0755
edit
dl
rm
mariadb-setpermission
18128
0755
edit
dl
rm
mariadb-show
5133216
0755
edit
dl
rm
mariadb-slap
5148352
0755
edit
dl
rm
mariadb-tzinfo-to-sql
4815328
0755
edit
dl
rm
mariadb-waitpid
4802816
0755
edit
dl
rm
mariadbcheck
5139976
0755
edit
dl
rm
mariadb_config
15128
0755
edit
dl
rm
mawk
170664
0755
edit
dl
rm
mc
1148960
0755
edit
dl
rm
mcdiff
1148960
0755
edit
dl
rm
mcedit
1148960
0755
edit
dl
rm
mcookie
43432
0755
edit
dl
rm
mcview
1148960
0755
edit
dl
rm
md5sum
55752
0755
edit
dl
rm
mdatopbm
14568
0755
edit
dl
rm
mdig
51536
0755
edit
dl
rm
merge
125304
0755
edit
dl
rm
mesg
43432
0755
edit
dl
rm
mgrtopbm
14568
0755
edit
dl
rm
mispipe
14416
0755
edit
dl
rm
mkdir
88488
0755
edit
dl
rm
mkfifo
76200
0755
edit
dl
rm
mkfontdir
65
0755
edit
dl
rm
mkfontscale
44328
0755
edit
dl
rm
mknod
43432
0755
edit
dl
rm
mkpasswd
26936
0755
edit
dl
rm
mksh
310240
0755
edit
dl
rm
mksh-static
239840
0755
edit
dl
rm
mktemp
47528
0755
edit
dl
rm
mlock
14712
0755
edit
dl
rm
mogrify
15016
0755
edit
dl
rm
mogrify-im7
15016
0755
edit
dl
rm
mogrify-im7.q16
15016
0755
edit
dl
rm
montage
15016
0755
edit
dl
rm
montage-im7
15016
0755
edit
dl
rm
montage-im7.q16
15016
0755
edit
dl
rm
more
63888
0755
edit
dl
rm
mount
43432
0755
edit
dl
rm
mountpoint
43432
0755
edit
dl
rm
mrftopbm
14568
0755
edit
dl
rm
msmtp
147304
0755
edit
dl
rm
msql2mysql
1446
0755
edit
dl
rm
mt
43432
0755
edit
dl
rm
mt-gnu
43432
0755
edit
dl
rm
mtvtoppm
14568
0755
edit
dl
rm
mv
149960
0755
edit
dl
rm
mysql
5390168
0755
edit
dl
rm
mysqlaccess
112084
0755
edit
dl
rm
mysqladmin
5142496
0755
edit
dl
rm
mysqlanalyze
5139976
0755
edit
dl
rm
mysqlbinlog
5428048
0755
edit
dl
rm
mysqlcheck
5139976
0755
edit
dl
rm
mysqldump
5252496
0755
edit
dl
rm
mysqldumpslow
8382
0755
edit
dl
rm
mysqlhotcopy
35497
0755
edit
dl
rm
mysqlimport
5283024
0755
edit
dl
rm
mysqloptimize
5139976
0755
edit
dl
rm
mysqlrepair
5139976
0755
edit
dl
rm
mysqlreport
50201
0755
edit
dl
rm
mysqlshow
5133216
0755
edit
dl
rm
mysqlslap
5148352
0755
edit
dl
rm
mysql_config
15128
0755
edit
dl
rm
mysql_convert_table_format
4386
0755
edit
dl
rm
mysql_find_rows
3433
0755
edit
dl
rm
mysql_fix_extensions
1346
0755
edit
dl
rm
mysql_plugin
4820096
0755
edit
dl
rm
mysql_secure_installation
14401
0755
edit
dl
rm
mysql_setpermission
18128
0755
edit
dl
rm
mysql_tzinfo_to_sql
4815328
0755
edit
dl
rm
mysql_waitpid
4802816
0755
edit
dl
rm
mytop
73757
0755
edit
dl
rm
my_print_defaults
4803272
0755
edit
dl
rm
namei
39304
0755
edit
dl
rm
nano
303960
0755
edit
dl
rm
nawk
717248
0755
edit
dl
rm
nc
43592
0755
edit
dl
rm
nc.openbsd
43592
0755
edit
dl
rm
nc.traditional
35032
0755
edit
dl
rm
ncftp
334320
0755
edit
dl
rm
ncftp3
334320
0755
edit
dl
rm
ncftpbatch
240144
0755
edit
dl
rm
ncftpbookmarks
154960
0755
edit
dl
rm
ncftpget
219696
0755
edit
dl
rm
ncftpls
186928
0755
edit
dl
rm
ncftpput
223792
0755
edit
dl
rm
ncftpspooler
240144
0755
edit
dl
rm
neotoppm
14568
0755
edit
dl
rm
neqn
913
0755
edit
dl
rm
netcat
43592
0755
edit
dl
rm
netstat
43432
0755
edit
dl
rm
networkctl
129544
0755
edit
dl
rm
newgrp
43432
0755
edit
dl
rm
nice
43432
0755
edit
dl
rm
nisdomainname
26776
0755
edit
dl
rm
nl
51720
0755
edit
dl
rm
nm
45160
0755
edit
dl
rm
nohup
47528
0755
edit
dl
rm
nproc
47528
0755
edit
dl
rm
nroff
5718
0755
edit
dl
rm
nsenter
88728
0755
edit
dl
rm
nslookup
113480
0755
edit
dl
rm
nsupdate
80424
0755
edit
dl
rm
numfmt
68072
0755
edit
dl
rm
objcopy
159568
0755
edit
dl
rm
objdump
396336
0755
edit
dl
rm
od
84424
0755
edit
dl
rm
openssl
1103304
0755
edit
dl
rm
pager
249376
0755
edit
dl
rm
pal2rgb
14584
0755
edit
dl
rm
palmtopnm
26856
0755
edit
dl
rm
pamaddnoise
18664
0755
edit
dl
rm
pamaltsat
14616
0755
edit
dl
rm
pamarith
22760
0755
edit
dl
rm
pambackground
14568
0755
edit
dl
rm
pambayer
14648
0755
edit
dl
rm
pambrighten
14568
0755
edit
dl
rm
pamcat
22760
0755
edit
dl
rm
pamchannel
14568
0755
edit
dl
rm
pamcomp
18664
0755
edit
dl
rm
pamcrater
18664
0755
edit
dl
rm
pamcut
18664
0755
edit
dl
rm
pamdeinterlace
14568
0755
edit
dl
rm
pamdepth
14568
0755
edit
dl
rm
pamdice
18664
0755
edit
dl
rm
pamditherbw
22848
0755
edit
dl
rm
pamedge
14568
0755
edit
dl
rm
pamendian
14568
0755
edit
dl
rm
pamenlarge
18744
0755
edit
dl
rm
pamexec
14568
0755
edit
dl
rm
pamfile
14568
0755
edit
dl
rm
pamfind
14568
0755
edit
dl
rm
pamfix
14568
0755
edit
dl
rm
pamfixtrunc
2062
0755
edit
dl
rm
pamflip
22760
0755
edit
dl
rm
pamfunc
18664
0755
edit
dl
rm
pamgauss
14568
0755
edit
dl
rm
pamgetcolor
18744
0755
edit
dl
rm
pamgradient
14568
0755
edit
dl
rm
pamhomography
18664
0755
edit
dl
rm
pamhue
14568
0755
edit
dl
rm
pamlevels
18664
0755
edit
dl
rm
pamlookup
14568
0755
edit
dl
rm
pammasksharpen
14568
0755
edit
dl
rm
pammixinterlace
14656
0755
edit
dl
rm
pammixmulti
18664
0755
edit
dl
rm
pammosaicknit
14568
0755
edit
dl
rm
pamoil
14568
0755
edit
dl
rm
pampaintspill
18664
0755
edit
dl
rm
pamperspective
26936
0755
edit
dl
rm
pampick
14568
0755
edit
dl
rm
pampop9
14568
0755
edit
dl
rm
pamrecolor
18664
0755
edit
dl
rm
pamrestack
14568
0755
edit
dl
rm
pamrgbatopng
39144
0755
edit
dl
rm
pamrubber
35048
0755
edit
dl
rm
pamscale
35128
0755
edit
dl
rm
pamseq
14568
0755
edit
dl
rm
pamshadedrelief
14568
0755
edit
dl
rm
pamsharpmap
14568
0755
edit
dl
rm
pamsharpness
14568
0755
edit
dl
rm
pamshuffle
14568
0755
edit
dl
rm
pamsistoaglyph
14568
0755
edit
dl
rm
pamslice
14568
0755
edit
dl
rm
pamsplit
14568
0755
edit
dl
rm
pamstack
14568
0755
edit
dl
rm
pamstereogram
31032
0755
edit
dl
rm
pamstretch
14568
0755
edit
dl
rm
pamstretch-gen
3926
0755
edit
dl
rm
pamsumm
14568
0755
edit
dl
rm
pamsummcol
14568
0755
edit
dl
rm
pamtable
14568
0755
edit
dl
rm
pamthreshold
18664
0755
edit
dl
rm
pamtilt
18664
0755
edit
dl
rm
pamtoavs
14568
0755
edit
dl
rm
pamtodjvurle
14568
0755
edit
dl
rm
pamtofits
14568
0755
edit
dl
rm
pamtogif
26856
0755
edit
dl
rm
pamtohdiff
14568
0755
edit
dl
rm
pamtohtmltbl
14568
0755
edit
dl
rm
pamtojpeg2k
217856
0755
edit
dl
rm
pamtompfont
14568
0755
edit
dl
rm
pamtooctaveimg
14568
0755
edit
dl
rm
pamtopam
14568
0755
edit
dl
rm
pamtopdbimg
18744
0755
edit
dl
rm
pamtopfm
14568
0755
edit
dl
rm
pamtopng
39144
0755
edit
dl
rm
pamtopnm
14568
0755
edit
dl
rm
pamtoqoi
18664
0755
edit
dl
rm
pamtosrf
18664
0755
edit
dl
rm
pamtosvg
75856
0755
edit
dl
rm
pamtotga
18664
0755
edit
dl
rm
pamtotiff
47416
0755
edit
dl
rm
pamtouil
14568
0755
edit
dl
rm
pamtowinicon
18664
0755
edit
dl
rm
pamtoxvmini
14568
0755
edit
dl
rm
pamtris
26856
0755
edit
dl
rm
pamundice
18664
0755
edit
dl
rm
pamunlookup
14568
0755
edit
dl
rm
pamvalidate
14568
0755
edit
dl
rm
pamwipeout
14568
0755
edit
dl
rm
pamx
39224
0755
edit
dl
rm
parallel
14416
0755
edit
dl
rm
partx
137616
0755
edit
dl
rm
passwd
43432
0755
edit
dl
rm
paste
47560
0755
edit
dl
rm
patch
171608
0755
edit
dl
rm
pathchk
43432
0755
edit
dl
rm
patiencediff
986
0755
edit
dl
rm
pbmclean
18664
0755
edit
dl
rm
pbmlife
14568
0755
edit
dl
rm
pbmmake
14568
0755
edit
dl
rm
pbmmask
14568
0755
edit
dl
rm
pbmminkowski
14568
0755
edit
dl
rm
pbmnoise
14568
0755
edit
dl
rm
pbmpage
14568
0755
edit
dl
rm
pbmpscale
14568
0755
edit
dl
rm
pbmreduce
14568
0755
edit
dl
rm
pbmtext
31144
0755
edit
dl
rm
pbmtextps
22760
0755
edit
dl
rm
pbmto10x
14568
0755
edit
dl
rm
pbmto4425
14568
0755
edit
dl
rm
pbmtoascii
14568
0755
edit
dl
rm
pbmtoatk
14568
0755
edit
dl
rm
pbmtobbnbg
14568
0755
edit
dl
rm
pbmtocis
14568
0755
edit
dl
rm
pbmtocmuwm
14568
0755
edit
dl
rm
pbmtodjvurle
14568
0755
edit
dl
rm
pbmtoepsi
14568
0755
edit
dl
rm
pbmtoepson
14568
0755
edit
dl
rm
pbmtoescp2
14568
0755
edit
dl
rm
pbmtog3
19520
0755
edit
dl
rm
pbmtogem
14568
0755
edit
dl
rm
pbmtogo
14568
0755
edit
dl
rm
pbmtoibm23xx
14568
0755
edit
dl
rm
pbmtoicon
14568
0755
edit
dl
rm
pbmtolj
18672
0755
edit
dl
rm
pbmtoln03
14568
0755
edit
dl
rm
pbmtolps
14568
0755
edit
dl
rm
pbmtomacp
14568
0755
edit
dl
rm
pbmtomatrixorbital
14568
0755
edit
dl
rm
pbmtomda
14568
0755
edit
dl
rm
pbmtomgr
14568
0755
edit
dl
rm
pbmtomrf
14568
0755
edit
dl
rm
pbmtonokia
14568
0755
edit
dl
rm
pbmtopgm
14568
0755
edit
dl
rm
pbmtopi3
14568
0755
edit
dl
rm
pbmtopk
23072
0755
edit
dl
rm
pbmtoplot
14568
0755
edit
dl
rm
pbmtoppa
31032
0755
edit
dl
rm
pbmtopsg3
16248
0755
edit
dl
rm
pbmtoptx
14568
0755
edit
dl
rm
pbmtosunicon
14568
0755
edit
dl
rm
pbmtowbmp
14568
0755
edit
dl
rm
pbmtox10bm
2901
0755
edit
dl
rm
pbmtoxbm
14568
0755
edit
dl
rm
pbmtoybm
14568
0755
edit
dl
rm
pbmtozinc
14568
0755
edit
dl
rm
pbmupc
22760
0755
edit
dl
rm
pc1toppm
14568
0755
edit
dl
rm
pcdindex
6170
0755
edit
dl
rm
pcdovtoppm
6170
0755
edit
dl
rm
pcxtoppm
18664
0755
edit
dl
rm
pdb3
90924
0755
edit
dl
rm
pdb3.13
90924
0755
edit
dl
rm
pdbimgtopam
18744
0755
edit
dl
rm
pdf2dsc
705
0755
edit
dl
rm
pdf2ps
909
0755
edit
dl
rm
pear
805
0755
edit
dl
rm
pear8.3
805
0755
edit
dl
rm
peardev
817
0755
edit
dl
rm
peardev8.3
817
0755
edit
dl
rm
pecl
739
0755
edit
dl
rm
pecl8.3
739
0755
edit
dl
rm
pee
14416
0755
edit
dl
rm
perl
3931280
0755
edit
dl
rm
perl5.40-x86_64-linux-gnu
14752
0755
edit
dl
rm
perl5.40.1
3931280
0755
edit
dl
rm
perlbug
45593
0755
edit
dl
rm
perldoc
262
0755
edit
dl
rm
perldoc.stub
125
0755
edit
dl
rm
perlivp
10867
0755
edit
dl
rm
perlthanks
45593
0755
edit
dl
rm
perror
5020160
0755
edit
dl
rm
pf2afm
498
0755
edit
dl
rm
pfbtopfa
516
0755
edit
dl
rm
pfmtopam
14568
0755
edit
dl
rm
pgmabel
18664
0755
edit
dl
rm
pgmbentley
14568
0755
edit
dl
rm
pgmcrater
3571
0755
edit
dl
rm
pgmdeshadow
14568
0755
edit
dl
rm
pgmedge
14568
0755
edit
dl
rm
pgmenhance
14568
0755
edit
dl
rm
pgmhist
14568
0755
edit
dl
rm
pgmkernel
14568
0755
edit
dl
rm
pgmmake
14568
0755
edit
dl
rm
pgmmedian
18664
0755
edit
dl
rm
pgmminkowski
14568
0755
edit
dl
rm
pgmmorphconv
14568
0755
edit
dl
rm
pgmnoise
14568
0755
edit
dl
rm
pgmnorm
18664
0755
edit
dl
rm
pgmoil
14568
0755
edit
dl
rm
pgmramp
14568
0755
edit
dl
rm
pgmslice
14568
0755
edit
dl
rm
pgmtexture
26856
0755
edit
dl
rm
pgmtofs
14568
0755
edit
dl
rm
pgmtolispm
14568
0755
edit
dl
rm
pgmtopbm
22840
0755
edit
dl
rm
pgmtopgm
14568
0755
edit
dl
rm
pgmtoppm
14568
0755
edit
dl
rm
pgmtosbig
14568
0755
edit
dl
rm
pgmtost4
14568
0755
edit
dl
rm
pgrep
39344
0755
edit
dl
rm
php
20993408
0755
edit
dl
rm
php-config8.3
4281
0755
edit
dl
rm
php8.3
20993408
0755
edit
dl
rm
php8.3-cli
20993776
0755
edit
dl
rm
phpize8.3
4508
0755
edit
dl
rm
pi1toppm
14568
0755
edit
dl
rm
pi3topbm
14568
0755
edit
dl
rm
pic
229648
0755
edit
dl
rm
pico
303960
0755
edit
dl
rm
piconv
8360
0755
edit
dl
rm
pidof
43432
0755
edit
dl
rm
pidwait
39344
0755
edit
dl
rm
pinentry
76360
0755
edit
dl
rm
pinentry-curses
76360
0755
edit
dl
rm
ping
43432
0755
edit
dl
rm
ping6
43432
0755
edit
dl
rm
pinky
59848
0755
edit
dl
rm
pip
222
0755
edit
dl
rm
pip3
222
0755
edit
dl
rm
pjtoppm
14568
0755
edit
dl
rm
pkg-config
45096
0755
edit
dl
rm
pkgconf
45096
0755
edit
dl
rm
pkill
39344
0755
edit
dl
rm
pktopbm
18664
0755
edit
dl
rm
pl2pm
4536
0755
edit
dl
rm
pldd
22904
0755
edit
dl
rm
pmap
35160
0755
edit
dl
rm
pngchunkdesc
14648
0755
edit
dl
rm
pngchunks
14648
0755
edit
dl
rm
pngcp
18664
0755
edit
dl
rm
pnginfo
18664
0755
edit
dl
rm
pngtogd
14416
0755
edit
dl
rm
pngtogd2
14416
0755
edit
dl
rm
pngtopam
35128
0755
edit
dl
rm
pngtopnm
35128
0755
edit
dl
rm
pnmalias
18664
0755
edit
dl
rm
pnmarith
22760
0755
edit
dl
rm
pnmcat
22760
0755
edit
dl
rm
pnmcolormap
18664
0755
edit
dl
rm
pnmcomp
18664
0755
edit
dl
rm
pnmconvol
35048
0755
edit
dl
rm
pnmcrop
31032
0755
edit
dl
rm
pnmcut
18664
0755
edit
dl
rm
pnmdepth
14568
0755
edit
dl
rm
pnmenlarge
18744
0755
edit
dl
rm
pnmfile
14568
0755
edit
dl
rm
pnmflip
3719
0755
edit
dl
rm
pnmgamma
18664
0755
edit
dl
rm
pnmhisteq
14568
0755
edit
dl
rm
pnmhistmap
18664
0755
edit
dl
rm
pnmindex
18664
0755
edit
dl
rm
pnminterp
14568
0755
edit
dl
rm
pnminterp-gen
3926
0755
edit
dl
rm
pnminvert
14568
0755
edit
dl
rm
pnmmargin
2480
0755
edit
dl
rm
pnmmercator
14568
0755
edit
dl
rm
pnmmontage
18664
0755
edit
dl
rm
pnmnlfilt
22824
0755
edit
dl
rm
pnmnoraw
31
0755
edit
dl
rm
pnmnorm
18664
0755
edit
dl
rm
pnmpad
22760
0755
edit
dl
rm
pnmpaste
18664
0755
edit
dl
rm
pnmpsnr
18664
0755
edit
dl
rm
pnmquant
10889
0755
edit
dl
rm
pnmquantall
8815
0755
edit
dl
rm
pnmremap
18664
0755
edit
dl
rm
pnmrotate
18664
0755
edit
dl
rm
pnmscale
35128
0755
edit
dl
rm
pnmscalefixed
18664
0755
edit
dl
rm
pnmshear
14568
0755
edit
dl
rm
pnmsmooth
14568
0755
edit
dl
rm
pnmsplit
14568
0755
edit
dl
rm
pnmstitch
35816
0755
edit
dl
rm
pnmtile
14568
0755
edit
dl
rm
pnmtoddif
18664
0755
edit
dl
rm
pnmtofiasco
172176
0755
edit
dl
rm
pnmtofits
14568
0755
edit
dl
rm
pnmtojbig
62536
0755
edit
dl
rm
pnmtojpeg
30952
0755
edit
dl
rm
pnmtopalm
26856
0755
edit
dl
rm
pnmtopclxl
23288
0755
edit
dl
rm
pnmtoplainpnm
31
0755
edit
dl
rm
pnmtopng
55528
0755
edit
dl
rm
pnmtopnm
14568
0755
edit
dl
rm
pnmtops
35048
0755
edit
dl
rm
pnmtorast
18664
0755
edit
dl
rm
pnmtorle
35384
0755
edit
dl
rm
pnmtosgi
14568
0755
edit
dl
rm
pnmtosir
14568
0755
edit
dl
rm
pnmtotiff
47416
0755
edit
dl
rm
pnmtotiffcmyk
43320
0755
edit
dl
rm
pnmtoxwd
14568
0755
edit
dl
rm
pod2html
4041
0755
edit
dl
rm
pod2latex
10255
0755
edit
dl
rm
pod2man
18898
0755
edit
dl
rm
pod2text
13112
0755
edit
dl
rm
pod2usage
4107
0755
edit
dl
rm
podchecker
3730
0755
edit
dl
rm
podselect
2527
0755
edit
dl
rm
POST
16249
0755
edit
dl
rm
pphs
404
0755
edit
dl
rm
ppm2tiff
18680
0755
edit
dl
rm
ppm3d
18664
0755
edit
dl
rm
ppmbrighten
2044
0755
edit
dl
rm
ppmchange
14568
0755
edit
dl
rm
ppmcie
27032
0755
edit
dl
rm
ppmcolormask
14568
0755
edit
dl
rm
ppmcolors
14568
0755
edit
dl
rm
ppmdcfont
14568
0755
edit
dl
rm
ppmddumpfont
14568
0755
edit
dl
rm
ppmdim
14568
0755
edit
dl
rm
ppmdist
14568
0755
edit
dl
rm
ppmdither
14568
0755
edit
dl
rm
ppmdmkfont
22472
0755
edit
dl
rm
ppmdraw
22760
0755
edit
dl
rm
ppmfade
15116
0755
edit
dl
rm
ppmflash
14568
0755
edit
dl
rm
ppmforge
22768
0755
edit
dl
rm
ppmglobe
14568
0755
edit
dl
rm
ppmhist
18664
0755
edit
dl
rm
ppmlabel
14568
0755
edit
dl
rm
ppmmake
14568
0755
edit
dl
rm
ppmmix
14568
0755
edit
dl
rm
ppmnorm
18664
0755
edit
dl
rm
ppmntsc
14568
0755
edit
dl
rm
ppmpat
35048
0755
edit
dl
rm
ppmquant
2352
0755
edit
dl
rm
ppmquantall
8815
0755
edit
dl
rm
ppmrainbow
3564
0755
edit
dl
rm
ppmrelief
14568
0755
edit
dl
rm
ppmrough
18664
0755
edit
dl
rm
ppmshadow
11107
0755
edit
dl
rm
ppmshift
14568
0755
edit
dl
rm
ppmspread
14568
0755
edit
dl
rm
ppmtoacad
15440
0755
edit
dl
rm
ppmtoapplevol
14568
0755
edit
dl
rm
ppmtoarbtxt
18664
0755
edit
dl
rm
ppmtoascii
14648
0755
edit
dl
rm
ppmtobmp
18664
0755
edit
dl
rm
ppmtoeyuv
18664
0755
edit
dl
rm
ppmtogif
14568
0755
edit
dl
rm
ppmtoicr
14568
0755
edit
dl
rm
ppmtoilbm
43336
0755
edit
dl
rm
ppmtojpeg
30952
0755
edit
dl
rm
ppmtoleaf
14568
0755
edit
dl
rm
ppmtolj
14568
0755
edit
dl
rm
ppmtomap
82
0755
edit
dl
rm
ppmtomitsu
22760
0755
edit
dl
rm
ppmtompeg
509976
0755
edit
dl
rm
ppmtoneo
14568
0755
edit
dl
rm
ppmtopcx
18664
0755
edit
dl
rm
ppmtopgm
18664
0755
edit
dl
rm
ppmtopi1
14568
0755
edit
dl
rm
ppmtopict
14568
0755
edit
dl
rm
ppmtopj
14648
0755
edit
dl
rm
ppmtopjxl
18744
0755
edit
dl
rm
ppmtoppm
14568
0755
edit
dl
rm
ppmtopuzz
14568
0755
edit
dl
rm
ppmtorgb3
14568
0755
edit
dl
rm
ppmtosixel
14568
0755
edit
dl
rm
ppmtospu
14568
0755
edit
dl
rm
ppmtoterm
14568
0755
edit
dl
rm
ppmtotga
18664
0755
edit
dl
rm
ppmtouil
14568
0755
edit
dl
rm
ppmtowinicon
18664
0755
edit
dl
rm
ppmtoxpm
18664
0755
edit
dl
rm
ppmtoyuv
14568
0755
edit
dl
rm
ppmtoyuvsplit
14568
0755
edit
dl
rm
ppmtv
14568
0755
edit
dl
rm
ppmwheel
14568
0755
edit
dl
rm
pr
80392
0755
edit
dl
rm
precat
5656
0755
edit
dl
rm
preconv
68024
0755
edit
dl
rm
prename
4482
0755
edit
dl
rm
preunzip
5656
0755
edit
dl
rm
prezip
5656
0755
edit
dl
rm
prezip-bin
14568
0755
edit
dl
rm
printafm
395
0755
edit
dl
rm
printenv
43432
0755
edit
dl
rm
printf
68008
0755
edit
dl
rm
prlimit
43928
0755
edit
dl
rm
prove
13602
0755
edit
dl
rm
prove.diverted
13677
0755
edit
dl
rm
ps
154552
0755
edit
dl
rm
ps2ascii
494
0755
edit
dl
rm
ps2epsi
1297
0755
edit
dl
rm
ps2pdf
272
0755
edit
dl
rm
ps2pdf12
257
0755
edit
dl
rm
ps2pdf13
257
0755
edit
dl
rm
ps2pdf14
257
0755
edit
dl
rm
ps2pdfwr
1078
0755
edit
dl
rm
ps2ps
647
0755
edit
dl
rm
ps2ps2
669
0755
edit
dl
rm
ps2txt
494
0755
edit
dl
rm
psidtopgm
14568
0755
edit
dl
rm
pstopnm
18744
0755
edit
dl
rm
ptar
3566
0755
edit
dl
rm
ptardiff
2645
0755
edit
dl
rm
ptargrep
4395
0755
edit
dl
rm
ptx
63976
0755
edit
dl
rm
pwd
43432
0755
edit
dl
rm
pwdx
14648
0755
edit
dl
rm
py3clean
7770
0755
edit
dl
rm
py3compile
13305
0755
edit
dl
rm
py3versions
12816
0755
edit
dl
rm
pydoc
80
0755
edit
dl
rm
pydoc3
80
0755
edit
dl
rm
pydoc3.13
80
0755
edit
dl
rm
pygettext3
24439
0755
edit
dl
rm
pygettext3.13
24439
0755
edit
dl
rm
python
6828688
0755
edit
dl
rm
python3
6828688
0755
edit
dl
rm
python3.13
6828688
0755
edit
dl
rm
pzstd
834008
0755
edit
dl
rm
qoitopam
14568
0755
edit
dl
rm
qrttoppm
14568
0755
edit
dl
rm
quota
97808
0755
edit
dl
rm
quotaget
6161
0755
edit
dl
rm
quotasync
72496
0755
edit
dl
rm
racc3.3
530
0755
edit
dl
rm
rake
527
0755
edit
dl
rm
rake3.3
530
0755
edit
dl
rm
ranlib
52480
0755
edit
dl
rm
rasttopnm
18664
0755
edit
dl
rm
raw2tiff
22776
0755
edit
dl
rm
rawtopgm
14568
0755
edit
dl
rm
rawtoppm
14568
0755
edit
dl
rm
rbash
1306608
0755
edit
dl
rm
rbs3.3
524
0755
edit
dl
rm
rcs
195408
0755
edit
dl
rm
rcsclean
825
0755
edit
dl
rm
rcsdiff
822
0755
edit
dl
rm
rcsmerge
825
0755
edit
dl
rm
rdbg
534
0755
edit
dl
rm
rdbg3.3
534
0755
edit
dl
rm
rdebsums
2673
0755
edit
dl
rm
rdjpgcom
14584
0755
edit
dl
rm
rdoc
530
0755
edit
dl
rm
rdoc3.3
530
0755
edit
dl
rm
readelf
777864
0755
edit
dl
rm
readlink
55720
0755
edit
dl
rm
realpath
55752
0755
edit
dl
rm
recode
31360
0755
edit
dl
rm
rename
4482
0755
edit
dl
rm
rename.ul
31112
0755
edit
dl
rm
renice
14720
0755
edit
dl
rm
replace
4785664
0755
edit
dl
rm
reset
30968
0755
edit
dl
rm
resolve_stack_dump
4806912
0755
edit
dl
rm
rev
14728
0755
edit
dl
rm
rgb3toppm
14568
0755
edit
dl
rm
rgrep
30
0755
edit
dl
rm
ri
526
0755
edit
dl
rm
ri3.3
526
0755
edit
dl
rm
rjoe
744440
0755
edit
dl
rm
rksh
310240
0755
edit
dl
rm
rlatopam
14568
0755
edit
dl
rm
rletopnm
35384
0755
edit
dl
rm
rlksh
346368
0755
edit
dl
rm
rlog
813
0755
edit
dl
rm
rm
76232
0755
edit
dl
rm
rmdir
43432
0755
edit
dl
rm
rmksh
310240
0755
edit
dl
rm
rnano
303960
0755
edit
dl
rm
rotatelogs
26944
0755
edit
dl
rm
rpcgen
97280
0755
edit
dl
rm
rrdcgi
35056
0755
edit
dl
rm
rrdcreate
166224
0755
edit
dl
rm
rrdinfo
166224
0755
edit
dl
rm
rrdtool
35048
0755
edit
dl
rm
rrdupdate
166224
0755
edit
dl
rm
rrsync
13005
0755
edit
dl
rm
rsync
543080
0755
edit
dl
rm
rsync-ssl
5128
0755
edit
dl
rm
ruby
14416
0755
edit
dl
rm
ruby3.3
14416
0755
edit
dl
rm
run-parts
27392
0755
edit
dl
rm
run-with-aspell
57
0755
edit
dl
rm
run0
84872
0755
edit
dl
rm
runalarm
14584
0755
edit
dl
rm
runcon
47528
0755
edit
dl
rm
runlock
14592
0755
edit
dl
rm
runstat
22784
0755
edit
dl
rm
rview
3921984
0755
edit
dl
rm
rvim
3921984
0755
edit
dl
rm
rzsh
882152
0755
edit
dl
rm
savelog
10487
0755
edit
dl
rm
sbigtopgm
14568
0755
edit
dl
rm
scalar
2378768
0755
edit
dl
rm
scp
232064
0755
edit
dl
rm
script
80264
0755
edit
dl
rm
scriptlive
67976
0755
edit
dl
rm
scriptreplay
47496
0755
edit
dl
rm
sdiff
68704
0755
edit
dl
rm
sed
130520
0755
edit
dl
rm
select-default-iwrap
474
0755
edit
dl
rm
select-editor
2678
0755
edit
dl
rm
sensible-browser
1085
0755
edit
dl
rm
sensible-editor
1551
0755
edit
dl
rm
sensible-pager
824
0755
edit
dl
rm
sensible-terminal
1109
0755
edit
dl
rm
seq
47528
0755
edit
dl
rm
setarch
88736
0755
edit
dl
rm
setpriv
92560
0755
edit
dl
rm
setsid
14728
0755
edit
dl
rm
setterm
47496
0755
edit
dl
rm
sftp
240224
0755
edit
dl
rm
sg
43432
0755
edit
dl
rm
sgitopnm
18664
0755
edit
dl
rm
sh
129736
0755
edit
dl
rm
sha1sum
55752
0755
edit
dl
rm
sha224sum
55752
0755
edit
dl
rm
sha256sum
55752
0755
edit
dl
rm
sha384sum
55752
0755
edit
dl
rm
sha512sum
55752
0755
edit
dl
rm
shar
187640
0755
edit
dl
rm
shasum
9895
0755
edit
dl
rm
shasum.bundled
9982
0755
edit
dl
rm
showtable
30367
0755
edit
dl
rm
shred
68040
0755
edit
dl
rm
shuf
63912
0755
edit
dl
rm
sirtopnm
14568
0755
edit
dl
rm
size
27584
0755
edit
dl
rm
skill
31056
0755
edit
dl
rm
slabtop
22904
0755
edit
dl
rm
sldtoppm
18720
0755
edit
dl
rm
sleep
43432
0755
edit
dl
rm
snice
31056
0755
edit
dl
rm
SOAPsh
2812
0755
edit
dl
rm
soelim
51640
0755
edit
dl
rm
sort
121552
0755
edit
dl
rm
spctoppm
14568
0755
edit
dl
rm
splain
19459
0755
edit
dl
rm
split
72560
0755
edit
dl
rm
sponge
18512
0755
edit
dl
rm
spottopgm
14584
0755
edit
dl
rm
sputoppm
14568
0755
edit
dl
rm
sqlite3
344264
0755
edit
dl
rm
sqv
1870376
0755
edit
dl
rm
srftopam
18664
0755
edit
dl
rm
ssh
1047584
0755
edit
dl
rm
ssh-add
444864
0755
edit
dl
rm
ssh-agent
420224
2755
edit
dl
rm
ssh-argv0
1455
0755
edit
dl
rm
ssh-copy-id
14170
0755
edit
dl
rm
ssh-keygen
567744
0755
edit
dl
rm
ssh-keyscan
588256
0755
edit
dl
rm
sshpass
22624
0755
edit
dl
rm
st4topgm
14568
0755
edit
dl
rm
stat
104904
0755
edit
dl
rm
stdbuf
47528
0755
edit
dl
rm
strace
2189792
0755
edit
dl
rm
strace-log-merge
1875
0755
edit
dl
rm
stream
15016
0755
edit
dl
rm
stream-im7
15016
0755
edit
dl
rm
stream-im7.q16
15016
0755
edit
dl
rm
streamzip
8061
0755
edit
dl
rm
strings
31808
0755
edit
dl
rm
strip
159600
0755
edit
dl
rm
stty
76232
0755
edit
dl
rm
stubmaker
3416
0755
edit
dl
rm
su
43432
0755
edit
dl
rm
sum
51632
0755
edit
dl
rm
sunicontopnm
14568
0755
edit
dl
rm
svgtopam
22760
0755
edit
dl
rm
svn
444792
0755
edit
dl
rm
svnadmin
137528
0755
edit
dl
rm
svnauthz
35128
0755
edit
dl
rm
svnauthz-validate
35128
0755
edit
dl
rm
svnbench
76088
0755
edit
dl
rm
svndumpfilter
43432
0755
edit
dl
rm
svnfsfs
43320
0755
edit
dl
rm
svnlook
92472
0755
edit
dl
rm
svnmucc
31032
0755
edit
dl
rm
svnrdump
55608
0755
edit
dl
rm
svnserve
108920
0755
edit
dl
rm
svnsync
67896
0755
edit
dl
rm
svnversion
14648
0755
edit
dl
rm
sync
43432
0755
edit
dl
rm
syntax_suggest3.3
590
0755
edit
dl
rm
systemctl
297904
0755
edit
dl
rm
systemd-ac-power
14712
0755
edit
dl
rm
systemd-analyze
219944
0755
edit
dl
rm
systemd-ask-password
18952
0755
edit
dl
rm
systemd-cat
18816
0755
edit
dl
rm
systemd-cgls
23032
0755
edit
dl
rm
systemd-cgtop
39320
0755
edit
dl
rm
systemd-confext
76360
0755
edit
dl
rm
systemd-creds
51880
0755
edit
dl
rm
systemd-delta
27008
0755
edit
dl
rm
systemd-detect-virt
18808
0755
edit
dl
rm
systemd-escape
18808
0755
edit
dl
rm
systemd-firstboot
56120
0755
edit
dl
rm
systemd-id128
27008
0755
edit
dl
rm
systemd-inhibit
22928
0755
edit
dl
rm
systemd-machine-id-setup
18992
0755
edit
dl
rm
systemd-mount
56024
0755
edit
dl
rm
systemd-notify
27288
0755
edit
dl
rm
systemd-path
18808
0755
edit
dl
rm
systemd-run
84872
0755
edit
dl
rm
systemd-socket-activate
27008
0755
edit
dl
rm
systemd-stdio-bridge
18816
0755
edit
dl
rm
systemd-sysext
76360
0755
edit
dl
rm
systemd-sysusers
68144
0755
edit
dl
rm
systemd-tmpfiles
121464
0755
edit
dl
rm
systemd-tty-ask-password-agent
35200
0755
edit
dl
rm
systemd-umount
56024
0755
edit
dl
rm
systemd-vpick
27200
0755
edit
dl
rm
tabs
18672
0755
edit
dl
rm
tac
47528
0755
edit
dl
rm
tail
80360
0755
edit
dl
rm
tar
458280
0755
edit
dl
rm
taskset
67976
0755
edit
dl
rm
tbl
158136
0755
edit
dl
rm
tcsh
435656
0755
edit
dl
rm
tee
47560
0755
edit
dl
rm
tempfile
14576
0755
edit
dl
rm
test
47528
0755
edit
dl
rm
tgatoppm
18664
0755
edit
dl
rm
thinkjettopbm
18672
0755
edit
dl
rm
tic
96608
0755
edit
dl
rm
tiff2bw
18696
0755
edit
dl
rm
tiff2pdf
93056
0755
edit
dl
rm
tiff2ps
55560
0755
edit
dl
rm
tiff2rgba
18688
0755
edit
dl
rm
tiffcmp
18688
0755
edit
dl
rm
tiffcp
47384
0755
edit
dl
rm
tiffcrop
112912
0755
edit
dl
rm
tiffdither
14584
0755
edit
dl
rm
tiffdump
26944
0755
edit
dl
rm
tiffinfo
26880
0755
edit
dl
rm
tiffmedian
22776
0755
edit
dl
rm
tiffset
18680
0755
edit
dl
rm
tiffsplit
18688
0755
edit
dl
rm
tifftopnm
43320
0755
edit
dl
rm
timedatectl
47480
0755
edit
dl
rm
timeout
47984
0755
edit
dl
rm
tjbench
47696
0755
edit
dl
rm
tload
22856
0755
edit
dl
rm
tnftp
178960
0755
edit
dl
rm
toe
22768
0755
edit
dl
rm
top
138864
0755
edit
dl
rm
touch
88520
0755
edit
dl
rm
tpage
9068
0755
edit
dl
rm
tput
30992
0755
edit
dl
rm
tr
59816
0755
edit
dl
rm
troff
806736
0755
edit
dl
rm
true
43432
0755
edit
dl
rm
truncate
47528
0755
edit
dl
rm
ts
4619
0755
edit
dl
rm
tset
30968
0755
edit
dl
rm
tsort
59816
0755
edit
dl
rm
ttree
39147
0755
edit
dl
rm
tty
43432
0755
edit
dl
rm
typeprof3.3
554
0755
edit
dl
rm
tzselect
21877
0755
edit
dl
rm
ucf
36475
0755
edit
dl
rm
ucfq
18906
0755
edit
dl
rm
ucfr
10173
0755
edit
dl
rm
uclampset
72072
0755
edit
dl
rm
ucs2any
27168
0755
edit
dl
rm
ui-atomic-create
122152
0755
edit
dl
rm
ui-nss-schlund-version
168
0755
edit
dl
rm
ui-sqlmapper
14664
0755
edit
dl
rm
uicron
3783
0755
edit
dl
rm
ul
22920
0755
edit
dl
rm
umount
43432
0755
edit
dl
rm
uname
43464
0755
edit
dl
rm
uncompress
2335
0755
edit
dl
rm
unexpand
47560
0755
edit
dl
rm
uniq
55752
0755
edit
dl
rm
unlink
43432
0755
edit
dl
rm
unlzma
105160
0755
edit
dl
rm
unshar
125432
0755
edit
dl
rm
unshare
92792
0755
edit
dl
rm
unxz
105160
0755
edit
dl
rm
unzip
179248
0755
edit
dl
rm
unzipsfx
84928
0755
edit
dl
rm
unzstd
1418776
0755
edit
dl
rm
update-alternatives
59712
0755
edit
dl
rm
update-perl-sax-parsers
6169
0755
edit
dl
rm
update_rubygems
593
0755
edit
dl
rm
uptime
43432
0755
edit
dl
rm
users
51624
0755
edit
dl
rm
uudecode
129080
0755
edit
dl
rm
uuencode
124952
0755
edit
dl
rm
varlinkctl
39416
0755
edit
dl
rm
vdir
158632
0755
edit
dl
rm
vi
3921984
0755
edit
dl
rm
vidir
4889
0755
edit
dl
rm
view
3921984
0755
edit
dl
rm
vim
3921984
0755
edit
dl
rm
vim.basic
3921984
0755
edit
dl
rm
vimdiff
3921984
0755
edit
dl
rm
vimtutor
4858
0755
edit
dl
rm
vipe
1976
0755
edit
dl
rm
vmstat
39648
0755
edit
dl
rm
w
31032
0755
edit
dl
rm
wall
43432
0755
edit
dl
rm
watch
31512
0755
edit
dl
rm
wbmptopbm
14568
0755
edit
dl
rm
wc
68048
0755
edit
dl
rm
wcurl
11241
0755
edit
dl
rm
wdctl
76168
0755
edit
dl
rm
webpng
14416
0755
edit
dl
rm
wget
482672
0755
edit
dl
rm
whatis
52520
0755
edit
dl
rm
whereis
31112
0755
edit
dl
rm
which
1080
0755
edit
dl
rm
which.debianutils
1080
0755
edit
dl
rm
who
43432
0755
edit
dl
rm
whoami
43432
0755
edit
dl
rm
whois
159912
0755
edit
dl
rm
winicontopam
22760
0755
edit
dl
rm
winicontoppm
22760
0755
edit
dl
rm
word-list-compress
14568
0755
edit
dl
rm
wrjpgcom
14584
0755
edit
dl
rm
www-browser
1962448
0755
edit
dl
rm
x86_64
88736
0755
edit
dl
rm
x86_64-linux-gnu-addr2line
23776
0755
edit
dl
rm
x86_64-linux-gnu-ar
52480
0755
edit
dl
rm
x86_64-linux-gnu-as
795184
0755
edit
dl
rm
x86_64-linux-gnu-c++filt
23128
0755
edit
dl
rm
x86_64-linux-gnu-cpp
1166360
0755
edit
dl
rm
x86_64-linux-gnu-cpp-14
1166360
0755
edit
dl
rm
x86_64-linux-gnu-elfedit
35976
0755
edit
dl
rm
x86_64-linux-gnu-g++
1166360
0755
edit
dl
rm
x86_64-linux-gnu-g++-14
1166360
0755
edit
dl
rm
x86_64-linux-gnu-gcc
1162264
0755
edit
dl
rm
x86_64-linux-gnu-gcc-14
1162264
0755
edit
dl
rm
x86_64-linux-gnu-gcc-ar
31312
0755
edit
dl
rm
x86_64-linux-gnu-gcc-ar-14
31312
0755
edit
dl
rm
x86_64-linux-gnu-gcc-nm
31312
0755
edit
dl
rm
x86_64-linux-gnu-gcc-nm-14
31312
0755
edit
dl
rm
x86_64-linux-gnu-gcc-ranlib
31312
0755
edit
dl
rm
x86_64-linux-gnu-gcc-ranlib-14
31312
0755
edit
dl
rm
x86_64-linux-gnu-gcov
458872
0755
edit
dl
rm
x86_64-linux-gnu-gcov-14
458872
0755
edit
dl
rm
x86_64-linux-gnu-gcov-dump
372808
0755
edit
dl
rm
x86_64-linux-gnu-gcov-dump-14
372808
0755
edit
dl
rm
x86_64-linux-gnu-gcov-tool
405672
0755
edit
dl
rm
x86_64-linux-gnu-gcov-tool-14
405672
0755
edit
dl
rm
x86_64-linux-gnu-gprof
98736
0755
edit
dl
rm
x86_64-linux-gnu-ld
1861256
0755
edit
dl
rm
x86_64-linux-gnu-ld.bfd
1861256
0755
edit
dl
rm
x86_64-linux-gnu-lto-dump
32960064
0755
edit
dl
rm
x86_64-linux-gnu-lto-dump-14
32960064
0755
edit
dl
rm
x86_64-linux-gnu-nm
45160
0755
edit
dl
rm
x86_64-linux-gnu-objcopy
159568
0755
edit
dl
rm
x86_64-linux-gnu-objdump
396336
0755
edit
dl
rm
x86_64-linux-gnu-pkg-config
45096
0755
edit
dl
rm
x86_64-linux-gnu-pkgconf
45096
0755
edit
dl
rm
x86_64-linux-gnu-ranlib
52480
0755
edit
dl
rm
x86_64-linux-gnu-readelf
777864
0755
edit
dl
rm
x86_64-linux-gnu-size
27584
0755
edit
dl
rm
x86_64-linux-gnu-strings
31808
0755
edit
dl
rm
x86_64-linux-gnu-strip
159600
0755
edit
dl
rm
xargs
76232
0755
edit
dl
rm
xbmtopbm
14568
0755
edit
dl
rm
ximtoppm
14568
0755
edit
dl
rm
xpath
5106
0755
edit
dl
rm
xpmtoppm
18720
0755
edit
dl
rm
xsubpp
5167
0755
edit
dl
rm
xvminitoppm
14568
0755
edit
dl
rm
xwdtopnm
22760
0755
edit
dl
rm
xz
105160
0755
edit
dl
rm
xzcat
105160
0755
edit
dl
rm
xzcmp
7588
0755
edit
dl
rm
xzdiff
7588
0755
edit
dl
rm
xzegrep
10413
0755
edit
dl
rm
xzfgrep
10413
0755
edit
dl
rm
xzgrep
10413
0755
edit
dl
rm
xzless
2383
0755
edit
dl
rm
xzmore
2234
0755
edit
dl
rm
ybmtopbm
14568
0755
edit
dl
rm
yes
43432
0755
edit
dl
rm
ypdomainname
26776
0755
edit
dl
rm
yuvsplittoppm
14568
0755
edit
dl
rm
yuvtoppm
14568
0755
edit
dl
rm
yuy2topam
14568
0755
edit
dl
rm
zcat
1973
0755
edit
dl
rm
zcmp
1678
0755
edit
dl
rm
zdiff
6449
0755
edit
dl
rm
zdump
26840
0755
edit
dl
rm
zegrep
29
0755
edit
dl
rm
zeisstopnm
14568
0755
edit
dl
rm
zfgrep
29
0755
edit
dl
rm
zforce
2076
0755
edit
dl
rm
zgrep
8199
0755
edit
dl
rm
zip
221456
0755
edit
dl
rm
zipcloak
94696
0755
edit
dl
rm
zipdetails
236604
0755
edit
dl
rm
zipgrep
2830
0755
edit
dl
rm
zipinfo
179248
0755
edit
dl
rm
zipnote
90272
0755
edit
dl
rm
zipsplit
90272
0755
edit
dl
rm
zless
2434
0755
edit
dl
rm
zmore
1837
0755
edit
dl
rm
znew
4572
0755
edit
dl
rm
zrun
2518
0755
edit
dl
rm
zsh
882152
0755
edit
dl
rm
zsh5
852
0755
edit
dl
rm
zstd
1418776
0755
edit
dl
rm
zstdcat
1418776
0755
edit
dl
rm
zstdgrep
3869
0755
edit
dl
rm
zstdless
197
0755
edit
dl
rm
zstdmt
1418776
0755
edit
dl
rm
[
55720
0755
edit
dl
rm
Edit:
/usr/bin/mytop
(73757B)
#!/usr/bin/perl # # $Id: mytop,v 1.99-maria8 2025/07/16 17:59:26 jweisbuch Exp $ =pod =head1 NAME mytop - display MariaDB/MySQL server performance info like `top' =cut ## most of the POD is at the bottom of the file use 5.005; use strict; use warnings; use DBI; use Getopt::Long; use Socket; use List::Util qw(min max); use File::Basename; $main::VERSION = "1.99-maria8"; my $path_for_script = dirname($0); $| = 1; $0 = 'mytop'; my $WIN = ($^O eq 'MSWin32') ? 1 : 0; ## Test for color support. eval { require Term::ANSIColor; }; my $HAS_COLOR = $@ ? 0 : 1; $HAS_COLOR = 0 if $WIN; ## Test of Time::HiRes support eval { require Time::HiRes }; my $HAS_TIME = $@ ? 0 : 1; my $debug = 0; ## Try to lower our priority (which, who, pri) setpriority(0,0,10) unless $WIN; ## Prototypes sub Clear(); sub GetData(); sub GetQPS(); sub FullQueryInfo($); sub Explain($); sub PrintTable(@); sub PrintHelp(); sub Sum(@); sub commify($); sub make_short($); sub Hashes($); sub Execute($); sub StringOrRegex($); sub GetInnoDBStatus(); sub GetCmdSummary(); sub GetShowVariables(); sub GetShowStatus(); sub cmd_s; sub cmd_S; sub cmd_q; ## Default Config Values my %config = ( batchmode => 0, color => 1, db => '', database => '', delay => 5, filter_user => qr/.?/, filter_db => qr/.?/, filter_host => qr/.?/, filter_state => qr/.?/, header => 1, help => 0, host => 'localhost', idle => 1, long => 120, long_nums => 0, mode => 'top', prompt => 0, pass => '', password => '', port => 3306, resolve => 0, slow => 10, ## slow query time socket => '', sort => 1, ## default or reverse sort ("s") user => 'root', fullqueries => 0, ## shows untruncated queries usercol_width => 8, ## User column width dbcol_width => 9, ## DB column width hide_progress => 0 ## hide the "%" column when available ); my %qcache = (); ## The query cache--used for full query info support. my %ucache = (); ## The user cache--used for full killing by user my %dbcache = (); ## The db cache. This should be merged at some point. my %statcache = (); ## The show status cache for GetShowStatus() my (%STATUS, %OLD_STATUS); # header stuff. my $CLEAR = $WIN ? '': `clear`; ## Term::ReadKey values my $RM_RESET = 0; my $RM_NOBLKRD = 3; ## using 4 traps Ctrl-C :-( ## Add options from .my.cnf first my $my_print_defaults; if (!defined($my_print_defaults=my_which("my_print_defaults"))) { print "Warning: Can't find my_print_defaults. Please add it to your PATH!\n"; exit(1); } unshift @ARGV, split "\n", `$my_print_defaults client mytop`; ## Read the user's config file, if it exists. my $config = "$ENV{HOME}/.mytop"; if (-e $config) { if (open CFG, "<$config") { while (<CFG>) { next if /^\s*($|#)/; ## skip blanks and comments chomp; if (/(\S+)\s*=\s*(.*\S)/) { my ($k, $v) = ($1, $2); if ($k =~ /^filter_/i) { $config{lc $k} = StringOrRegex($v) if exists $config{lc $k}; } else { $config{lc $k} = $v if exists $config{lc $k}; } } } close CFG; } ## map database/password onto db/pass ## short version gets precedence for historical reasons $config{'db'} = $config{'database'} unless $config{'db'}; $config{'pass'} = $config{'password'} unless $config{'pass'}; } ## Command-line args. use vars qw($opt_foo); Getopt::Long::Configure('no_ignore_case', 'bundling'); GetOptions( "color!" => \$config{color}, "user|u=s" => \$config{user}, "pass|password|p=s" => \$config{pass}, "database|db|d=s" => \$config{db}, "host|h=s" => \$config{host}, "port|P=i" => \$config{port}, "socket|S=s" => \$config{socket}, "delay|s=i" => \$config{delay}, "batch|batchmode|b" => \$config{batchmode}, "header!" => \$config{header}, "idle|i!" => \$config{idle}, "resolve|r!" => \$config{resolve}, "prompt!" => \$config{prompt}, "long=i" => \$config{long}, "long_nums!" => \$config{long_nums}, "mode|m=s" => \$config{mode}, "slow=i" => \$config{slow}, "sort=s" => \$config{sort}, "fullqueries|L!" => \$config{fullqueries}, "usercol_width=i" => \$config{usercol_width}, "dbcol_width=i" => \$config{dbcol_width}, "hide_progress|a!" => \$config{hide_progress} ); ## User may have put the port with the host. if ($config{host} =~ s/:(\d+)$//) { $config{port} = $1; } ## Don't use Term::ReadKey unless running interactively. if (not $config{batchmode}) { require Term::ReadKey; Term::ReadKey->import(); } ## User may want to disable color. if ($HAS_COLOR and not $config{color}) { $HAS_COLOR = 0; } if ($HAS_COLOR) { import Term::ANSIColor ':constants'; } else { *RESET = sub { }; *YELLOW = sub { }; *RED = sub { }; *MAGENTA = sub { }; *GREEN = sub { }; *BLUE = sub { }; *WHITE = sub { }; *BOLD = sub { }; } my $RESET = RESET() || ''; my $YELLOW = YELLOW() || ''; my $RED = RED() || ''; my $MAGENTA = MAGENTA() || ''; my $GREEN = GREEN() || ''; my $BLUE = BLUE() || ''; my $WHITE = WHITE() || ''; my $BOLD = BOLD() || ''; ## Connect my $dsn; ## Socket takes precedence. my $prefix= 'mysql'; if (eval {DBI->install_driver("MariaDB")}) { $dsn = "DBI:MariaDB:database=$config{db};mariadb_read_default_group=mytop;"; $prefix= 'mariadb' } else { $dsn = "DBI:mysql:database=$config{db};mysql_read_default_group=mytop;"; } if ($config{socket} and -S $config{socket}) { $dsn .= "${prefix}_socket=$config{socket}"; } elsif($config{host} eq "localhost") { $dsn .= "host=$config{host}"; } else { $dsn .= "host=$config{host};port=$config{port}"; } if ($config{prompt}) { print "Password: "; ReadMode(2); chomp($config{pass} = <STDIN>); ReadMode(0); print "\n"; } my $dbh = DBI->connect($dsn, $config{user}, $config{pass}, { PrintError => 0 }); if (not ref $dbh) { my $Error = <<EODIE Cannot connect to MariaDB/MySQL server. Please check the: * database you specified "$config{db}" (default is "") * username you specified "$config{user}" (default is "root") * password you specified "$config{pass}" (default is "") * hostname you specified "$config{host}" (default is "localhost") * port you specified "$config{port}" (default is 3306) * socket you specified "$config{socket}" (default is "") The options my be specified on the command-line or in a ~/.mytop or ~/.my.cnf config file. See the manual (perldoc mytop) for details. Here's the exact error from DBI. It might help you debug: $DBI::errstr EODIE ; die $Error; } ReadMode($RM_RESET) unless $config{batchmode}; ## Get static data my $db_version; my $db_release; my $server = "MySQL"; my $have_query_cache; my @variables = Hashes("SHOW VARIABLES"); foreach (@variables) { if ($_->{Variable_name} eq "version") { $db_version = $_->{Value}; $db_version =~ /^(\d+)/; $db_release = $1; $server = "MariaDB" if ($db_version =~ /maria/i); # Get the version number only $db_version = $1 if($db_version =~ m/(.*?)-/); next; } if ($_->{Variable_name} eq "have_query_cache") { if ($_->{Value} ne 'NO') { $have_query_cache = 1; } else { $have_query_cache = 0; } next; } } my ($has_is_processlist, $has_time_ms, $has_progress); $has_is_processlist = $has_time_ms = $has_progress = 0; ## Check if the server has the INFORMATION_SCHEMA.PROCESSLIST table ## for backward compatibility $has_is_processlist = Execute("SELECT /*mytop*/ 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'information_schema' AND TABLE_NAME = 'PROCESSLIST';")->rows; if ($has_is_processlist == 1) { ## Check if the server has the TIME_MS column on the I_S.PROCESSLIST table ## If it is the case, it will fetch the query time with decimal precision ## for queries that has been running for less than 10k seconds $has_time_ms = Execute("SELECT /*mytop*/ 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'information_schema' AND TABLE_NAME = 'PROCESSLIST' AND COLUMN_NAME = 'TIME_MS';")->rows; if ($has_time_ms == 1) { ## Check if the server has the STAGE column on the I_S.PROCESSLIST ## table (MariaDB) to retreive query completion information $has_progress = Execute("SELECT /*mytop*/ 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'information_schema' AND TABLE_NAME = 'PROCESSLIST' AND COLUMN_NAME = 'STAGE';")->rows; } } ######################################################################### ## ## The main loop ## ######################################################################### ReadMode($RM_NOBLKRD) unless $config{batchmode}; while (1) { my $key; if ($config{mode} eq 'qps') { GetQPS(); $key = ReadKey(1); next unless $key; if ($key =~ /t/i) { $config{mode} = 'top'; } if ($key =~ /q/) { cmd_q(); } next; } if ($config{mode} eq 'top') { GetData(); last if $config{batchmode}; $key = ReadKey($config{delay}); next unless $key; } elsif ($config{mode} eq 'cmd') { GetCmdSummary(); last if $config{batchmode}; $key = ReadKey($config{delay}); next unless $key; } elsif ($config{mode} eq 'innodb') { GetInnoDBStatus(); last if $config{batchmode}; print "InnoDB Status [hit t to exit this mode or q to exit the application]\n"; $key = ReadKey($config{delay}); next unless $key; } elsif ($config{mode} eq 'status') { GetShowStatus(); last if $config{batchmode}; $key = ReadKey($config{delay}); next unless $key; } ## ## keystroke command processing (if we get this far) ## if ($key eq '!') { Execute("STOP /*mytop*/ SLAVE;"); Execute("SET /*mytop*/ GLOBAL sql_slave_skip_counter=1"); Execute("START /*mytop*/ SLAVE"); } # t - top if ($key =~ /t/i) { $config{mode} = 'top'; } ## q - quit if ($key eq 'q') { cmd_q(); } if ($key eq 'D') { require Data::Dumper; print Data::Dumper::Dumper([\%config]); ReadKey(0); } ## l - change long running hightling if ($key eq 'l') { cmd_l(); next; } ## m - mode switch to qps if ($key eq 'm') { $config{mode} = 'qps'; Clear() unless $config{batchmode}; print "Queries Per Second [hit t to exit this mode or q to exit the application]\n"; next; } ## c - mode switch to command summary if ($key eq 'c') { $config{mode} = 'cmd'; Clear() unless $config{batchmode}; print "Command Summary\n"; next; } ## C - change Color on and off if ($key eq 'C') { if ($HAS_COLOR) { $HAS_COLOR = 0; } else { $HAS_COLOR = 1; } } ## s - seconds of delay if ($key eq 's') { cmd_s(); next; } if ($key eq 'S') { cmd_S(); next; } ## R - resolve hostnames if ($key eq 'R') { if ($config{resolve}) { $config{resolve} = 0; } else { $config{resolve} = 1; } } ## t - username based filter if ($key eq 't') { ReadMode($RM_RESET); print RED(), "Which state (blank for all, /.../ for regex): ", RESET(); $config{filter_state} = StringOrRegex(ReadLine(0)); ReadMode($RM_NOBLKRD); next; } ## u - username based filter if ($key eq 'u') { ReadMode($RM_RESET); print RED(), "Which user (blank for all, /.../ for regex): ", RESET(); $config{filter_user} = StringOrRegex(ReadLine(0)); ReadMode($RM_NOBLKRD); next; } ## d - database name based filter if ($key eq 'd') { ReadMode($RM_RESET); print RED(), "Which database (blank for all, /.../ for regex): ", RESET(); $config{filter_db} = StringOrRegex(ReadLine(0)); ReadMode($RM_NOBLKRD); next; } ## h - hostname based filter if ($key eq 'h') { ReadMode($RM_RESET); print RED(), "Which hostname (blank for all, /.../ for regex): ", RESET(); $config{filter_host} = StringOrRegex(ReadLine(0)); ReadMode($RM_NOBLKRD); next; } ## E - Show full Replication Error if ($key eq 'E') { my ($data) = Hashes('SHOW /*mytop*/ SLAVE STATUS'); Clear(); print "Error is: $data->{Last_Error}\n"; print RED(), "-- paused. press any key to resume --", RESET(); ReadKey(0); next; } ## F - remove all filters if ($key eq 'F') { $config{filter_host} = qr/.?/; $config{filter_db} = qr/.?/; $config{filter_user} = qr/.?/; $config{filter_state} = qr/.?/; print RED(), "-- display unfiltered --", RESET(); sleep 1; next; } ## p - pause if ($key eq 'p') { print RED(), "-- paused. press any key to resume --", RESET(); ReadKey(0); next; } ## i - idle toggle if ($key =~ /i/) { if ($config{idle}) { $config{idle} = 0; $config{sort} = 1; print RED(), "-- idle (sleeping) processed filtered --", RESET(); sleep 1; } else { $config{idle} = 1; $config{sort} = 0; print RED(), "-- idle (sleeping) processed unfiltered --", RESET(); sleep 1; } } ## I - InnoDB status if ($key =~ 'I') { $config{mode} = 'innodb'; Clear() unless $config{batchmode}; print "InnoDB Status\n"; next; } ## o - sort order if ($key =~ /o/) { if ($config{sort}) { $config{sort} = 0; print RED(), "-- sort order reversed --", RESET(); sleep 1; } else { $config{sort} = 1; print RED(), "-- sort order reversed --", RESET(); sleep 1; } } ## ? - help if ($key eq '?') { Clear(); PrintHelp(); ReadKey(0); next; } ## k - kill if ($key eq 'k') { ReadMode($RM_RESET); print RED(), "Thread id to kill: ", RESET(); my $id = ReadLine(0); $id =~ s/\s//g; if ($id =~ /^\d+$/) { Execute("KILL /*mytop*/ $id"); } else { print RED(), "-- invalid thread id --", RESET(); sleep 1; } ReadMode($RM_NOBLKRD); next; } ## K - kill based on a username if ($key =~ /K/) { ReadMode($RM_RESET); print RED(), "User to kill: ", RESET(); my $user = ReadLine(0); $user =~ s/\s//g; if ($user =~ /^\S+$/) { for my $pid (keys %ucache) { next unless $ucache{$pid} eq $user; Execute("KILL /*mytop*/ $pid"); select(undef, undef, undef, 0.2); } } else { print RED(), "-- invalid thread id --", RESET(); sleep 1; } ReadMode($RM_NOBLKRD); } ## f - full info if ($key =~ /f/) { ReadMode($RM_RESET); print RED(), "Full query for which thread id: ", RESET(); my $id = ReadLine(0); chomp $id; FullQueryInfo($id); ReadMode($RM_NOBLKRD); print RED(), "-- paused. press any key to resume or (e) to explain --", RESET(); my $key = ReadKey(0); if ($key eq 'e') { Explain($id); print RED(), "-- paused. press any key to resume --", RESET(); ReadKey(0); } next; } ## e - explain if ($key =~ /e/) { ReadMode($RM_RESET); print RED(), "Explain which query (id): ", RESET(); my $id = ReadLine(0); chomp $id; Explain($id); ReadMode($RM_NOBLKRD); print RED(), "-- paused. press any key to resume --", RESET(); ReadKey(0); next; } ## r - reset status counters if ($key =~ /r/) { Execute("FLUSH /*mytop*/ STATUS"); print RED(), "-- counters reset --", RESET(); sleep 1; next; } ## H - header toggle if ($key eq 'H') { if ($config{header}) { $config{header} = 0; } else { $config{header}++; } } ## # - magic debug key if ($key eq '#') { $debug = 1; } if ($key eq 'V') { GetShowVariables(); print RED(), "-- paused. press any key to resume --", RESET(); ReadKey(0); } ## M - switch to SHOW STATUS mode if ($key eq 'M') { $config{mode} = 'status'; } ## L - full queries toggle if ($key eq 'L') { if ($config{fullqueries}) { $config{fullqueries} = 0; print RED(), "-- full queries OFF --", RESET(); sleep 1; } else { $config{fullqueries} = 1; print RED(), "-- full queries ON --", RESET(); sleep 1; } } ## w - change columns width for the "User" and "Database" columns if ($key eq 'w') { ReadMode($RM_RESET); print RED(), "Width for the 'User' column (the actual value is ". $config{usercol_width}."): "; my $readWidth = ReadLine(0); chomp($readWidth); if (defined($readWidth) && $readWidth ne "") { if ($readWidth > 4 && $readWidth < 60) { $config{usercol_width} = $readWidth; } else { print RED(), "-- Invalid value ($readWidth), the previous value". "has been kept, press a key to resume --"; ReadKey(0); } } print RESET(), RED(), "Width for the 'DB' column (the actual value is ". $config{dbcol_width}."): ", RESET(); $readWidth = ReadLine(0); chomp($readWidth); if (defined($readWidth) && $readWidth ne "") { if ($readWidth > 2 && $readWidth < 60) { $config{dbcol_width} = $readWidth } else { print RED(), "-- Invalid value ($readWidth), the previous value". "has been kept, press a key to resume --", RESET(); ReadKey(0); } } undef $readWidth; ReadMode($RM_NOBLKRD); next; } ## a - progress column toggle (the column is only displayed ## if progress information are available from the processlist) if ($key eq 'a') { if ($config{hide_progress}) { $config{hide_progress} = 0; print RED(), "-- progress display ON --", RESET(); sleep 1; } else { $config{hide_progress} = 1; print RED(), "-- progress display OFF --", RESET(); sleep 1; } } } ReadMode($RM_RESET) unless $config{batchmode}; exit; ####################################################################### sub Clear() { if (not $WIN) { print "$CLEAR" } else { print "\n" x 90; ## dumb hack for now. Anyone know how to ## clear the screen in dos window on a Win32 ## system?? } } my $last_time; sub GetData() { ## Get terminal info my $now_time; %qcache = (); ## recycle memory %dbcache = (); my ($width, $height, $wpx, $hpx, $lines_left); if (not $config{batchmode}) { ($width, $height, $wpx, $hpx) = GetTerminalSize(); $lines_left = $height - 2; } else { $height = 999_999; ## I hope you don't have more than that! $lines_left = 999_999; $width = 80; } ## ## Header stuff. ## if ($config{header}) { my @recs = ""; if ($db_release > 4) { @recs = Hashes("SHOW /*mytop*/ GLOBAL STATUS"); } else { @recs = Hashes("SHOW /*mytop*/ STATUS"); } ## if the server died or we lost connectivity if (not @recs) { ReadMode($RM_RESET); exit 1; } ## get high-res or low-res time my ($t_delta); if ($HAS_TIME) { $now_time = Time::HiRes::gettimeofday(); } else { $now_time = time; } if ($last_time and $last_time != $now_time) { $t_delta = $now_time - $last_time; } %OLD_STATUS = %STATUS; # Set some status that may not exist in all versions $STATUS{Handler_tmp_write} = 0; $STATUS{Handler_tmp_update} = 0; $STATUS{Rows_tmp_read} = 0; foreach my $ref (@recs) { my $key = $ref->{Variable_name}; my $val = $ref->{Value}; $STATUS{$key} = $val; } ## Compute Key Cache Hit Stats $STATUS{Key_read_requests} ||= 1; ## can't divide by zero next my $cache_hits_percent = (100-($STATUS{Key_reads}/$STATUS{Key_read_requests}) * 100); $cache_hits_percent = sprintf("%2.2f",$cache_hits_percent); ## Query Cache info for <= Ver. 4.1 ## ## mysql> show status like 'qcache%'; ## +-------------------------+----------+ ## | Variable_name | Value | ## +-------------------------+----------+ ## | Qcache_queries_in_cache | 81 | ## | Qcache_inserts | 4961668 | ## | Qcache_hits | 1374170 | ## | Qcache_not_cached | 5656249 | ## | Qcache_free_memory | 33164800 | ## | Qcache_free_blocks | 2 | ## | Qcache_total_blocks | 168 | ## +-------------------------+----------+ ## ## Query Cache info for => Ver. 5.0 ## ## mysql> show status like 'qcache%'; ## +-------------------------+------------+ ## | Variable_name | Value | ## +-------------------------+------------+ ## | Qcache_free_blocks | 37652 | ## | Qcache_free_memory | 110289712 | ## | Qcache_hits | 1460617356 | ## | Qcache_inserts | 390563495 | ## | Qcache_lowmem_prunes | 6414172 | ## | Qcache_not_cached | 93002420 | ## | Qcache_queries_in_cache | 66558 | ## | Qcache_total_blocks | 192031 | ## +-------------------------+------------+ my $query_cache_hits = 0; my $query_cache_hits_per_sec = 0; my $now_query_cache_hits_per_sec = 0; if ($have_query_cache) { $query_cache_hits = $STATUS{Qcache_hits}; $query_cache_hits_per_sec = $STATUS{Qcache_hits} / $STATUS{Uptime}; if (defined $last_time and $last_time != $now_time) { my $q_delta = $STATUS{Qcache_hits} - $OLD_STATUS{Qcache_hits}; $now_query_cache_hits_per_sec = sprintf "%.2f", $q_delta / $t_delta; } } my $l; if (-e "/proc/loadavg") { ## To avoid warnings if the OS is not Linux open (my $fh, "<", "/proc/loadavg"); ## Only the first 3 values are interresting $l = join(" ", (split /\s+/, <$fh>)[0..2]); close $fh; } $last_time = $now_time; ## Server Uptime in meaningful terms... my $time = $STATUS{Uptime}; my ($d,$h,$m,$s) = (0, 0, 0, 0); $d += int($time / (60*60*24)); $time -= $d * (60*60*24); $h += int($time / (60*60)); $time -= $h * (60*60); $m += int($time / (60)); $time -= $m * (60); $s += int($time); my $uptime = sprintf("%d+%02d:%02d:%02d", $d, $h, $m, $s); ## Queries per second... my $avg_queries_per_sec = sprintf("%.2f", $STATUS{Questions} / $STATUS{Uptime}); my $num_queries = $STATUS{Questions}; my @t = localtime(time); my $current_time = sprintf "[%02d:%02d:%02d]", $t[2], $t[1], $t[0]; my $host_width = length("$server $db_version on $config{host}"); my $up_width = $width - $host_width - 1; Clear() unless $config{batchmode}; print RESET(); printf "%-.${host_width}s %${up_width}s\n", "$server $db_version on $config{host}", defined($l) ? "load ($l) up $uptime $current_time" : "up $uptime $current_time"; $lines_left--; printf " Queries: %-7s qps: %4.0f Slow: %7s Se/In/Up/De(%%): %02.0f/%02.0f/%02.0f/%02.0f\n", make_short( $STATUS{Questions} ), # q total $STATUS{Questions} / $STATUS{Uptime}, # qps, average make_short( $STATUS{Slow_queries} ), # slow # hmm. a Qcache hit is really a select and should be counted. 100 * ($STATUS{Com_select} + ($STATUS{Qcache_hits}||0) ) / $STATUS{Questions}, 100 * ($STATUS{Com_insert} + $STATUS{Com_replace} ) / $STATUS{Questions}, 100 * ($STATUS{Com_update} ) / $STATUS{Questions}, 100 * $STATUS{Com_delete} / $STATUS{Questions}; $lines_left--; if ($t_delta) { my $q_diff = ( $STATUS{Questions} - $OLD_STATUS{Questions} ); # print("q_diff: $STATUS{Questions} - $OLD_STATUS{Questions} / $t_delta = $q_diff\n"); printf(" Sorts: %6.0f qps now: %4.0f Slow qps: %3.1f Threads: %4.0f (%4.0f/%4.0f) %02.0f/%02.0f/%02.0f/%02.0f\n", ( $STATUS{Sort_rows} - $OLD_STATUS{Sort_rows} ) / $t_delta, ( $STATUS{Questions} - $OLD_STATUS{Questions} ) / $t_delta, ( # slow now (qps) ($STATUS{Slow_queries} ) ? ( $STATUS{Slow_queries} - $OLD_STATUS{Slow_queries} ) / $t_delta : 0 ), $STATUS{Threads_connected}, $STATUS{Threads_running}, $STATUS{Threads_cached}, (100 * ($STATUS{Com_select} - $OLD_STATUS{Com_select} + ($STATUS{Qcache_hits}||0) - ($OLD_STATUS{Qcache_hits}||0) ) ) / ($q_diff ), (100 * ($STATUS{Com_insert} - $OLD_STATUS{Com_insert} + $STATUS{Com_replace} - $OLD_STATUS{Com_replace} ) ) / ($q_diff ), (100 * ($STATUS{Com_update} - $OLD_STATUS{Com_update}) ) / ($q_diff ), (100 * ($STATUS{Com_delete} - $OLD_STATUS{Com_delete}) ) / ($q_diff ), ); } else { print "\n"; } $lines_left--; if ($have_query_cache and $STATUS{Com_select} and $query_cache_hits) { printf(" Cache Hits: %-5s Hits/s: %4.1f Hits now: %5.1f Ratio: ", make_short($STATUS{Qcache_hits}), # cache hits $STATUS{Qcache_hits} / $STATUS{Uptime}, # hits / sec ($t_delta) ? ($STATUS{Qcache_hits} - $OLD_STATUS{Qcache_hits}) / $t_delta : 0, # Hits Now ); my ($Ratio) = 100 * ($STATUS{Qcache_hits}) / ($STATUS{Qcache_hits} + $STATUS{Com_select} ); if ($HAS_COLOR) { print YELLOW() if ($Ratio < 80.0); print RED() if ($Ratio < 50.0); print MAGENTA() if ($Ratio < 20.0); } printf("%4.1f%% ",$Ratio); if ($HAS_COLOR) { print RESET(); } print " Ratio now: "; my ($Ratio_now) = ($t_delta) ? # ratio now 100 * ($STATUS{Qcache_hits} - $OLD_STATUS{Qcache_hits} ) / ( ($STATUS{Com_select} + $STATUS{Qcache_hits} - ($OLD_STATUS{Qcache_hits} + $OLD_STATUS{Com_select}) ) || 1) : 0; if ($HAS_COLOR) { print GREEN() if ($Ratio_now >= 80.0); print YELLOW() if ($Ratio_now < 80.0); print RED() if ($Ratio_now < 50.0); print MAGENTA() if ($Ratio_now < 20.0); } printf("%4.1f%% \n",$Ratio_now); if ($HAS_COLOR) { print RESET(); } $lines_left--; } if ($t_delta) { my $rows_read; if (defined($STATUS{Rows_read})) { $rows_read= $STATUS{Rows_read} - $OLD_STATUS{Rows_read}; } else { $rows_read= ($STATUS{Handler_read_first} + $STATUS{Handler_read_key} + $STATUS{Handler_read_next} + $STATUS{Handler_read_prev} + $STATUS{Handler_read_rnd} + $STATUS{Handler_read_rnd_next} - $OLD_STATUS{Handler_read_first} - $OLD_STATUS{Handler_read_key} - $OLD_STATUS{Handler_read_next} - $OLD_STATUS{Handler_read_prev} - $OLD_STATUS{Handler_read_rnd} - $OLD_STATUS{Handler_read_rnd_next}); } printf(" Handler: (R/W/U/D) %5d/%5d/%5d/%5d Tmp: R/W/U: %5d/%5d/%5d\n", $rows_read/$t_delta, ($STATUS{Handler_write} - $OLD_STATUS{Handler_write}) / $t_delta, ($STATUS{Handler_update} - $OLD_STATUS{Handler_update}) / $t_delta, ($STATUS{Handler_delete} - $OLD_STATUS{Handler_delete}) / $t_delta, ($STATUS{Rows_tmp_read} - $OLD_STATUS{Rows_tmp_read}) / $t_delta, ($STATUS{Handler_tmp_write} -$OLD_STATUS{Handler_tmp_write})/$t_delta, ($STATUS{Handler_tmp_update} - $OLD_STATUS{Handler_tmp_update})/$t_delta); } else { print "\n"; } $lines_left--; printf(" MyISAM Key Cache Efficiency: %2.1f%% Bps in/out: %5s/%5s ", $cache_hits_percent, make_short($STATUS{Bytes_received} / $STATUS{Uptime} ), make_short($STATUS{Bytes_sent} / $STATUS{Uptime})); printf("Now in/out: %5s/%5s", make_short(($STATUS{Bytes_received} - $OLD_STATUS{Bytes_received}) / $t_delta ), make_short(($STATUS{Bytes_sent} - $OLD_STATUS{Bytes_sent}) / $t_delta )) if ($t_delta); print "\n"; $lines_left--; my ($data) = Hashes('SHOW /*mytop*/ GLOBAL VARIABLES LIKE "read_only"'); if ($data->{Value} ne "OFF") { print RED() if ($HAS_COLOR) ; print " ReadOnly"; RESET() if ($HAS_COLOR); } ($data) = Hashes('SHOW /*mytop*/ SLAVE STATUS'); if (defined($data->{Master_Host})) { if (defined($data->{Seconds_Behind_Master})) { if ($HAS_COLOR) { print GREEN(); print YELLOW() if ($data->{Seconds_Behind_Master} > 60); print MAGENTA() if ($data->{Seconds_Behind_Master} > 360); } } print " Replication "; print "IO:$data->{Slave_IO_Running} "; print "SQL:$data->{Slave_SQL_Running} "; print RESET() if ($HAS_COLOR); if (defined($data->{Seconds_Behind_Master})) { if ($HAS_COLOR) { print GREEN(); print YELLOW() if ($data->{Seconds_Behind_Master} > 60); print MAGENTA() if ($data->{Seconds_Behind_Master} > 360); } print "Delay: $data->{Seconds_Behind_Master} sec."; } else { my $free = $width - 45; my $Err = substr $data->{Last_Error},0 ,$free; printf(" ERR: %-${free}s", $Err) if ($Err ne ""); } print WHITE() if ($HAS_COLOR); print "\n"; $lines_left--; } print "\n"; } if (not $config{batchmode} and not $config{header}) { Clear(); print RESET(); } ## ## Threads ## my $proc_cmd; ## Query used to fetch the processlist my $time_format = "6d"; if ($has_is_processlist == 1) { if ($has_time_ms == 1) { $time_format = "6.6s"; if ($has_progress == 1) { ## To have a computed value of "Progress" like the ## "SHOW PROCESSLIST" one, the Progress column of the query ## must be replaced by : ## "CASE WHEN Max_Stage < 2 THEN Progress ELSE ## (Stage-1)/Max_Stage*100+Progress/Max_Stage END AS Progress" $proc_cmd = "SELECT /*mytop*/ Id, User, Host, db, Command, CASE WHEN TIME > 10000 THEN Time ELSE ROUND(TIME_MS/1000, 1) END AS Time, State, Info, Progress, Stage, Max_Stage FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID != CONNECTION_ID();"; } else { $proc_cmd = "SELECT /*mytop*/ Id, User, Host, db, Command, CASE WHEN TIME > 10000 THEN Time ELSE ROUND(TIME_MS/1000, 1) END AS Time, State, Info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID != CONNECTION_ID();"; } } else { $proc_cmd = "SELECT /*mytop*/ Id, User, Host, db, Command, Time, State, Info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID != CONNECTION_ID();"; } } else { $proc_cmd = "SHOW /*mytop*/ FULL PROCESSLIST;"; } ## Minimal width values for columns with a dynamic width if ($config{usercol_width} < 4) { $config{usercol_width} = 4; } if ($config{dbcol_width} < 2) { $config{dbcol_width} = 2; } my @sz = (9, $config{usercol_width}, 15, $config{dbcol_width}, 6, 6, 8); if ($has_progress == 1 && !$config{hide_progress}) { push @sz, 5; }; my $used = scalar(@sz) + Sum(@sz); undef(@sz); ## If the terminal width <= 80, the state column will have a width of 6 ## chars else it will be between 6 and 15 depending on the terminal width my $state = $width <= 80 ? 6 : int(min(6+($width-80)/3, 15)); ## $free = The number of chars between the beginning of the "Query" ## column and the end of the line my $free = $width - $used - ($state - 6); my $format= "%9s %$config{usercol_width}s %15s %$config{dbcol_width}s %6s "; if ($has_progress == 1 && !$config{hide_progress}) { $format .= "%5s "; } $format .= "%6s %${state}s %-.${free}s\n"; my $format2 = "%9d %$config{usercol_width}.$config{usercol_width}s %15.15s %$config{dbcol_width}.$config{dbcol_width}s %${time_format} "; if ($has_progress == 1 && !$config{hide_progress}) { $format2 .= "%5.1f "; } $format2 .= "%6.6s %${state}.${state}s "; if ($config{fullqueries}) { $format2 .= "%-${free}s\n"; } else { $format2 .= "%-${free}.${free}s\n"; } print BOLD() if ($HAS_COLOR); if ($has_progress == 1 && !$config{hide_progress}) { printf $format, 'Id','User','Host/IP','DB','Time', '%', 'Cmd', 'State', 'Query'; } else { printf $format, 'Id','User','Host/IP','DB','Time', 'Cmd', 'State', 'Query'; } print RESET() if ($HAS_COLOR); ## Id User Host DB if ($has_progress == 1 && !$config{hide_progress}) { printf $format, '--','----','-------','--','----', '-', '---', '-----', '----------'; } else { printf $format, '--','----','-------','--','----', '---', '-----', '----------'; } $lines_left -= 2; my @data = Hashes($proc_cmd); foreach my $thread (@data) { last if not $lines_left; ## Drop Domain Name, unless it looks like an IP address. If ## it's an IP, we'll strip the port number because it's rarely ## interesting. my $is_ip = 0; if ($thread->{Host} =~ /^(\d{1,3}\.){3}(\d{1,3})(:\d+)?$/) { $thread->{Host} =~ s/:.*$//; $is_ip = 1; } else { $thread->{Host} =~ s/^([^.]+).*/$1/; } ## Otherwise, look up the IP (if resolve is set) and strip the ## name if ($is_ip and $config{resolve}) { $thread->{Host} =~ s/:\d+$//; my $host = gethostbyaddr(inet_aton($thread->{Host}), AF_INET); if ($host) { ## Only the hostname part of the DNS is kept $host =~ s/^([^.]+).*/$1/; } $thread->{Host} = $host; } ## Fix possible undefs $thread->{db} ||= ''; $thread->{Info} ||= ''; $thread->{Time} ||= 0 ; $thread->{Id} ||= 0 ; $thread->{User} ||= ''; $thread->{Command} ||= ''; $thread->{Host} ||= ''; $thread->{State} ||= ""; $thread->{Progress} ||= 0; ## Alter double hyphen comments so they don't break ## the query when newlines are removed - http://freshmeat.net/users/jerjones $thread->{Info} =~ s~\s--(.*)$~ /* $1 */ ~mg; ## Normalize spaces -- mostly disabled for now. This can ## break EXPLAIN if you try to explain a mangled query. It ## may be re-enabled later as an option. ## Replace newlines and carriage returns with a space $thread->{Info} =~ tr/\n\r/ /; ## Leading space removal $thread->{Info} =~ s/^\s*//; ## Strip non printing control symbols $thread->{Info} =~ tr/[[:cntrl:]]//; ## Collpase whitespace $thread->{Info} =~ s/\s+/ /g; ## Trailing space removal $thread->{Info} =~ s/\s$//; ## Put the first letter of the query uppercase for a better readability ## with long State strings $thread->{Info} = ucfirst $thread->{Info}; ## Stow it in the cache $qcache{$thread->{Id}} = $thread->{Info}; $dbcache{$thread->{Id}} = $thread->{db}; $ucache{$thread->{Id}} = $thread->{User}; ## If Progress information is available and a multi-stage query is ## running, the actual stage and the total number of stages of the ## thread are shown at the beginning of the State column if ($has_progress == 1 && $thread->{Max_Stage} && $thread->{Max_Stage} > 1) { $thread->{State} = $thread->{Stage}."/". $thread->{Max_Stage}." ".$thread->{State}; } } ## Sort by idle time (closest thing to CPU usage I can think of). my @sorted; if (not $config{sort}) { @sorted = sort { $a->{Time} <=> $b->{Time} } @data } else { @sorted = sort { $b->{Time} <=> $a->{Time} } @data } foreach my $thread (@sorted) { ## Check to see if we can skip out. ## We skip out if we know the given line doesn't match. next if (($thread->{Command} eq "Sleep") and (not $config{idle})); next if (($thread->{Command} eq "Binlog Dump") and (not $config{idle})); next if (($thread->{Command} eq "Daemon") and (not $config{idle})); next if ($thread->{User} !~ $config{filter_user}); next if ($thread->{db} !~ $config{filter_db}); next if ($thread->{Host} !~ $config{filter_host}); next if ($thread->{State} !~ $config{filter_state}); ## Otherwise, print. my $smInfo; if ($thread->{Info}) { if ($config{fullqueries}) { $smInfo = $thread->{Info}; if (length($smInfo) > $free) { $lines_left -= int((length($smInfo) - $free)/$width) + 1; } } else { $smInfo = substr $thread->{Info}, 0, $free; } } # if ($thread->{State}) # { # $smInfo = substr $thread->{State}, 0, $free; # } else { $smInfo = ""; } $lines_left--; if ($lines_left < 0) { print WHITE(), "-- Truncated query list -- "; last; } if ($HAS_COLOR) { print YELLOW() if $thread->{Command} eq 'Query'; print WHITE() if $thread->{Command} eq 'Sleep'; print GREEN() if $thread->{Command} eq 'Connect'; print BOLD() if $thread->{Time} > $config{slow}; print MAGENTA() if $thread->{Time} > $config{long}; } if ($has_progress == 1 && !$config{hide_progress}) { printf $format2, $thread->{Id}, $thread->{User}, $thread->{Host}, $thread->{db}, $thread->{Time}, $thread->{Progress}, $thread->{Command}, $thread->{State}, $smInfo; } else { printf $format2, $thread->{Id}, $thread->{User}, $thread->{Host}, $thread->{db}, $thread->{Time}, $thread->{Command}, $thread->{State}, $smInfo; } print RESET() if $HAS_COLOR; } } ########################################################################### my $questions; sub GetQPS() { my ($data) = Hashes('SHOW /*mytop*/ STATUS LIKE "Questions"'); my $num = $data->{Value}; if (not defined $questions) ## first time? { $questions = $num; return; } my $qps = $num - $questions; $questions = $num; print "$qps\n"; } ########################################################################### sub GetInnoDBStatus() { if (not $config{pager}) { if (not $config{pager} = my_which('less')) { $config{pager} = my_which('more'); } } my @data = Hashes("SHOW /*mytop*/ ENGINE INNODB STATUS"); open P, "|$config{pager}" or die "$!"; print keys %{$data[0]}; print $data[0]->{Status},"\n"; close P; } ########################################################################### my %prev_data; sub GetCmdSummary() { my ($width, $height, $wpx, $hpx, $lines_left); if (not $config{batchmode}) { ($width, $height, $wpx, $hpx) = GetTerminalSize(); $lines_left = $height - 2; } else { $height = 999_999; ## I hope you don't have more than that! $lines_left = 999_999; $width = 80; } ## Variable_name and Value pairs come back... my @data = Hashes("SHOW /*mytop*/ STATUS LIKE 'Com\\_%'"); my %cmd_data; my %cmd_delta; my %cmd_pct; my %cmd_delta_pct; my $total; my $delta_total; for my $item (@data) { next unless $item->{Value}; $item->{Variable_name} =~ s/^Com_//; $item->{Variable_name} =~ s/_/ /g; $cmd_data{$item->{Variable_name}} = $item->{Value}; $total += $item->{Value}; } ## Populate other stats for my $item (keys %cmd_data) { $cmd_delta{$item} = $cmd_data{$item} - ($prev_data{$item} || $cmd_data{$item} - 1); $delta_total += $cmd_delta{$item}; $cmd_pct{$item} = int(($cmd_data{$item} / $total) * 100); } for my $item (keys %cmd_data) { $cmd_delta_pct{$item} = int(($cmd_delta{$item} / $delta_total) * 100); } ## Display Clear() unless $config{batchmode}; print RESET(); printf "%18s %10s %4s | %5s %4s\n", 'Command', 'Total', 'Pct', 'Last', 'Pct'; printf "%18s %10s %4s | %5s %4s\n", '-------', '-----', '---', '----', '---'; $lines_left -= 2; for my $item (sort { $cmd_data{$b} <=> $cmd_data{$a} } keys %cmd_data) { printf "%18s %10d %4s | %5d %4s\n", $item, $cmd_data{$item}, $cmd_pct{$item} . "%", $cmd_delta{$item}, $cmd_delta_pct{$item} . "%"; last if not $lines_left; $lines_left -= 1; } %prev_data = %cmd_data; } ########################################################################### sub GetShowVariables() { if (not $config{pager}) { if (not $config{pager} = my_which('less')) { $config{pager} = my_which('more'); } } my @rows = Hashes("SHOW /*mytop*/ VARIABLES"); open P, "|$config{pager}" or die "$!"; for my $row (@rows) { my $name = $row->{Variable_name}; my $value = $row->{Value}; printf P "%32s: %s\n", $name, $value; } close P; } ########################################################################### sub GetShowStatus() { Clear() unless $config{batchmode}; my @rows = Hashes("SHOW /*mytop*/ STATUS"); printf "%32s %10s %10s Toggle idle with 'i'\n", 'Counter', 'Total', 'Change'; printf "%32s %10s %10s\n", '-------', '-----', '------'; for my $row (@rows) { my $name = $row->{Variable_name}; my $value = $row->{Value}; my $old = $statcache{$name}; my $delta = 0; next if $name =~ m/^Com_/; ## skip Com_ stats next if $value =~ m/^[^0-9]*$/; ## skip non-numeric ## TODO: if Qcache is off, we should skip Qcache_ values if ($HAS_COLOR and defined $old and $old =~ /^\d/) { if ($value > $old) { print YELLOW(); $delta = $value - $old; } elsif ($value < $old) { print RED(); $delta = $value - $old; } if (not $config{idle} and $value == $old) { ## filter unchanging stats, maybe print RESET(); next; } } printf "%32s: %10s %10s\n", $name, $value, $delta; print RESET() if $HAS_COLOR; $statcache{$name} = $value; } } ########################################################################### sub FullQueryInfo($) { my $id = shift; if (not exists $qcache{$id} or not defined $qcache{$id}) { print "*** Invalid id. ***\n"; return; } my $sql = $qcache{$id}; print $CLEAR; print "Thread $id was executing following query:\n\n"; print YELLOW(), $sql,"\n\n", RESET(); } ########################################################################### sub Explain($) { my $id = shift; if (not exists $qcache{$id} or not defined $qcache{$id}) { print "*** Invalid id. ***\n"; return; } my $sql = $qcache{$id}; my $db = $dbcache{$id}; Execute("USE /*mytop*/ $db"); my @info = Hashes("EXPLAIN $sql"); print $CLEAR; print "EXPLAIN $sql:\n\n"; PrintTable(@info); } ########################################################################### sub PrintTable(@) { my $cnt = 1; my @cols = qw(table type possible_keys key key_len ref rows Extra); for my $row (@_) { print "*** row $cnt ***\n"; for my $key (@cols) { my $val = $row->{$key} || 'NULL'; printf "%15s: %s\n", $key, $val; } $cnt++; } } ########################################################################### sub StringOrRegex($) { my $input = shift; chomp $input; if (defined $input) { ## regex, strip /.../ and use via qr// if ($input =~ m{^/} and $input =~ m{/$}) { $input =~ s{^/}{} if $config{filter_user}; $input =~ s{/$}{} if $config{filter_user}; $input = qr/$input/; } ## reset to match anything elsif ($input eq '') { $input = qr/.*/; } ## string, build a simple regex else { $input = '^' . $input . '$'; $input = qr/$input/; } } ## reset to match anything else { $input = qr/.*/; } return $input; } ########################################################################### sub cmd_l { ReadMode($RM_RESET); print RED(), "Seconds for long queries: ", RESET(); my $secs = ReadLine(0); if ($secs =~ /^\s*(\d+)/) { $config{long} = $1; if ($config{long} < 1) { $config{long} = 1; } } ReadMode($RM_NOBLKRD); } sub cmd_s { ReadMode($RM_RESET); print RED(), "Seconds of Delay: ", RESET(); my $secs = ReadLine(0); if ($secs =~ /^\s*(\d+)/) { $config{delay} = $1; if ($config{delay} < 1) { $config{delay} = 1; } } ReadMode($RM_NOBLKRD); } sub cmd_S { ReadMode($RM_RESET); print RED(), "Seconds for Slow queries: ", RESET(); my $secs = ReadLine(0); if ($secs =~ /^\s*(\d+)/) { $config{slow} = $1; if ($config{slow} < 1) { $config{slow} = 1; } } ReadMode($RM_NOBLKRD); } sub cmd_q { ReadMode($RM_RESET); print "\n"; exit; } sub trim($) { my $string = shift; $string =~ s/^\s+//; $string =~ s/\s+$//; return $string; } ########################################################################### sub PrintHelp() { my $help = qq[Help for mytop version $main::VERSION by Jeremy D. Zawodny <${YELLOW}Jeremy\@Zawodny.com${RESET}> with updates by Mark Grennan <${YELLOW}mark\@grennan.com${RESET}> and Jean Weisbuch <${YELLOW}jean\@phpnet.org${RESET}> ? - display this screen # - debug mode (toggle) c - command summary view (based on Com_* counters) C - turn color on and off d - show only a specific database e - explain the query that a thread is running E - display current replication error f - show full query info for a given thread F - unfilter the display h - show only a specifc host's connections H - toggle the mytop header i - toggle the display of idle (sleeping) threads I - show innodb status k - kill a thread p - pause the display l - change long running queries hightlighing m - switch [mode] to qps (queries/sec) scrolling view M - switch [mode] to status o - reverse the sort order (toggle) q - quit r - reset the status counters (via FLUSH STATUS on your server) R - change reverse IP lookup s - change the delay between screen updates S - change slow query hightlighting t - switch to thread view (default) u - show only a specific user V - show variables : - enter a command (not yet implemented) ! - Skip an error that has stopped replications (at your own risk) L - show full queries (do not strip to terminal width) w - adjust the User and DB columns width a - toggle the progress column Base version from ${GREEN}http://www.mysqlfanboy.com/mytop-3${RESET} This version comes as part of the ${GREEN}MariaDB${RESET} distribution. ]; print $help; } sub Sum(@) { my $sum; while (my $val = shift @_) { $sum += $val; } return $sum; } ## A useful routine from perlfaq sub commify($) { local $_ = shift; return 0 unless defined $_; 1 while s/^([-+]?\d+)(\d{3})/$1,$2/; return $_; } ## Compact numeric representation (10,000 -> 10.0k) sub make_short($) { my $number = shift; return commify($number) if $config{long_nums}; my $n = 0; while ($number > 1_025) { $number /= 1024; $n++; }; return sprintf "%.1f%s", $number, ('','k','M','G', 'T')[$n]; } ## Run a query and return the records has an array of hashes. sub Hashes($) { my $sql = shift; my @records; if (my $sth = Execute($sql)) { while (my $ref = $sth->fetchrow_hashref) { print "record\n" if $debug; push @records, $ref; } } return @records; } ## Execute an SQL query and return the statement handle. sub Execute($) { my $sql = shift; $sql =~ s/\n/ /sg; my $sth = $dbh->prepare($sql); if (not $sth) { ReadMode($RM_RESET); die $DBI::errstr; } my $ReturnCode = $sth->execute; if (not $ReturnCode) { if ($debug) { print "query failed\n"; sleep 10; } return undef; } return $sth; } #### #### my_which is used, because we can't assume that every system has the #### which command. my_which can take only one argument at a time. #### Return values: requested system command with the first found path, #### or undefined, if not found. #### sub my_which { my ($command) = @_; my (@paths, $path); return $command if (-f $command && -x $command); ## Check first if this is a source distribution, then if this binary distribution and last in the path push @paths, "./extra"; push @paths, $path_for_script; push @paths, split(':', $ENV{'PATH'}); foreach $path (@paths) { $path .= "/$command"; return $path if (-f $path && -x $path); } return undef(); } =pod =head1 SYNOPSIS B<mytop> [options] =head1 AVAILABILITY Base version from B<http://www.mysqlfanboy.com/mytop-3>. This version comes as part of the B<MariaDB> distribution. See B<https://mariadb.org/>. And older (the original) version B<mytop> is available from http://www.mysqlfanboy.com/mytop-3/ it B<might> also be on CPAN as well. =head1 REQUIREMENTS In order for B<mytop> to function properly, you must have the following: * Perl 5.005 or newer * Getopt::Long * DBI and DBD::MariaDB or DBD::mysql * Term::ReadKey from CPAN Most systems are likely to have all of those installed--except for Term::ReadKey. You will need to pick that up from the CPAN. You can pick up Term::ReadKey here: http://search.cpan.org/search?dist=TermReadKey And you obviously need access to a MariaDB server with the necessary security to run the I<SHOW PROCESSLIST> and I<SHOW STATUS> commands. If you are a Windows user, using ActiveState's Perl, you can use PPM (the Perl Package Manager) to install the MariaDB/MySQL and Term::ReadKey modules. =head2 Optional Color Support In additon, if you want a color B<mytop> (recommended), install Term::ANSIColor from the CPAN: http://search.cpan.org/search?dist=ANSIColor Once you do, B<mytop> will automatically use it. However, color is not yet working on Windows. Patches welcome. :-) =head2 Optional Hi-Res Timing If you want B<mytop> to provide more accurate real-time queries-per-second statistics, install the Time::HiRes module from CPAN. B<mytop> will automatically notice that you have it and use it rather than the standard timing mechanism. =head2 Platforms B<mytop> is known to work on: * Linux (2.2.x, 2.4.x) * FreeBSD (2.2, 3.x, 4.x) * Mac OS X * BSDI 4.x * Solaris 2.x * Windows NT 4.x (ActivePerl) If you find that it works on another platform, please let me know. Given that it is all Perl code, I expect it to be rather portable to Unix and Unix-like systems. Heck, it I<might> even work on Win32 systems. =head1 DESCRIPTION Help is always welcome in improving this software. Feel free to contact the author (see L<"AUTHOR"> below) with bug reports, fixes, suggestions, and comments. Additionally L<"BUGS"> will provide a list of things this software is not able to do yet. Having said that, here are the details on how it works and what you can do with it. =head2 The Basics B<mytop> was inspired by the system monitoring tool B<top>. I routinely use B<top> on Linux, FreeBSD, and Solaris. You are likely to notice features from each of them here. B<mytop> will connect to a MariaDB server and periodically run the I<SHOW PROCESSLIST> and I<SHOW STATUS> commands and attempt to summarize the information from them in a useful format. =head2 The Display The B<mytop> display screen is really broken into two parts. The top 4 lines (header) contain summary information about your MariaDB server. For example, you might see something like: MariaDB 10.5.0 on localhost load (3.89 3.86 3.91) up 7+23:56:31 [16:33:01] Queries: 353.4M qps: 531 Slow: 4.5k Se/In/Up/De(%): 87/02/02/00 Sorts: 2390 qps now: 651 Slow qps: 0.0 Threads: 11 ( 1/ 13) 88/01/03/00 Handler: (R/W/U/D) 82138/ 5884/ 20/ 1 Tmp: R/W/U: 13623/29501/ 79 MyISAM Key Cache Efficiency: 99.9% Bps in/out: 157.4k/ 2.2M Now in/out: 554.8k/ 2.6M The first line identifies the hostname of the server (localhost) and the version of MariaDB it is running. The right hand side shows the uptime of the MariaDB server process in days+hours:minutes:seconds format (much like FreeBSD's top) as well as the current time. The second line displays the total number of queries the server has processed, the average number of queries per second, the number of slow queries, and the percentage of Select, Insert, Update, and Delete queries. The third real-time values. First is the number of queries per second, then the number of slow queries, followed by query precentages (like on the previous line). And the fourth line displays key buffer efficiency (how often keys are read from the buffer rather than disk) and the number of bytes that MariaDB has sent and received, both over all and in the last cycle. You can toggle the header by hitting B<H> when running B<mytop>. The second part of the display lists as many threads as can fit on screen. By default they are sorted according to their idle time (least idle first). The display looks like: Id User Host Dbase Time Cmd Query or State -- ---- ---- ----- ---- --- -------------- 61 jzawodn localhost music 0 Query show processlist As you can see, the thread id, username, host from which the user is connecting, database to which the user is connected, number of seconds of idle time, the command the thread is executing, and the query info are all displayed. Often times the query info is what you are really interested in, so it is good to run B<mytop> in an xterm that is wider than the normal 80 columns if possible. The thread display color-codes the threads if you have installed color support. The current color scheme only works well in a window with a dark (like black) background. The colors are selected according to the C<Command> column of the display: Query - Yellow Sleep - White Connect - Green Slow - Bright Long - Magenta Those are purely arbitrary and will be customizable in a future release. If they annoy you just start B<mytop> with the B<--nocolor> flag or adjust your config file appropriately. =head2 Arguments B<mytop> handles long and short command-line arguments. Not all options have both long and short formats, however. The long arguments have two dashes `--'. Short arguments only have one '-'. =over =item B<-u> or B<--user> username Username to use when logging in to the MariaDB server. Default: ``B<root>''. =item B<-p> or B<--pass> or B<--password> I<password> Password to use when logging in to the MariaDB server. Default: none. WARNING: This is insecure as the password is visible for anyone. See B<--prompt> instead! =item B<-h> or B<--host> I<hostname>[B<:>I<port>] Hostname of the MariaDB server. The hostname may be followed by an option port number. Note that the port is specified separate from the host when using a config file. Default: ``B<localhost>''. =item B<--port> or B<-P> I<port> If you're running MariaDB on a non-standard port, use this to specify the port number. Default: B<3306>. =item B<-s> or B<--delay> I<seconds> How long between display refreshes. Default: B<5> =item B<-d> or B<--db> or B<--database> I<database> Use if you'd like B<mytop> to connect to a specific database by default. Default: none. =item B<-b> or B<--batch> or B<--batchmode> In batch mode, mytop runs only once, does not clear the screen, and places no limit on the number of lines it will print. This is suitable for running periodically (perhaps from B<cron>) to capture the information into a file for later viewing. You might use batch mode in a CGI script to occasionally display your MariaDB server status on the web. Default: unset. =item B<-S> or B<--socket> I</path/to/socket> If you're running B<mytop> on the same host as MariaDB/MySQL, you may wish to have it use the MariaDB/MySQL socket directly rather than a standard TCP/IP connection. If you do,just specify one. Note that specifying a socket will make B<mytop> ignore any host and/or port that you might have specified. If the socket does not exist (or the file specified is not a socket), this option will be ignored and B<mytop> will use the hostname and port number instead. Default: none. =item B<--header> or B<--noheader> Specify if you want the header to display or not. You can toggle this with the B<h> key while B<mytop> is running. Default: header. =item B<--color> or B<--nocolor> Specify if you want a color display. This has no effect if you don't have color support available. Default: If you have color support, B<mytop> will try color unless you tell it not to. =item B<-i> or B<--idle> or B<--noi> or B<--noidle> Specify if you want idle (sleeping) threads to appear in the list. If sleeping threads are omitted, the default sorting order is reversed so that the longest running queries appear at the top of the list. Default: idle. =item B<--prompt> or B<--noprompt> Specify if you want to be prompted to type in your database password. This provides a little bit more security since it not only prevents the password from viewable in a process list, but also doesn't require the password to be stored in plain text in your C<~/.mytop> config file. You will B<only> be prompted if a password has not been specified in your config file or through another command line option. Default: noprompt. =item B<--resolve> If you have skip-resolve set on MariaDB (to keep it from doing a reverse DNS lookup on each inbound connection), mytop can replace IP addresses with hostnames but toggling this option. Default: noresolve =item B<--long> or B<--nolong> For large numbers print all digits (e.g. 10.000) instead of using a more compact approximation (e.g. 10.0k). Default: nolong. =item B<-m> or B<--mode> I<mode> Specify initial mode B<qps>(queries/second), B<top>(overview), B<cmd>(command summary), B<innodb>(InnoDB status) or B<status>(). Default: B<top> =item B<--sort> or B<--nosort> Reverse sort order from ascending to descending using Idle time. Default: nosort. =back Command-line arguments will always take precedence over config file options. That happens because the config file is read I<BEFORE> the command-line arguments are applied. =head2 Config File Instead of always using bulky command-line parameters, you can also use a config files for the default value of your options. mytop will first read the [client] and [mytop] sections from your my.cnf files. After that it will read the (C<~/.mytop>) file from your home directory (if present). These are read I<before> any of your command-line arguments are processed, so your command-line arguments will override directives in the config file. Here is a sample config file C<~/.mytop> which implements the defaults described above. user=root pass= host=localhost db=test delay=5 port=3306 slow=10 socket= batchmode=0 header=1 color=1 idle=1 long=120 Using a config file will help to ensure that your database password isn't visible to users on the command-line. Just make sure that the permissions on C<~/.mytop> are such that others cannot read it (unless you want them to, of course). You may have white space on either side of the C<=> in lines of the config file. =head2 Shortcut Keys The following keys perform various actions while B<mytop> is running. Those which have not been implemented are listed as such. They are included to give the user idea of what is coming. =over =item B<?> Display help. =item B<c> Show "command counters" based on the Com_* values in SHOW STATUS. This is a new feature. Feedback welcome. =item B<C> Turn display color on and off. Default is on. =item B<d> Show only threads connected to a particular database. =item B<f> Given a thread id, display the entire query that thread was (and still may be) running. =item B<F> Disable all filtering (host, user, and db). =item B<h> Only show queries from a particular host. =item B<H> Toggle the header display. You can also specify either C<header=0> or C<header=1> in your config file to set the default behavior. =item B<i> Toggle the display of idle (sleeping) threads. If sleeping threads are filtered, the default sorting order is reversed so that the longest running queries appear at the top of the list. =item B<I> Switch to InnoDB Status mode. The output of "SHOW ENGINE INNODB STATUS" will be displayed every cycle. In a future version, this may actually summarize that data rather than producing raw output. =item B<k> Kill a thread. =item B<m> Toggle modes. Currently this switches from `top' mode to `qps' (Queries Per Second Mode). In this mode, mytop will write out one integer per second. The number written reflects the number of queries executed by the server in the previous one second interval. More modes may be added in the future. =item B<o> Reverse the default sort order. =item B<p> Pause display. =item B<q> Quit B<mytop> =item B<r> Reset the server's status counters via a I<FLUSH STATUS> command. =item B<R> Togle IP reverse lookup. Default is on. =item B<s> Change the sleep time (number of seconds between display refreshes). =item B<S> Set the number of seconds a query will need to run before it is considered old and will be highlighted. =item B<u> Show only threads owned by a giver user. =back The B<s> key has a command-line counterpart: B<-s>. The B<h> key has two command-line counterparts: B<--header> and B<--noheader>. =head1 BUGS This is more of a BUGS + WishList. Some performance information is not available when talking to a version 3.22.x MySQL server. Additional information (about threads mostly) was added to the output of I<SHOW STATUS> in MySQL 3.23.x and B<mytop> makes use of it. If the information is not available, you will simply see zeros where the real numbers should be. Simply running this program will increase your overall counters (such as the number of queries run). But you may or may not view that as a bug. B<mytop> consumes too much CPU time when running (verified on older versions of Linux and FreeBSD). It's likely a problem related to Term::ReadKey. I haven't had time to investigate yet, so B<mytop> now automatically lowers its priority when you run it. You may also think about running B<mytop> on another workstation instead of your database server. However, C<mytop> on Solaris does B<not> have this problem. Newer versions of Linux and FreeBSD seem to have fixed this. You can't specify the maximum number of threads to list. If you have many threads and a tall xterm, B<mytop> will always try to display as many as it can fit. The size of most of the columns in the display has a small maximum width. If you have fairly long database/user/host names the display may appear odd. I have no good idea as to how best to deal with that yet. Suggestions are welcome. It'd be nice if you could just add B<mytop> configuration directives in your C<my.cnf> file instead of having a separate config file. You should be able to specify the columns you'd like to see in the display and the order in which they appear. If you only have one username that connects to your database, it's probably not worth having the User column appear, for example. =head1 AUTHOR mytop was developed and is maintained by Jeremy D. Zawodny (Jeremy@Zawodny.com). If you wish to e-mail me regarding this software, B<PLEASE> subscribe to the B<mytop> mailing list. See the B<mytop> homepage for details. =head1 DISCLAIMER While I use this software in my job at Yahoo!, I am solely responsible for it. Yahoo! does not necessarily support this software in any way. It is merely a personal idea which happened to be very useful in my job. =head1 SEE ALSO Please check the MariaDB manual if you're not sure where some of the output of B<mytop> is coming from. =head1 COPYRIGHT Copyright (C) 2000-2010, Jeremy D. Zawodny. =head1 CREDITS Fix a bug. Add a feature. See your name here! Many thanks go to these fine folks: =over =item Jean Weisbuch (jean@phpnet.org) Added --fullqueries and --sort options, dynamic user and database columns width, reading of .my.cnf, state/progress column that can be disabled dynamically (when available) and various small fixes. =item Michael "Monty" Widenius <monty@askmonty.org> Fixed a couple of minor bugs that gave warnings on startup. Added support for MariaDB (show MariaDB at top and % done). Cut long server version names to display width. Made 'State' length dynamic. =item Mark Grennan (mark@grennan.com) www.linuxfangoy.com Added updates for MySQL 5.x. Added 'S' (slow) highlighting. Added 'C' to turn on and off Color. Added 'l' command to change color for long running queries. Fixed a few documentation issues. Monitors Slave status. Added color to Queue hit ratio. Added number of rows sorted per second. Created release 1.7. =item Sami Ahlroos (sami@avis-net.de) Suggested the idle/noidle stuff. =item Jan Willamowius (jan@janhh.shnet.org) Minor bug report. Documentation fixes. =item Alex Osipov (alex@acky.net) Long command-line options, Unix socket support. =item Stephane Enten (tuf@grolier.fr) Suggested batch mode. =item Richard Ellerbrock (richarde@eskom.co.za) Bug reports and usability suggestions. =item William R. Mattil (wrm@newton.irngtx.tel.gte.com) Bug report about empty passwords not working. =item Benjamin Pflugmann (philemon@spin.de) Suggested -P command-line flag as well as other changes. =item Justin Mecham <justin@aspect.net> Suggested setting $0 to `mytop'. =item Thorsten Kunz <thorsten.kunz@de.tiscali.com> Provided a fix for cases when we try remove the domain name from the display even if it is actually an IP address. =item Sasha Pachev <sasha@mysql.com> Provided the idea of real-time queries per second in the main display. =item Paul DuBois <paul@snake.net> Pointed out some option-handling bugs. =item Mike Wexler <mwexler@tias.com> Suggested that we don't mangle (normalize) whitespace in query info by default. =item Mark Zweifel <markez@yahoo-inc.com> Make the --idle command-line argument negatable. =item Axel Schwenke <schwenke@jobpilot.de> Noticed the incorrect formula for query cache hit percentages in version 1.2. =item Steven Roussey <sroussey@network54.com> Supplied a patch to help filter binary junk in queries so that terminals don't freak out. =item Jon R. Luini <falcon@chime.com> Supplied a patch that formed the basis for C<--prompt> support. Sean Leach <sleach@wiggum.com> submitted a similar patch. =item Yogish Baliga <baliga@yahoo-inc.com> Supplied a patch that formed the basis for C<--resolve> support. =item Per Andreas Buer <perbu@linpro.no> Supplied an excellent patch to tidy up the top display. This includes showing most values in short form, such as 10k rather than 10000. =back See the Changes file on the B<mytop> distribution page for more details on what has changed. =head1 LICENSE B<mytop> is licensed under the GNU General Public License version 2. For the full license information, please visit http://www.gnu.org/copyleft/gpl.html =cut __END__
Save
cmd:
run