Linux ip-172-31-23-120.eu-west-1.compute.internal 5.10.245-245.983.amzn2.x86_64 #1 SMP Wed Dec 3 00:02:10 UTC 2025 x86_64
Apache/2.4.65 () OpenSSL/1.0.2k-fips
: 172.31.23.120 | : 64.252.114.159
Cant Read [ /etc/named.conf ]
8.2.29
apache
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
S3
[ DIR ]
drwxr-xr-x
[
36.38
KB
-rwxr-xr-x
a2p
105.22
KB
-rwxr-xr-x
ab
55.43
KB
-rwxr-xr-x
ac
28.04
KB
-rwxr-xr-x
acpi_listen
15.27
KB
-rwxr-xr-x
addr2line
28.3
KB
-rwxr-xr-x
alias
29
B
-rwxr-xr-x
amazon-linux-extras
1.21
KB
-rwxr-xr-x
amazon-ssm-agent
18.88
MB
-rwxr-xr-x
apachetop
44.93
KB
-rwxr-xr-x
apropos
45.29
KB
-rwxr-xr-x
ar
57.07
KB
-rwxr-xr-x
arch
28.19
KB
-rwxr-xr-x
as
821.2
KB
-rwxr-xr-x
at
51.63
KB
-rwsr-xr-x
atq
51.63
KB
-rwsr-xr-x
atrm
51.63
KB
-rwsr-xr-x
attr
11.06
KB
-rwxr-xr-x
aulast
19.33
KB
-rwxr-xr-x
aulastlog
11.18
KB
-rwxr-xr-x
ausyscall
11.02
KB
-rwxr-xr-x
auvirt
31.79
KB
-rwxr-xr-x
awk
410.35
KB
-rwxr-xr-x
aws
818
B
-rwxr-xr-x
aws_completer
1.11
KB
-rwxr-xr-x
base64
36.38
KB
-rwxr-xr-x
basename
28.24
KB
-rwxr-xr-x
bash
914.04
KB
-rwxr-xr-x
bashbug
6.8
KB
-rwxr-xr-x
bashbug-64
6.8
KB
-rwxr-xr-x
batch
137
B
-rwxr-xr-x
bc
85.43
KB
-rwxr-xr-x
bg
26
B
-rwxr-xr-x
blkiomon
24.38
KB
-rwxr-xr-x
blkparse
46.26
KB
-rwxr-xr-x
blkrawverify
15.12
KB
-rwxr-xr-x
blktrace
38.18
KB
-rwxr-xr-x
bno_plot.py
3.38
KB
-rwxr-xr-x
bond2team
22.74
KB
-rwxr-xr-x
bootctl
64.92
KB
-rwxr-xr-x
btrace
891
B
-rwxr-xr-x
btrecord
16.2
KB
-rwxr-xr-x
btreplay
24.84
KB
-rwxr-xr-x
btt
75.67
KB
-rwxr-xr-x
bunzip2
31.81
KB
-rwxr-xr-x
busctl
382.99
KB
-rwxr-xr-x
bzcat
31.81
KB
-rwxr-xr-x
bzcmp
2.08
KB
-rwxr-xr-x
bzdiff
2.08
KB
-rwxr-xr-x
bzgrep
1.64
KB
-rwxr-xr-x
bzip2
31.81
KB
-rwxr-xr-x
bzip2recover
11.14
KB
-rwxr-xr-x
bzless
1.23
KB
-rwxr-xr-x
bzmore
1.23
KB
-rwxr-xr-x
c++filt
27.88
KB
-rwxr-xr-x
c2ph
35.75
KB
-rwxr-xr-x
ca-legacy
1.6
KB
-rwxr-xr-x
cal
53.05
KB
-rwxr-xr-x
captoinfo
76.36
KB
-rwxr-xr-x
cat
48.72
KB
-rwxr-xr-x
catchsegv
3.21
KB
-rwxr-xr-x
catman
36.59
KB
-rwxr-xr-x
cd
26
B
-rwxr-xr-x
centrino-decode
6.22
KB
-rwxr-xr-x
certutil
179.69
KB
-rwxr-xr-x
cfn-elect-cmd-leader
3.44
KB
-rwxr-xr-x
cfn-get-metadata
3.66
KB
-rwxr-xr-x
cfn-hup
8.52
KB
-rwxr-xr-x
cfn-init
7.64
KB
-rwxr-xr-x
cfn-send-cmd-event
4.13
KB
-rwxr-xr-x
cfn-send-cmd-result
4.44
KB
-rwxr-xr-x
cfn-signal
6.14
KB
-rwxr-xr-x
chacl
15.17
KB
-rwxr-xr-x
chage
62.65
KB
-rwsr-xr-x
chardetect
307
B
-rwxr-xr-x
chattr
11.18
KB
-rwxr-xr-x
chcon
61.38
KB
-rwxr-xr-x
chgrp
57.2
KB
-rwxr-xr-x
chmem
40.34
KB
-rwxr-xr-x
chmod
53.11
KB
-rwxr-xr-x
chown
61.27
KB
-rwxr-xr-x
chronyc
113.83
KB
-rwxr-xr-x
chrt
32.09
KB
-rwxr-xr-x
chvt
11.05
KB
-rwxr-xr-x
cifsiostat
48.44
KB
-rwxr-xr-x
cksum
32.26
KB
-rwxr-xr-x
clear
11.09
KB
-rwxr-xr-x
cloud-id
390
B
-rwxr-xr-x
cloud-init
394
B
-rwxr-xr-x
cloud-init-per
2.06
KB
-rwxr-xr-x
cmp
44.06
KB
-rwxr-xr-x
cmsutil
106.5
KB
-rwxr-xr-x
col
27.84
KB
-rwxr-xr-x
colcrt
11.2
KB
-rwxr-xr-x
colrm
23.73
KB
-rwxr-xr-x
column
40.37
KB
-rwxr-xr-x
comm
32.41
KB
-rwxr-xr-x
command
31
B
-rwxr-xr-x
consolehelper
6.86
KB
-rwxr-xr-x
coredumpctl
150.58
KB
-rwxr-xr-x
cp
143.44
KB
-rwxr-xr-x
cpio
142.94
KB
-rwxr-xr-x
cpupower
66.52
KB
-rwxr-xr-x
crlutil
122.91
KB
-rwxr-xr-x
crontab
56.16
KB
-rwsr-xr-x
csh
399.3
KB
-rwxr-xr-x
csplit
44.67
KB
-rwxr-xr-x
csslint-0.6
19.46
KB
-rwxr-xr-x
curl
246.33
KB
-rwxr-xr-x
cut
40.5
KB
-rwxr-xr-x
cvtsudoers
241.63
KB
-rwxr-xr-x
date
60.61
KB
-rwxr-xr-x
db_archive
11.13
KB
-rwxr-xr-x
db_checkpoint
11.2
KB
-rwxr-xr-x
db_deadlock
11.21
KB
-rwxr-xr-x
db_dump
15.23
KB
-rwxr-xr-x
db_dump185
64.32
KB
-rwxr-xr-x
db_hotbackup
15.25
KB
-rwxr-xr-x
db_load
27.41
KB
-rwxr-xr-x
db_log_verify
15.23
KB
-rwxr-xr-x
db_printlog
32.17
KB
-rwxr-xr-x
db_recover
11.23
KB
-rwxr-xr-x
db_replicate
15.24
KB
-rwxr-xr-x
db_stat
15.16
KB
-rwxr-xr-x
db_tuner
19.21
KB
-rwxr-xr-x
db_upgrade
11.14
KB
-rwxr-xr-x
db_verify
11.15
KB
-rwxr-xr-x
dbus-cleanup-sockets
10.92
KB
-rwxr-xr-x
dbus-daemon
217.98
KB
-rwxr-xr-x
dbus-monitor
23.04
KB
-rwxr-xr-x
dbus-run-session
14.89
KB
-rwxr-xr-x
dbus-send
26.98
KB
-rwxr-xr-x
dbus-test-tool
23.07
KB
-rwxr-xr-x
dbus-update-activation-environ...
14.95
KB
-rwxr-xr-x
dbus-uuidgen
10.91
KB
-rwxr-xr-x
dc
48.27
KB
-rwxr-xr-x
dd
69.03
KB
-rwxr-xr-x
deallocvt
11.06
KB
-rwxr-xr-x
debuginfo-install
7.88
KB
-rwxr-xr-x
delv
39.88
KB
-rwxr-xr-x
df
98.49
KB
-rwxr-xr-x
dgawk
489.88
KB
-rwxr-xr-x
diff
191.41
KB
-rwxr-xr-x
diff3
56.57
KB
-rwxr-xr-x
dig
142.85
KB
-rwxr-xr-x
dir
106.73
KB
-rwxr-xr-x
dircolors
36.32
KB
-rwxr-xr-x
dirname
28.2
KB
-rwxr-xr-x
dmesg
69.17
KB
-rwxr-xr-x
dnsdomainname
15.32
KB
-rwxr-xr-x
domainname
15.32
KB
-rwxr-xr-x
dracut
53.08
KB
-rwxr-xr-x
du
106.23
KB
-rwxr-xr-x
dumpkeys
77.39
KB
-rwxr-xr-x
dwp
2.61
MB
-rwxr-xr-x
easy_install
404
B
-rwxr-xr-x
easy_install-2.7
412
B
-rwxr-xr-x
easy_install-3.7
230
B
-rwxr-xr-x
ec2-metadata
7.34
KB
-rwxr-xr-x
echo
28.17
KB
-rwxr-xr-x
ed
48.6
KB
-rwxr-xr-x
egrep
290
B
-rwxr-xr-x
eject
53.03
KB
-rwxr-xr-x
elfedit
32.07
KB
-rwxr-xr-x
enable-ec2-spot-hibernation
235
B
-rwxr-xr-x
env
28.2
KB
-rwxr-xr-x
envsubst
35.94
KB
-rwxr-xr-x
eqn
144.47
KB
-rwxr-xr-x
ex
1.38
MB
-rwxr-xr-x
expand
32.38
KB
-rwxr-xr-x
expr
36.41
KB
-rwxr-xr-x
factor
93.2
KB
-rwxr-xr-x
fallocate
27.8
KB
-rwxr-xr-x
false
28.13
KB
-rwxr-xr-x
fc
26
B
-rwxr-xr-x
fg
26
B
-rwxr-xr-x
fgconsole
11.06
KB
-rwxr-xr-x
fgrep
290
B
-rwxr-xr-x
file
19.2
KB
-rwxr-xr-x
fincore
27.98
KB
-rwxr-xr-x
find
186.41
KB
-rwxr-xr-x
find-repos-of-install
4.27
KB
-rwxr-xr-x
find2perl
23.06
KB
-rwxr-xr-x
findmnt
62.13
KB
-rwxr-xr-x
fipscheck
15.27
KB
-rwxr-xr-x
fipshmac
11.21
KB
-rwxr-xr-x
flock
28.04
KB
-rwxr-xr-x
fmt
36.39
KB
-rwxr-xr-x
fold
32.34
KB
-rwxr-xr-x
free
19.23
KB
-rwxr-xr-x
funzip
35.28
KB
-rwxr-xr-x
gapplication
19.38
KB
-rwxr-xr-x
gawk
410.35
KB
-rwxr-xr-x
gdbm_dump
19.96
KB
-rwxr-xr-x
gdbm_load
24.26
KB
-rwxr-xr-x
gdbmtool
98.66
KB
-rwxr-xr-x
gdbus
40.17
KB
-rwxr-xr-x
gencat
27.48
KB
-rwxr-xr-x
genl-ctrl-list
11.2
KB
-rwxr-xr-x
geoiplookup
15.3
KB
-rwxr-xr-x
geoiplookup6
11.17
KB
-rwxr-xr-x
geoipupdate
11.14
KB
-rwxr-xr-x
geqn
144.47
KB
-rwxr-xr-x
getconf
25.41
KB
-rwxr-xr-x
getent
31.36
KB
-rwxr-xr-x
getfacl
24.2
KB
-rwxr-xr-x
getfattr
19.95
KB
-rwxr-xr-x
getkeycodes
11.07
KB
-rwxr-xr-x
getopt
15.29
KB
-rwxr-xr-x
getopts
31
B
-rwxr-xr-x
gettext
35.88
KB
-rwxr-xr-x
gettext.sh
4.52
KB
-rwxr-xr-x
gio
73.41
KB
-rwxr-xr-x
gio-querymodules-64
11.22
KB
-rwxr-xr-x
glib-compile-schemas
44.38
KB
-rwxr-xr-x
gmake
174.42
KB
-rwxr-xr-x
gneqn
271
B
-rwxr-xr-x
gnroff
3.31
KB
-rwxr-xr-x
gpasswd
76.29
KB
-rwsr-xr-x
gpg
712.44
KB
-rwxr-xr-x
gpg-agent
285.57
KB
-rwxr-xr-x
gpg-connect-agent
148.56
KB
-rwxr-xr-x
gpg-error
27.45
KB
-rwxr-xr-x
gpg-zip
3.23
KB
-rwxr-xr-x
gpg2
712.44
KB
-rwxr-xr-x
gpgconf
136.16
KB
-rwxr-xr-x
gpgparsemail
23.54
KB
-rwxr-xr-x
gpgsplit
48.73
KB
-rwxr-xr-x
gpgv
337.38
KB
-rwxr-xr-x
gpgv2
337.38
KB
-rwxr-xr-x
gpic
176.34
KB
-rwxr-xr-x
gprof
94.4
KB
-rwxr-xr-x
grep
155.14
KB
-rwxr-xr-x
groff
81.72
KB
-rwxr-xr-x
grops
140.97
KB
-rwxr-xr-x
grotty
98.64
KB
-rwxr-xr-x
groups
28.29
KB
-rwxr-xr-x
growpart
22.01
KB
-rwxr-xr-x
grub2-amazon-setup
3.62
KB
-rwxr-xr-x
grub2-editenv
459.21
KB
-rwxr-xr-x
grub2-file
1.07
MB
-rwxr-xr-x
grub2-fstest
1.31
MB
-rwxr-xr-x
grub2-glue-efi
278.1
KB
-rwxr-xr-x
grub2-kbdcomp
1.63
KB
-rwxr-xr-x
grub2-menulst2cfg
265.34
KB
-rwxr-xr-x
grub2-mkfont
306.8
KB
-rwxr-xr-x
grub2-mkimage
438.03
KB
-rwxr-xr-x
grub2-mklayout
284.19
KB
-rwxr-xr-x
grub2-mknetdir
501.23
KB
-rwxr-xr-x
grub2-mkpasswd-pbkdf2
286.57
KB
-rwxr-xr-x
grub2-mkrelpath
277.89
KB
-rwxr-xr-x
grub2-mkrescue
1.29
MB
-rwxr-xr-x
grub2-mkstandalone
609.47
KB
-rwxr-xr-x
grub2-mount
1005.66
KB
-rwxr-xr-x
grub2-render-label
1.07
MB
-rwxr-xr-x
grub2-script-check
310.72
KB
-rwxr-xr-x
grub2-syslinux2cfg
1
MB
-rwxr-xr-x
gsettings
23.8
KB
-rwxr-xr-x
gsoelim
32.53
KB
-rwxr-xr-x
gtar
334.02
KB
-rwxr-xr-x
gtbl
112.05
KB
-rwxr-xr-x
gtroff
509.13
KB
-rwxr-xr-x
gunzip
2.2
KB
-rwxr-xr-x
gzexe
5.79
KB
-rwxr-xr-x
gzip
94.27
KB
-rwxr-xr-x
h2ph
28.48
KB
-rwxr-xr-x
head
36.4
KB
-rwxr-xr-x
hexdump
48.48
KB
-rwxr-xr-x
hibagent
23.98
KB
-rwxr-xr-x
hibinit-agent
20.44
KB
-rwxr-xr-x
host
122.88
KB
-rwxr-xr-x
hostid
28.19
KB
-rwxr-xr-x
hostname
15.32
KB
-rwxr-xr-x
hostnamectl
302.03
KB
-rwxr-xr-x
htdbm
23.02
KB
-rwxr-xr-x
htdigest
14.98
KB
-rwxr-xr-x
htpasswd
19.02
KB
-rwxr-xr-x
httxt2dbm
10.91
KB
-rwxr-xr-x
hunspell
57.27
KB
-rwxr-xr-x
i386
15.16
KB
-rwxr-xr-x
iconv
64.36
KB
-rwxr-xr-x
id
36.4
KB
-rwxr-xr-x
idiag-socket-details
11.27
KB
-rwxr-xr-x
idn
32.36
KB
-rwxr-xr-x
igawk
3.11
KB
-rwxr-xr-x
info
265.16
KB
-rwxr-xr-x
infocmp
55.92
KB
-rwxr-xr-x
infokey
21.37
KB
-rwxr-xr-x
infotocap
76.36
KB
-rwxr-xr-x
install
135.45
KB
-rwxr-xr-x
ionice
23.77
KB
-rwxr-xr-x
iostat
60.72
KB
-rwxr-xr-x
ipcalc
14.98
KB
-rwxr-xr-x
ipcmk
28.01
KB
-rwxr-xr-x
ipcrm
27.79
KB
-rwxr-xr-x
ipcs
48.27
KB
-rwxr-xr-x
iptables-xml
87.59
KB
-rwxr-xr-x
isosize
23.77
KB
-rwxr-xr-x
jobs
28
B
-rwxr-xr-x
join
44.66
KB
-rwxr-xr-x
journalctl
513.86
KB
-rwxr-xr-x
jp.py
1.64
KB
-rwxr-xr-x
jp.py-2
1.64
KB
-rwxr-xr-x
jp.py-2.7
1.64
KB
-rwxr-xr-x
json_reformat
35.79
KB
-rwxr-xr-x
json_verify
27.42
KB
-rwxr-xr-x
jsonpointer
1.31
KB
-rwxr-xr-x
jsonschema
397
B
-rwxr-xr-x
kbd_mode
11.08
KB
-rwxr-xr-x
kbdinfo
11.09
KB
-rwxr-xr-x
kbdrate
11.13
KB
-rwxr-xr-x
kernel-install
4.7
KB
-rwxr-xr-x
keyctl
28.01
KB
-rwxr-xr-x
kill
32.14
KB
-rwxr-xr-x
killall
24.01
KB
-rwxr-xr-x
kmod
147.19
KB
-rwxr-xr-x
last
19.04
KB
-rwxr-xr-x
lastb
19.04
KB
-rwxr-xr-x
lastcomm
27.91
KB
-rwxr-xr-x
lastlog
19.07
KB
-rwxr-xr-x
lchfn
15.36
KB
-rwxr-xr-x
lchsh
15.32
KB
-rwxr-xr-x
ld
1.17
MB
-rwxr-xr-x
ld.bfd
1.17
MB
-rwxr-xr-x
ld.gold
2.81
MB
-rwxr-xr-x
ldd
5.31
KB
-rwxr-xr-x
less
150.44
KB
-rwxr-xr-x
lessecho
11.03
KB
-rwxr-xr-x
lesskey
16.57
KB
-rwxr-xr-x
lesspipe.sh
2.24
KB
-rwxr-xr-x
lexgrog
84.91
KB
-rwxr-xr-x
link
28.18
KB
-rwxr-xr-x
linux-boot-prober
5.85
KB
-rwxr-xr-x
linux32
15.16
KB
-rwxr-xr-x
linux64
15.16
KB
-rwxr-xr-x
ln
53.09
KB
-rwxr-xr-x
loadkeys
110.36
KB
-rwxr-xr-x
loadunimap
23.77
KB
-rwxr-xr-x
locale
45.42
KB
-rwxr-xr-x
localectl
310.15
KB
-rwxr-xr-x
localedef
309.67
KB
-rwxr-xr-x
locate
39.48
KB
-rwx--s--x
logger
45
KB
-rwxr-xr-x
login
36.28
KB
-rwxr-xr-x
loginctl
465.58
KB
-rwxr-xr-x
logname
28.18
KB
-rwxr-xr-x
logresolve
10.91
KB
-rwxr-xr-x
look
15.18
KB
-rwxr-xr-x
ls
106.73
KB
-rwxr-xr-x
lsattr
11.16
KB
-rwxr-xr-x
lsblk
77.82
KB
-rwxr-xr-x
lscpu
64.7
KB
-rwxr-xr-x
lsinitrd
6.26
KB
-rwxr-xr-x
lsipc
65.09
KB
-rwxr-xr-x
lslocks
32.52
KB
-rwxr-xr-x
lslogins
57.05
KB
-rwxr-xr-x
lsmcli
945
B
-rwxr-xr-x
lsmd
23.39
KB
-rwxr-xr-x
lsmem
40.31
KB
-rwxr-xr-x
lsns
36.28
KB
-rwxr-xr-x
lua
15.37
KB
-rwxr-xr-x
luac
114.93
KB
-rwxr-xr-x
lz4
113.19
KB
-rwxr-xr-x
lz4c
117.2
KB
-rwxr-xr-x
lz4cat
113.19
KB
-rwxr-xr-x
machinectl
509.85
KB
-rwxr-xr-x
mailq
234.05
KB
-rwxr-xr-x
mailq.postfix
234.05
KB
-rwxr-xr-x
make
174.42
KB
-rwxr-xr-x
makedb
24.54
KB
-rwxr-xr-x
man
100.28
KB
-rwxr-xr-x
mandb
118.05
KB
-rwxr-xr-x
manpath
32.38
KB
-rwxr-xr-x
mapscrn
19.71
KB
-rwxr-xr-x
mcookie
28.08
KB
-rwxr-xr-x
md5sum
40.45
KB
-rwxr-xr-x
mdig
44.1
KB
-rwxr-xr-x
mesg
10.9
KB
-rwxr-xr-x
mkdir
77.83
KB
-rwxr-xr-x
mkfifo
57.49
KB
-rwxr-xr-x
mkinitrd
2.94
KB
-rwxr-xr-x
mknod
61.49
KB
-rwxr-xr-x
mktemp
36.53
KB
-rwxr-xr-x
modutil
161.73
KB
-rwxr-xr-x
more
40.07
KB
-rwxr-xr-x
mount
35.11
KB
-rwsr-xr-x
mountpoint
15.23
KB
-rwxr-xr-x
mpstat
52.45
KB
-rwxr-xr-x
msgattrib
23.36
KB
-rwxr-xr-x
msgcat
23.34
KB
-rwxr-xr-x
msgcmp
23.59
KB
-rwxr-xr-x
msgcomm
19.32
KB
-rwxr-xr-x
msgconv
19.3
KB
-rwxr-xr-x
msgen
19.3
KB
-rwxr-xr-x
msgexec
15.34
KB
-rwxr-xr-x
msgfilter
27.58
KB
-rwxr-xr-x
msgfmt
77.07
KB
-rwxr-xr-x
msggrep
35.97
KB
-rwxr-xr-x
msghack
12.45
KB
-rwxr-xr-x
msginit
44.38
KB
-rwxr-xr-x
msgmerge
52.59
KB
-rwxr-xr-x
msgunfmt
31.7
KB
-rwxr-xr-x
msguniq
19.32
KB
-rwxr-xr-x
mv
123.19
KB
-rwxr-xr-x
namei
27.91
KB
-rwxr-xr-x
nano
221.84
KB
-rwxr-xr-x
needs-restarting
8.15
KB
-rwxr-xr-x
neqn
271
B
-rwxr-xr-x
netstat
149.77
KB
-rwxr-xr-x
nettle-hash
11.24
KB
-rwxr-xr-x
nettle-lfib-stream
6.95
KB
-rwxr-xr-x
newaliases
234.05
KB
-rwxr-xr-x
newaliases.postfix
234.05
KB
-rwxr-xr-x
newgrp
36.73
KB
-rwsr-xr-x
nf-ct-add
11.7
KB
-rwxr-xr-x
nf-ct-list
15.73
KB
-rwxr-xr-x
nf-exp-add
16.11
KB
-rwxr-xr-x
nf-exp-delete
15.88
KB
-rwxr-xr-x
nf-exp-list
11.73
KB
-rwxr-xr-x
nf-log
11.15
KB
-rwxr-xr-x
nf-monitor
11.08
KB
-rwxr-xr-x
nf-queue
11.16
KB
-rwxr-xr-x
nfsiostat-sysstat
48.46
KB
-rwxr-xr-x
ngettext
35.9
KB
-rwxr-xr-x
nice
32.2
KB
-rwxr-xr-x
nisdomainname
15.32
KB
-rwxr-xr-x
nl
36.47
KB
-rwxr-xr-x
nl-addr-add
11.57
KB
-rwxr-xr-x
nl-addr-delete
11.66
KB
-rwxr-xr-x
nl-addr-list
15.8
KB
-rwxr-xr-x
nl-class-add
11.59
KB
-rwxr-xr-x
nl-class-delete
11.47
KB
-rwxr-xr-x
nl-class-list
11.4
KB
-rwxr-xr-x
nl-classid-lookup
11.21
KB
-rwxr-xr-x
nl-cls-add
11.68
KB
-rwxr-xr-x
nl-cls-delete
11.58
KB
-rwxr-xr-x
nl-cls-list
11.5
KB
-rwxr-xr-x
nl-fib-lookup
11.3
KB
-rwxr-xr-x
nl-link-enslave
6.96
KB
-rwxr-xr-x
nl-link-ifindex2name
6.97
KB
-rwxr-xr-x
nl-link-list
11.42
KB
-rwxr-xr-x
nl-link-name2ifindex
6.96
KB
-rwxr-xr-x
nl-link-release
6.96
KB
-rwxr-xr-x
nl-link-set
11.54
KB
-rwxr-xr-x
nl-link-stats
11.3
KB
-rwxr-xr-x
nl-list-caches
10.98
KB
-rwxr-xr-x
nl-list-sockets
6.97
KB
-rwxr-xr-x
nl-monitor
11.1
KB
-rwxr-xr-x
nl-neigh-add
11.44
KB
-rwxr-xr-x
nl-neigh-delete
11.5
KB
-rwxr-xr-x
nl-neigh-list
11.39
KB
-rwxr-xr-x
nl-neightbl-list
11.16
KB
-rwxr-xr-x
nl-pktloc-lookup
11.25
KB
-rwxr-xr-x
nl-qdisc-add
11.5
KB
-rwxr-xr-x
nl-qdisc-delete
11.47
KB
-rwxr-xr-x
nl-qdisc-list
11.55
KB
-rwxr-xr-x
nl-route-add
11.67
KB
-rwxr-xr-x
nl-route-delete
15.79
KB
-rwxr-xr-x
nl-route-get
11.09
KB
-rwxr-xr-x
nl-route-list
11.66
KB
-rwxr-xr-x
nl-rule-list
11.2
KB
-rwxr-xr-x
nl-tctree-list
11.42
KB
-rwxr-xr-x
nl-util-addr
6.95
KB
-rwxr-xr-x
nm
41.34
KB
-rwxr-xr-x
nohup
32.33
KB
-rwxr-xr-x
nproc
28.24
KB
-rwxr-xr-x
nroff
3.31
KB
-rwxr-xr-x
nsenter
32.31
KB
-rwxr-xr-x
nslookup
126.82
KB
-rwxr-xr-x
nss-policy-check
15.17
KB
-rwxr-xr-x
nsupdate
65.13
KB
-rwxr-xr-x
numfmt
64.64
KB
-rwxr-xr-x
objcopy
223.55
KB
-rwxr-xr-x
objdump
366.2
KB
-rwxr-xr-x
od
64.72
KB
-rwxr-xr-x
oldfind
178.23
KB
-rwxr-xr-x
on_ac_power
1.47
KB
-rwxr-xr-x
open
19.39
KB
-rwxr-xr-x
openssl
558.21
KB
-rwxr-xr-x
openvt
19.39
KB
-rwxr-xr-x
os-prober
5.51
KB
-rwxr-xr-x
p11-kit
32.13
KB
-rwxr-xr-x
package-cleanup
17.39
KB
-rwxr-xr-x
passwd
27.13
KB
-rwsr-xr-x
paste
32.24
KB
-rwxr-xr-x
pathchk
28.2
KB
-rwxr-xr-x
peekfd
11.11
KB
-rwxr-xr-x
perl
11.05
KB
-rwxr-xr-x
perl5.16.3
11.05
KB
-rwxr-xr-x
perlbug
43.61
KB
-rwxr-xr-x
perldoc
203
B
-rwxr-xr-x
perlthanks
43.61
KB
-rwxr-xr-x
pgawk
410.34
KB
-rwxr-xr-x
pgrep
27.58
KB
-rwxr-xr-x
phar
14.88
KB
-rwxr-xr-x
phar.phar
14.88
KB
-rwxr-xr-x
php
6.08
MB
-rwxr-xr-x
php-cgi
6.07
MB
-rwxr-xr-x
phpize
4.65
KB
-rwxr-xr-x
pic
176.34
KB
-rwxr-xr-x
piconv
7.99
KB
-rwxr-xr-x
pidstat
64.81
KB
-rwxr-xr-x
pinentry
2.54
KB
-rwxr-xr-x
pinentry-curses
49.12
KB
-rwxr-xr-x
ping
60.52
KB
-rwxr-xr-x
ping6
60.52
KB
-rwxr-xr-x
pinky
36.48
KB
-rwxr-xr-x
pip-3
648
B
-rwxr-xr-x
pip-3.7
648
B
-rwxr-xr-x
pip3
648
B
-rwxr-xr-x
pip3.7
648
B
-rwxr-xr-x
pk12util
99.09
KB
-rwxr-xr-x
pkcs1-conv
15.44
KB
-rwxr-xr-x
pkg-config
44.3
KB
-rwxr-xr-x
pkill
27.58
KB
-rwxr-xr-x
pl2pm
4.42
KB
-rwxr-xr-x
pldd
18.91
KB
-rwxr-xr-x
plymouth
39.69
KB
-rwxr-xr-x
pm-is-supported
983
B
-rwxr-xr-x
pmap
27.51
KB
-rwxr-xr-x
pod2html
4
KB
-rwxr-xr-x
pod2man
13.26
KB
-rwxr-xr-x
pod2text
10.75
KB
-rwxr-xr-x
pod2usage
3.67
KB
-rwxr-xr-x
post-grohtml
183.69
KB
-rwxr-xr-x
powernow-k8-decode
6.23
KB
-rwxr-xr-x
pr
65.02
KB
-rwxr-xr-x
pre-grohtml
86.29
KB
-rwxr-xr-x
preconv
40.77
KB
-rwxr-xr-x
printenv
28.17
KB
-rwxr-xr-x
printf
48.48
KB
-rwxr-xr-x
prlimit
32.45
KB
-rwxr-xr-x
prtstat
15.13
KB
-rwxr-xr-x
ps
97.82
KB
-rwxr-xr-x
psed
52.08
KB
-rwxr-xr-x
psfaddtable
19.38
KB
-rwxr-xr-x
psfgettable
19.38
KB
-rwxr-xr-x
psfstriptable
19.38
KB
-rwxr-xr-x
psfxtable
19.38
KB
-rwxr-xr-x
pstree
27.76
KB
-rwxr-xr-x
pstree.x11
27.76
KB
-rwxr-xr-x
pstruct
35.75
KB
-rwxr-xr-x
ptx
64.98
KB
-rwxr-xr-x
pwd
32.34
KB
-rwxr-xr-x
pwdx
11.16
KB
-rwxr-xr-x
pwmake
11.04
KB
-rwxr-xr-x
pwscore
11.03
KB
-rwxr-xr-x
pydoc
78
B
-rwxr-xr-x
pydoc3
78
B
-rwxr-xr-x
pydoc3.7
78
B
-rwxr-xr-x
pyrsa-decrypt-2
382
B
-rwxr-xr-x
pyrsa-decrypt-bigfile-2
398
B
-rwxr-xr-x
pyrsa-encrypt-2
382
B
-rwxr-xr-x
pyrsa-encrypt-bigfile-2
398
B
-rwxr-xr-x
pyrsa-keygen-2
380
B
-rwxr-xr-x
pyrsa-priv2pub-2
384
B
-rwxr-xr-x
pyrsa-sign-2
376
B
-rwxr-xr-x
pyrsa-verify-2
380
B
-rwxr-xr-x
pystache
306
B
-rwxr-xr-x
pystache-3
387
B
-rwxr-xr-x
pystache-test
316
B
-rwxr-xr-x
pystache-test-3
397
B
-rwxr-xr-x
python
6.88
KB
-rwxr-xr-x
python-config
1.8
KB
-rwxr-xr-x
python2
6.88
KB
-rwxr-xr-x
python2-config
1.8
KB
-rwxr-xr-x
python2.7
6.88
KB
-rwxr-xr-x
python2.7-config
1.8
KB
-rwxr-xr-x
python3
6.88
KB
-rwxr-xr-x
python3.7
6.88
KB
-rwxr-xr-x
python3.7m
6.88
KB
-rwxr-xr-x
pyvenv
435
B
-rwxr-xr-x
pyvenv-3.7
435
B
-rwxr-xr-x
quota
83.24
KB
-rwxr-xr-x
quotasync
66.59
KB
-rwxr-xr-x
ranlib
57.08
KB
-rwxr-xr-x
raw
15.2
KB
-rwxr-xr-x
rdate
10.22
KB
-rwxr-xr-x
read
28
B
-rwxr-xr-x
readelf
538.29
KB
-rwxr-xr-x
readlink
40.73
KB
-rwxr-xr-x
realpath
57.13
KB
-rwxr-xr-x
recode-sr-latin
15.19
KB
-rwxr-xr-x
red
89
B
-rwxr-xr-x
rename
15.22
KB
-rwxr-xr-x
renice
11.13
KB
-rwxr-xr-x
repo-graph
4.09
KB
-rwxr-xr-x
repo-rss
10.07
KB
-rwxr-xr-x
repoclosure
11.42
KB
-rwxr-xr-x
repodiff
13.97
KB
-rwxr-xr-x
repomanage
6.88
KB
-rwxr-xr-x
repoquery
55.68
KB
-rwxr-xr-x
reposync
14.12
KB
-rwxr-xr-x
repotrack
8.53
KB
-rwxr-xr-x
reset
23.63
KB
-rwxr-xr-x
resizecons
19.51
KB
-rwxr-xr-x
rev
11.16
KB
-rwxr-xr-x
rm
57.29
KB
-rwxr-xr-x
rmail
262
B
-rwxr-xr-x
rmail.postfix
262
B
-rwxr-xr-x
rmdir
40.35
KB
-rwxr-xr-x
rnano
221.84
KB
-rwxr-xr-x
rngtest
15.81
KB
-rwxr-xr-x
rpcgen
92.98
KB
-rwxr-xr-x
rpm
15.66
KB
-rwxr-xr-x
rpm2cpio
11.05
KB
-rwxr-xr-x
rpmdb
11.65
KB
-rwxr-xr-x
rpmkeys
11.66
KB
-rwxr-xr-x
rpmquery
15.66
KB
-rwxr-xr-x
rpmverify
15.66
KB
-rwxr-xr-x
rst2html
593
B
-rwxr-xr-x
rst2html-3
597
B
-rwxr-xr-x
rst2html-3.7
597
B
-rwxr-xr-x
rst2html4-3
717
B
-rwxr-xr-x
rst2html4-3.7
717
B
-rwxr-xr-x
rst2html5-3
1.12
KB
-rwxr-xr-x
rst2html5-3.7
1.12
KB
-rwxr-xr-x
rst2latex
790
B
-rwxr-xr-x
rst2latex-3
794
B
-rwxr-xr-x
rst2latex-3.7
794
B
-rwxr-xr-x
rst2man
599
B
-rwxr-xr-x
rst2man-3
603
B
-rwxr-xr-x
rst2man-3.7
603
B
-rwxr-xr-x
rst2odt
763
B
-rwxr-xr-x
rst2odt-3
767
B
-rwxr-xr-x
rst2odt-3.7
767
B
-rwxr-xr-x
rst2odt_prepstyles
1.66
KB
-rwxr-xr-x
rst2odt_prepstyles-3
1.66
KB
-rwxr-xr-x
rst2odt_prepstyles-3.7
1.66
KB
-rwxr-xr-x
rst2pseudoxml
600
B
-rwxr-xr-x
rst2pseudoxml-3
604
B
-rwxr-xr-x
rst2pseudoxml-3.7
604
B
-rwxr-xr-x
rst2s5
636
B
-rwxr-xr-x
rst2s5-3
640
B
-rwxr-xr-x
rst2s5-3.7
640
B
-rwxr-xr-x
rst2xetex
785
B
-rwxr-xr-x
rst2xetex-3
874
B
-rwxr-xr-x
rst2xetex-3.7
874
B
-rwxr-xr-x
rst2xml
601
B
-rwxr-xr-x
rst2xml-3
605
B
-rwxr-xr-x
rst2xml-3.7
605
B
-rwxr-xr-x
rstpep2html
669
B
-rwxr-xr-x
rstpep2html-3
673
B
-rwxr-xr-x
rstpep2html-3.7
673
B
-rwxr-xr-x
rsync
476.29
KB
-rwxr-xr-x
rsyslog-recover-qi.pl
5.96
KB
-rwxr-xr-x
run-parts
2.04
KB
-rwxr-xr-x
runcon
32.34
KB
-rwxr-xr-x
rvi
1.38
MB
-rwxr-xr-x
rview
1.38
MB
-rwxr-xr-x
rvim
3.29
MB
-rwxr-xr-x
s2p
52.08
KB
-rwxr-xr-x
s3cmd
148.18
KB
-rwxr-xr-x
sadf
168.4
KB
-rwxr-xr-x
sar
95.31
KB
-rwxr-xr-x
scl
19.34
KB
-rwxr-xr-x
scl_enabled
258
B
-rwxr-xr-x
scl_source
1.83
KB
-rwxr-xr-x
scp
85.12
KB
-rwxr-xr-x
screen
444.15
KB
-rwxr-sr-x
script
31.88
KB
-rwxr-xr-x
scriptreplay
23.79
KB
-rwxr-xr-x
sdiff
48.34
KB
-rwxr-xr-x
secon
23.98
KB
-rwxr-xr-x
sed
74.18
KB
-rwxr-xr-x
seq
44.39
KB
-rwxr-xr-x
setarch
15.16
KB
-rwxr-xr-x
setfacl
36.65
KB
-rwxr-xr-x
setfattr
15.62
KB
-rwxr-xr-x
setfont
40.3
KB
-rwxr-xr-x
setkeycodes
11.07
KB
-rwxr-xr-x
setleds
11.09
KB
-rwxr-xr-x
setmetamode
11.14
KB
-rwxr-xr-x
setpriv
36.01
KB
-rwxr-xr-x
setserial
20.44
KB
-rwxr-xr-x
setsid
11.16
KB
-rwxr-xr-x
setterm
40.03
KB
-rwxr-xr-x
setup
6.86
KB
-rwxr-xr-x
setup-nsssysinit
1.5
KB
-rwxr-xr-x
setup-nsssysinit.sh
1.5
KB
-rwxr-xr-x
setvtrgb
11.25
KB
-rwxr-xr-x
sexp-conv
23.53
KB
-rwxr-xr-x
sftp
133.9
KB
-rwxr-xr-x
sg
36.73
KB
-rwsr-xr-x
sh
914.04
KB
-rwxr-xr-x
sha1sum
36.48
KB
-rwxr-xr-x
sha224sum
36.54
KB
-rwxr-xr-x
sha256sum
36.54
KB
-rwxr-xr-x
sha384sum
36.52
KB
-rwxr-xr-x
sha512sum
36.52
KB
-rwxr-xr-x
show-changed-rco
10.13
KB
-rwxr-xr-x
show-installed
16.18
KB
-rwxr-xr-x
showconsolefont
15.37
KB
-rwxr-xr-x
showkey
15.14
KB
-rwxr-xr-x
shred
52.84
KB
-rwxr-xr-x
shuf
49.05
KB
-rwxr-xr-x
signver
98.48
KB
-rwxr-xr-x
sim_lsmplugin
1.22
KB
-rwxr-xr-x
simc_lsmplugin
105.73
KB
-rwxr-xr-x
size
28.23
KB
-rwxr-xr-x
skill
23.52
KB
-rwxr-xr-x
slabtop
19.42
KB
-rwxr-xr-x
sleep
28.28
KB
-rwxr-xr-x
slogin
736.38
KB
-rwxr-xr-x
snice
23.52
KB
-rwxr-xr-x
soelim
32.53
KB
-rwxr-xr-x
sort
110.8
KB
-rwxr-xr-x
sotruss
4.18
KB
-rwxr-xr-x
splain
18.03
KB
-rwxr-xr-x
split
65.39
KB
-rwxr-xr-x
sprof
28.05
KB
-rwxr-xr-x
sqlite3
54.85
KB
-rwxr-xr-x
sscg
69.34
KB
-rwxr-xr-x
ssh
736.38
KB
-rwxr-xr-x
ssh-add
340.39
KB
-rwxr-xr-x
ssh-agent
365.09
KB
---x--s--x
ssh-copy-id
10.22
KB
-rwxr-xr-x
ssh-keygen
401.11
KB
-rwxr-xr-x
ssh-keyscan
422.58
KB
-rwxr-xr-x
ssltap
118.31
KB
-rwxr-xr-x
ssm-agent-worker
33.81
MB
-rwxr-xr-x
ssm-cli
26.34
MB
-rwxr-xr-x
ssm-document-worker
31.28
MB
-rwxr-xr-x
ssm-session-logger
12.65
MB
-rwxr-xr-x
ssm-session-worker
25.39
MB
-rwxr-xr-x
stap-merge
10.89
KB
-rwxr-xr-x
stap-report
4.8
KB
-rwxr-xr-x
stapbpf
204.53
KB
-rwxr-xr-x
stapdyn
195.55
KB
-rwxr-xr-x
staprun
207.38
KB
---s--x---
stapsh
23.11
KB
-rwxr-xr-x
stat
73.09
KB
-rwxr-xr-x
stdbuf
60.8
KB
-rwxr-xr-x
strace
1
MB
-rwxr-xr-x
strace-log-merge
1.28
KB
-rwxr-xr-x
strings
28.35
KB
-rwxr-xr-x
strip
223.55
KB
-rwxr-xr-x
stty
64.53
KB
-rwxr-xr-x
su
31.28
KB
-rwsr-xr-x
sudo
147.8
KB
---s--x--x
sudoedit
147.8
KB
---s--x--x
sudoreplay
56.02
KB
---x--x--x
sum
36.45
KB
-rwxr-xr-x
sync
28.19
KB
-rwxr-xr-x
systemctl
676.78
KB
-rwxr-xr-x
systemd-analyze
1.45
MB
-rwxr-xr-x
systemd-ask-password
56.31
KB
-rwxr-xr-x
systemd-cat
39.93
KB
-rwxr-xr-x
systemd-cgls
310.24
KB
-rwxr-xr-x
systemd-cgtop
76.99
KB
-rwxr-xr-x
systemd-coredumpctl
150.58
KB
-rwxr-xr-x
systemd-delta
72.92
KB
-rwxr-xr-x
systemd-detect-virt
39.9
KB
-rwxr-xr-x
systemd-escape
44.13
KB
-rwxr-xr-x
systemd-firstboot
93.45
KB
-rwxr-xr-x
systemd-hwdb
81.23
KB
-rwxr-xr-x
systemd-inhibit
289.72
KB
-rwxr-xr-x
systemd-loginctl
465.58
KB
-rwxr-xr-x
systemd-machine-id-setup
48.2
KB
-rwxr-xr-x
systemd-notify
44.09
KB
-rwxr-xr-x
systemd-nspawn
517.7
KB
-rwxr-xr-x
systemd-path
48.11
KB
-rwxr-xr-x
systemd-run
366.92
KB
-rwxr-xr-x
systemd-stdio-bridge
285.66
KB
-rwxr-xr-x
systemd-sysv-convert
3.89
KB
-rwxr-xr-x
systemd-tmpfiles
134.05
KB
-rwxr-xr-x
systemd-tty-ask-password-agent
76.7
KB
-rwxr-xr-x
tabs
15.27
KB
-rwxr-xr-x
tac
32.36
KB
-rwxr-xr-x
tail
61.09
KB
-rwxr-xr-x
tapestat
52.48
KB
-rwxr-xr-x
tar
334.02
KB
-rwxr-xr-x
taskset
32.16
KB
-rwxr-xr-x
tbl
112.05
KB
-rwxr-xr-x
tcptraceroute
1.44
KB
-rwxr-xr-x
tcsh
399.3
KB
-rwxr-xr-x
teamd
146.88
KB
-rwxr-xr-x
teamdctl
28.9
KB
-rwxr-xr-x
teamnl
19.02
KB
-rwxr-xr-x
tee
28.3
KB
-rwxr-xr-x
test
36.33
KB
-rwxr-xr-x
tic
76.36
KB
-rwxr-xr-x
time
15.48
KB
-rwxr-xr-x
timedatectl
314.11
KB
-rwxr-xr-x
timeout
53.23
KB
-rwxr-xr-x
tload
15.27
KB
-rwxr-xr-x
toe
15.33
KB
-rwxr-xr-x
top
104.55
KB
-rwxr-xr-x
touch
56.9
KB
-rwxr-xr-x
tput
19.59
KB
-rwxr-xr-x
tr
44.49
KB
-rwxr-xr-x
tracepath
14.97
KB
-rwxr-xr-x
tracepath6
14.97
KB
-rwxr-xr-x
traceroute
57.76
KB
-rwxr-xr-x
traceroute6
57.76
KB
-rwxr-xr-x
troff
509.13
KB
-rwxr-xr-x
true
28.13
KB
-rwxr-xr-x
truncate
48.58
KB
-rwxr-xr-x
trust
171.01
KB
-rwxr-xr-x
tset
23.63
KB
-rwxr-xr-x
tsort
32.37
KB
-rwxr-xr-x
tty
28.2
KB
-rwxr-xr-x
turbostat
117.41
KB
-rwxr-xr-x
tzselect
15.01
KB
-rwxr-xr-x
udevadm
410.14
KB
-rwxr-xr-x
ul
19.38
KB
-rwxr-xr-x
umask
29
B
-rwxr-xr-x
umount
27.13
KB
-rwsr-xr-x
unalias
31
B
-rwxr-xr-x
uname
28.19
KB
-rwxr-xr-x
uname26
15.16
KB
-rwxr-xr-x
unexpand
32.35
KB
-rwxr-xr-x
unicode_start
2.5
KB
-rwxr-xr-x
unicode_stop
363
B
-rwxr-xr-x
uniq
40.58
KB
-rwxr-xr-x
unlink
28.18
KB
-rwxr-xr-x
unlz4
113.19
KB
-rwxr-xr-x
unshare
19.64
KB
-rwxr-xr-x
unxz
73.43
KB
-rwxr-xr-x
unzip
185.03
KB
-rwxr-xr-x
unzipsfx
92.57
KB
-rwxr-xr-x
update-ca-trust
1.03
KB
-rwxr-xr-x
update-mime-database
52.82
KB
-rwxr-xr-x
updatedb
43.55
KB
-rwxr-xr-x
uptime
11.12
KB
-rwxr-xr-x
urlgrabber
12.17
KB
-rwxr-xr-x
users
28.3
KB
-rwxr-xr-x
usleep
10.87
KB
-rwxr-xr-x
utmpdump
23.68
KB
-rwxr-xr-x
uuidgen
11.11
KB
-rwxr-xr-x
vdir
106.73
KB
-rwxr-xr-x
verify_blkparse
11
KB
-rwxr-xr-x
verifytree
10.79
KB
-rwxr-xr-x
vi
691
B
-rwxr-xr-x
view
150
B
-rwxr-xr-x
vim
3.29
MB
-rwxr-xr-x
vimdiff
3.29
MB
-rwxr-xr-x
vimtutor
2.1
KB
-rwxr-xr-x
vlock
15.62
KB
-rwxr-xr-x
vmstat
31.37
KB
-rwxr-xr-x
w
19.34
KB
-rwxr-xr-x
wait
28
B
-rwxr-xr-x
wall
14.91
KB
-r-xr-sr-x
watch
24.05
KB
-rwxr-xr-x
watchgnupg
11.19
KB
-rwxr-xr-x
wc
36.55
KB
-rwxr-xr-x
wcurl
11.16
KB
-rwxr-xr-x
wdctl
31.88
KB
-rwxr-xr-x
wget
404.43
KB
-rwxr-xr-x
whatis
45.29
KB
-rwxr-xr-x
whereis
24.16
KB
-rwxr-xr-x
which
23.7
KB
-rwxr-xr-x
whiptail
27.76
KB
-rwxr-xr-x
who
48.58
KB
-rwxr-xr-x
whoami
28.23
KB
-rwxr-xr-x
write
19.02
KB
-rwxr-sr-x
x86_64
15.16
KB
-rwxr-xr-x
x86_energy_perf_policy
27.01
KB
-rwxr-xr-x
xargs
60.75
KB
-rwxr-xr-x
xgettext
257.37
KB
-rwxr-xr-x
xmlcatalog
15.2
KB
-rwxr-xr-x
xmllint
61.84
KB
-rwxr-xr-x
xmlwf
23.91
KB
-rwxr-xr-x
xsltproc
23.51
KB
-rwxr-xr-x
xxd
19.42
KB
-rwxr-xr-x
xz
73.43
KB
-rwxr-xr-x
xzcat
73.43
KB
-rwxr-xr-x
xzcmp
6.48
KB
-rwxr-xr-x
xzdec
11.12
KB
-rwxr-xr-x
xzdiff
6.48
KB
-rwxr-xr-x
xzegrep
5.76
KB
-rwxr-xr-x
xzfgrep
5.76
KB
-rwxr-xr-x
xzgrep
5.76
KB
-rwxr-xr-x
xzless
1.76
KB
-rwxr-xr-x
xzmore
2.11
KB
-rwxr-xr-x
yes
28.17
KB
-rwxr-xr-x
ypdomainname
15.32
KB
-rwxr-xr-x
yum
801
B
-rwxr-xr-x
yum-builddep
9.95
KB
-rwxr-xr-x
yum-config-manager
8.83
KB
-rwxr-xr-x
yum-debug-dump
8.34
KB
-rwxr-xr-x
yum-debug-restore
7.72
KB
-rwxr-xr-x
yum-groups-manager
10.77
KB
-rwxr-xr-x
yumdownloader
10.85
KB
-rwxr-xr-x
zcat
1.9
KB
-rwxr-xr-x
zcmp
1.72
KB
-rwxr-xr-x
zdiff
5.63
KB
-rwxr-xr-x
zegrep
123
B
-rwxr-xr-x
zfgrep
123
B
-rwxr-xr-x
zforce
2.09
KB
-rwxr-xr-x
zgrep
6.06
KB
-rwxr-xr-x
zip
210.63
KB
-rwxr-xr-x
zipcloak
102
KB
-rwxr-xr-x
zipgrep
2.88
KB
-rwxr-xr-x
zipinfo
185.03
KB
-rwxr-xr-x
zipnote
93.65
KB
-rwxr-xr-x
zipsplit
97.63
KB
-rwxr-xr-x
zless
1.99
KB
-rwxr-xr-x
zmore
2.79
KB
-rwxr-xr-x
znew
5.22
KB
-rwxr-xr-x
zsoelim
32.53
KB
-rwxr-xr-x
zts-phar
14.89
KB
-rwxr-xr-x
zts-phar.phar
14.89
KB
-rwxr-xr-x
zts-php
6.08
MB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : hibinit-agent
#!/usr/bin/python2 # AWS EC2 HibInit Agent. This agent does several things upon startup: # 1. It checks for sufficient swap space to allow hibernation and fails if not enough space # 2. If there's no swap file or the existing swap file isn't of a sufficient size, a swap file is created # 1. If `touch-swap` is enabled, all the swap file's blocks will be touched # so that the root EBS volume is pre-warmed. # 3. It updates the offset of the swap file in the kernel using `snapshot_set_swap_area` ioctl. # 4. It updates the resume offset and resume device in grub file. # # This file is compatible both with Python 2 and Python 3 import argparse import array import ctypes as ctypes import fcntl import mmap import os import struct import sys import syslog import math import requests import signal from subprocess import check_call, check_output try: from ConfigParser import ConfigParser, NoSectionError, NoOptionError except: from configparser import ConfigParser, NoSectionError, NoOptionError # Space reserved for swap headers SWAP_RESERVED_SIZE = 16384 LOG_TO_SYSLOG = True SWAP_FILE = '/swap' DEFAULT_STATE_DIR = '/var/lib/hibinit-agent' HIB_ENABLED_FILE = "hibernation-enabled" IMDS_BASEURL = 'http://169.254.169.254' IMDS_API_TOKEN_PATH = 'latest/api/token' IMDS_SPOT_ACTION_PATH = 'latest/meta-data/hibernation/configured' # Default Values KB = 1024 MAX_SWAP_SIZE_OFFSET_ALLOWED = 100 * KB DEFAULT_SWAP_SIZE_MB = 4000 DEFAULT_SWAP_PERCENTAGE = 100 # Sigterm_handler Behaviour Modifiers SHUTDOWN_REQUESTED = False def print_to_sys_log(message): if LOG_TO_SYSLOG: syslog.syslog(message) def critical_process_sigterm_handler(signum, frame): global SHUTDOWN_REQUESTED SHUTDOWN_REQUESTED = True def default_sigterm_handler(signum, frame): check_swapon_cmd = "swapon -s | cut -f1,1 | grep -w {name}" check_swapon_cmd = check_swapon_cmd.format(name=SWAP_FILE) check_swapon = check_output(check_swapon_cmd, shell=True) if check_swapon.strip() == SWAP_FILE: swapoff_cmd = "swapoff {filename}" swapoff_cmd = swapoff_cmd.format(filename=SWAP_FILE) check_call(swapoff_cmd, shell=True) if os.path.isfile(SWAP_FILE) and os.access(SWAP_FILE, os.R_OK): os.remove(SWAP_FILE) exit(0) def critical_process(function_with_critical_process): def wrapper(*args, **kwargs): signal.signal(signal.SIGTERM, critical_process_sigterm_handler) function_with_critical_process(*args, **kwargs) if SHUTDOWN_REQUESTED: exit(0) signal.signal(signal.SIGTERM, default_sigterm_handler) return wrapper def fallocate(fl, size): try: _libc = ctypes.CDLL('libc.so.6') _fallocate = _libc.fallocate _fallocate.argtypes = [ctypes.c_int, ctypes.c_int, ctypes.c_ulong, ctypes.c_ulong] # (FD, mode, offset, len) res = _fallocate(fl.fileno(), 0, 0, size) if res != 0: raise Exception("Failed to perform fallocate(). Result: %d" % res) except Exception as e: print_to_sys_log("Failed to call fallocate(), will use resize. Err: %s" % str(e)) fl.seek(size - 1) fl.write(chr(0)) def get_file_block_number(filename): with open(filename, 'r') as handle: buf = array.array('L', [0]) # from linux/fs.h fibmap = 0x01 result = fcntl.ioctl(handle.fileno(), fibmap, buf) if result < 0: raise Exception("Failed to get the file offset. Error=%d" % result) return buf[0] def get_rootfs_size(): stat = os.statvfs('/') return math.ceil(float(stat.f_bsize * stat.f_blocks) / (KB * KB * KB)) # This is only for grub2 def find_grub_mount(): path_list = ['/etc/grub2-efi.cfg', '/boot/grub2/grub.cfg', '/boot/grub2-efi/grub.cfg', '/etc/grub2.cfg'] for ln in path_list: if os.path.isfile(ln) and os.access(ln, os.R_OK): find_mount_cmd = 'stat -L -c %m ' + ln mount = check_output(find_mount_cmd, shell=True, universal_newlines=True) return mount.strip() return None def patch_grub_config(swap_device, offset): mount_point = find_grub_mount() if mount_point is None: print_to_sys_log("Grub configuration is not updated. Grub cannot found under /boot or /etc. " + "Please run manual grub update with resume parameters") return print_to_sys_log("Updating GRUB to use the device %s with offset %d for resume" % (swap_device, offset)) grub_mkconfig = "grub2-mkconfig -o /boot/grub2/grub.cfg" check_call(grub_mkconfig, shell=True) grub_update_kernel = "grubby --update-kernel=ALL --args='no_console_suspend=1 " + \ "resume_offset={offset} resume={swap_device}'" grub_update_kernel = grub_update_kernel.format(offset=offset, swap_device=swap_device) check_call(grub_update_kernel, shell=True) fsfreeze = "sync && mountpoint -q {mount} && trap '' HUP INT QUIT TERM && " + \ "fsfreeze -f {mount} && fsfreeze -u {mount}" fsfreeze = fsfreeze.format(mount=mount_point) check_call(fsfreeze, shell=True) # Some grubby versions need a restart after changing in kernel parameters # echo offset and swap device helps the customer to use the agent immediately # after rpm installation. if os.path.exists("sys/power/resume"): echo_resume_device = "echo {swap_device} > /sys/power/resume" echo_resume_device = echo_resume_device.format(swap_device=swap_device) print_to_sys_log("sys/power/resume exist and will be updated") check_call(echo_resume_device, shell=True) if os.path.exists("/sys/power/resume_offset"): echo_resume_offset = "echo {offset} > /sys/power/resume_offset" echo_resume_offset = echo_resume_offset.format(offset=offset) print_to_sys_log("sys/power/resume_offset exist and will be updated") check_call(echo_resume_offset, shell=True) print_to_sys_log("GRUB configuration is updated") @critical_process def update_kernel_swap_offset(config): swapon = config.swapon.format(swapfile=SWAP_FILE) print_to_sys_log("Running: %s" % swapon) check_call(swapon, shell=True) print_to_sys_log("Updating the kernel offset for the swapfile: %s" % SWAP_FILE) statbuf = os.stat(SWAP_FILE) dev = statbuf.st_dev if config.btrfs_enabled: get_offset = "btrfs inspect-internal map-swapfile -r {swapfile}".format(swapfile=SWAP_FILE) offset = int(check_output(get_offset, shell=True).decode(sys.getfilesystemencoding())) else: offset = get_file_block_number(SWAP_FILE) if config.grub_update: dev_str = find_device_for_file(SWAP_FILE) patch_grub_config(dev_str, offset) else: print_to_sys_log("Skipping GRUB configuration update") print_to_sys_log("Setting swap device to %d with offset %d" % (dev, offset)) if not config.btrfs_enabled and os.path.exists("/dev/snapshot"): # Set the kernel swap offset, see https://www.kernel.org/doc/Documentation/power/userland-swsusp.txt # From linux/suspend_ioctls.h snapshot_set_swap_area = 0x400C330D buf = struct.pack('LI', offset, dev) with open('/dev/snapshot', 'r') as snap: fcntl.ioctl(snap, snapshot_set_swap_area, buf) print_to_sys_log("Done updating the swap offset. Turning swapoff") swapoff = config.swapoff.format(swapfile=SWAP_FILE) print_to_sys_log("Running: %s" % swapoff) check_call(swapoff, shell=True) check_call("trap '' HUP INT QUIT TERM && dracut -a resume -f", shell=True) def find_device_for_file(filename): # Find the mount point for the swap file ('df -P /swap') df_out = check_output(['df', '-P', filename]).decode(sys.getfilesystemencoding()) dev_str = df_out.split("\n")[1].split()[0] return dev_str class SwapInitializer(object): def __init__(self, config): self.swap_size = calc_target_swap_size( ram_bytes=os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES'), swap_percentage=config.swap_percentage, swap_mb=config.swap_mb) self.config = config self.block_size = KB * KB # 1 MiB def init_swap(self): """ Initialize the swap using direct IO to avoid polluting the page cache """ if self.config.btrfs_enabled: self.setup_btrfs() self.do_allocate() if self.config.touch_swap: self.pretouch_swap() else: print_to_sys_log("Swap pre-heating is skipped, the swap blocks won't be touched during " "to ensure they are ready") self.init_mkswap() def setup_btrfs(self): no_cow = "truncate -s 0 {swapfile} && chattr +C {swapfile}".format(swapfile=SWAP_FILE) print_to_sys_log("Setting /swap to No Copy On Write") check_call(no_cow, shell=True) def do_allocate(self): print_to_sys_log("Allocating %d bytes in %s" % (self.swap_size, SWAP_FILE)) with open(SWAP_FILE, 'w+') as fl: fallocate(fl, self.swap_size) os.chmod(SWAP_FILE, 0o600) # Read + Write Permissions def pretouch_swap(self): written = 0 print_to_sys_log("Opening %s for direct IO" % SWAP_FILE) fd = os.open(SWAP_FILE, os.O_RDWR | os.O_DIRECT | os.O_SYNC | os.O_DSYNC) if fd < 0: raise Exception("Failed to open swap file. Err: %s" % os.strerror(os.errno)) filler_block = None try: # Create a filler block that is correctly aligned for direct IO filler_block = mmap.mmap(-1, self.block_size) # We're using 'b' to avoid optimizations that might happen for zero-filled pages filler_block.write(b'b' * self.block_size) print_to_sys_log("Touching all blocks in %s" % SWAP_FILE) while written < self.swap_size: res = os.write(fd, filler_block) if res <= 0: raise Exception("Failed to touch a block. Err: %s" % os.strerror(os.errno)) written += res finally: os.close(fd) if filler_block: filler_block.close() print_to_sys_log("Swap file %s is ready" % SWAP_FILE) def init_mkswap(self): # Do mkswap try: mkswap = self.config.mkswap.format(swapfile=SWAP_FILE) print_to_sys_log("Running: %s" % mkswap) check_call(mkswap, shell=True) except Exception as e: raise Exception(("Failed to setup swap area, reason: %s" % str(e))) def identify_file_system(swapfile, file_system): # Walk the parent directories of the swapfile to find on which # filesystem it's mounted swap_place = swapfile dev = None while not dev: swap_place, _ = os.path.split(swap_place) try: dev = find_device_for_file(swap_place) except: if swap_place == '/': raise Exception("Failed to find the filesystem type of %s" % swapfile) with open("/proc/mounts") as fl: lines = fl.read().split("\n") for ln in lines: if dev in ln and file_system in ln: return True return False class Config(object): def __init__(self, config_file, args): def get_from_config(section, name): try: return config_file.get(section, name) except NoSectionError: return None except NoOptionError: return None def get_int_from_config(section, name): v = get_from_config(section, name) return None if v is None else int(v) self.log_to_syslog = self.merge( self.to_bool(args.log_to_syslog), self.to_bool(get_from_config('core', 'log-to-syslog')), True) self.grub_update = self.merge( self.to_bool(args.grub_update), self.to_bool(get_from_config('core', 'grub-update')), True) self.touch_swap = self.merge( self.to_bool(args.touch_swap), self.to_bool(get_from_config('core', 'touch-swap')), identify_file_system(SWAP_FILE, "xfs")) self.btrfs_enabled = self.merge( self.to_bool(args.btrfs_enabled), self.to_bool(get_from_config('core', 'btrfs-enabled')), identify_file_system(SWAP_FILE, "btrfs")) self.state_dir = self.merge(None, get_from_config('core', 'state-dir'), DEFAULT_STATE_DIR) self.swap_percentage = self.merge(args.swap_ram_percentage, get_int_from_config('swap', 'percentage-of-ram'), DEFAULT_SWAP_PERCENTAGE) self.swap_mb = self.merge(args.swap_target_size_mb, get_int_from_config('swap', 'target-size-mb'), DEFAULT_SWAP_SIZE_MB) self.mkswap = self.merge(args.mkswap, get_from_config('swap', 'mkswap'), 'mkswap {swapfile}') self.swapon = self.merge(args.swapon, get_from_config('swap', 'swapon'), 'swapon {swapfile}') self.swapoff = self.merge(args.swapoff, get_from_config('swap', 'swapoff'), 'swapoff {swapfile}') def merge(self, arg_value, cf_value, def_val): if arg_value is not None: return arg_value if cf_value is not None: return cf_value return def_val def to_bool(self, bool_str): """Parse the string and return a boolean value, None, or raise an exception""" if bool_str is None: return None if bool_str.lower() in ['true', 't', '1']: return True elif bool_str.lower() in ['false', 'f', '0']: return False # if here we couldn't parse it raise ValueError("%s is not recognized as a boolean value" % bool_str) def __str__(self): return str(self.__dict__) def get_imds_token(seconds=21600): """ Get a token to access instance metadata. """ print_to_sys_log("Requesting new IMDSv2 token.") request_header = {'X-aws-ec2-metadata-token-ttl-seconds': '{}'.format(seconds)} token_url = '{}/{}'.format(IMDS_BASEURL, IMDS_API_TOKEN_PATH) response = requests.put(token_url, headers=request_header) response.close() if response.status_code != 200: return None return response.text def create_state_dir(state_dir): """ Create agent run dir if it doesn't exist.""" if not os.path.isdir(state_dir): os.makedirs(state_dir) def hibernation_enabled(state_dir): """Returns a boolean indicating whether hibernation is enabled or not. Hibernation can't be enabled/disabled after the instance launch. If we find hibernation to be enabled, we create a semaphore file so that we don't have to probe IMDS again. That is useful when an instance is rebooted after/if the IMDS http endpoint has been disabled. """ hib_sem_file = os.path.join(state_dir, HIB_ENABLED_FILE) if os.path.isfile(hib_sem_file): print_to_sys_log("Found {!r}, configuring hibernation".format(hib_sem_file)) return True imds_token = get_imds_token() if imds_token is None: # IMDS http endpoint is disabled return False request_header = {'X-aws-ec2-metadata-token': imds_token} response = requests.get("{}/{}".format(IMDS_BASEURL, IMDS_SPOT_ACTION_PATH), headers=request_header) response.close() if response.status_code != 200 or response.text.lower() == "false": return False print_to_sys_log("Hibernation Configured Flag found") os.mknod(hib_sem_file) return True def calc_target_swap_size(ram_bytes, swap_percentage, swap_mb): target_swap_size = swap_mb * KB * KB # Converting to bytes swap_percentage_size = ram_bytes * swap_percentage // 100 if swap_percentage_size > target_swap_size: target_swap_size = int(swap_percentage_size) return target_swap_size # Returns a tuple denoting (valid_to_init_hibernation: bool, new_swap_file_required: bool) def validate_system_requirements(config): # Validate if disk space>total RAM ram_bytes = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES') if get_rootfs_size() <= (math.ceil(float(ram_bytes) / (KB * KB * KB))): print_to_sys_log( "Insufficient disk space. Cannot create setup for hibernation. Please allocate a larger root device") return False, False target_swap_size = calc_target_swap_size(ram_bytes, config.swap_percentage, config.swap_mb) print_to_sys_log("Will check if swap is at least: %d megabytes" % (target_swap_size // (KB * KB))) # Validate if swap file exists cur_swap = 0 if os.path.isfile(SWAP_FILE) and os.access(SWAP_FILE, os.R_OK): cur_swap = os.path.getsize(SWAP_FILE) if cur_swap > target_swap_size - SWAP_RESERVED_SIZE + MAX_SWAP_SIZE_OFFSET_ALLOWED: print_to_sys_log("Swap already exists! (have %d, need %d), deleting existing swap file %s since current swap is " "sufficiently large and wasting disk space" % (cur_swap, target_swap_size, SWAP_FILE)) os.remove(SWAP_FILE) elif cur_swap >= target_swap_size - SWAP_RESERVED_SIZE: print_to_sys_log("There's sufficient swap available (have %d, need %d)" % (cur_swap, target_swap_size)) return True, False # Validate if instance was launched from pre-created image and swap size>=total RAM, if not re-create the swap elif cur_swap > 0 and (cur_swap < target_swap_size - SWAP_RESERVED_SIZE): print_to_sys_log("Swap already exists! (have %d, need %d), deleting existing swap file %s" % (cur_swap, target_swap_size, SWAP_FILE)) os.remove(SWAP_FILE) # We need to create swap, but first validate that we have enough free space swap_dev = os.path.dirname(SWAP_FILE) st = os.statvfs(swap_dev) free_bytes = st.f_bavail * st.f_frsize # Rounding off to swap_size+10mb for swap headers free_space_needed = target_swap_size + 10 * KB * KB if free_space_needed >= free_bytes: print_to_sys_log("There's not enough space (%d present, %d needed) for the swap file on the device: %s" % ( free_bytes, free_space_needed, swap_dev)) return False, True print_to_sys_log("There's enough space (%d present, %d needed) for the swap file on the device: %s" % ( free_bytes, free_space_needed, swap_dev)) return True, True def main(): # Parse arguments parser = argparse.ArgumentParser( description="An EC2 background process that creates a setup for instance hibernation " "at instance launch and also registers ACPI sleep event/actions") parser.add_argument('-c', '--config', help='Configuration file to use', type=str) parser.add_argument("-syslog", "--log-to-syslog", help='Log to syslog', type=str) parser.add_argument("-grub", "--grub-update", help='Update GRUB config with resume offset', type=str) parser.add_argument("-touch", "--touch-swap", help='Do swap initialization', type=str) parser.add_argument("-btrfs", "--btrfs-enabled", help='Sets no copy on write on swap file', type=str) parser.add_argument("-p", "--swap-ram-percentage", help='The target swap size as a percentage of RAM', type=int) parser.add_argument("-s", "--swap-target-size-mb", help='The target swap size in megabytes', type=int) parser.add_argument('--mkswap', help='The command line utility to set up swap', type=str) parser.add_argument('--swapon', help='The command line utility to turn on swap', type=str) parser.add_argument('--swapoff', help='The command line utility to turn off swap', type=str) args = parser.parse_args() config_file = ConfigParser() if args.config: config_file.read(args.config) config = Config(config_file, args) global LOG_TO_SYSLOG LOG_TO_SYSLOG = config.log_to_syslog print_to_sys_log("Effective config: %s" % config) create_state_dir(config.state_dir) # Let's first check if we even need to run if not hibernation_enabled(config.state_dir): print_to_sys_log("Instance Launch has not enabled Hibernation Configured Flag. hibinit-agent exiting!!") exit(0) # Sets default termination handling signal.signal(signal.SIGTERM, default_sigterm_handler) valid_to_init_hibernation, new_swap_file_required = validate_system_requirements(config) if not valid_to_init_hibernation: exit(1) if new_swap_file_required: sw = SwapInitializer(config) try: sw.init_swap() except Exception as e: raise Exception("Failed to initialise swap file, reason: %s" % str(e)) update_kernel_swap_offset(config) if __name__ == '__main__': main()
Close