Linux server.nvwebsoft.co.in 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64
Apache
: 162.240.12.249 | : 3.135.193.166
202 Domain
8.1.31
nbspublicschool
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
abrt-auto-reporting
10.98
KB
-rwxr-xr-x
abrt-configuration
31.66
KB
-rwxr-xr-x
abrt-dbus
31.22
KB
-rwxr-xr-x
abrt-harvest-pstoreoops
1.32
KB
-rwxr-xr-x
abrt-harvest-vmcore
8.19
KB
-rwxr-xr-x
abrt-install-ccpp-hook
2.85
KB
-rwxr-xr-x
abrt-server
31.11
KB
-rwxr-xr-x
abrtd
31.22
KB
-rwxr-xr-x
accessdb
11.55
KB
-rwxr-xr-x
accton
11.19
KB
-rwxr-xr-x
addgnupghome
3.05
KB
-rwxr-xr-x
addpart
19.69
KB
-rwxr-xr-x
adduser
134.39
KB
-rwxr-xr-x
agetty
48.48
KB
-rwxr-xr-x
alternatives
27.61
KB
-rwxr-xr-x
anacron
35.52
KB
-rwxr-xr-x
apachectl
4.31
KB
-rwxr-xr-x
applygnupgdefaults
2.21
KB
-rwxr-xr-x
arp
63.98
KB
-rwxr-xr-x
arpd
52.98
KB
-rwxr-xr-x
arping
23.19
KB
-rwxr-xr-x
atd
27.17
KB
-rwxr-xr-x
atrun
67
B
-rwxr-xr-x
audispd
39.75
KB
-rwxr-xr-x
auditctl
39.56
KB
-rwxr-xr-x
auditd
125.65
KB
-rwxr-xr-x
augenrules
3.7
KB
-rwxr-xr-x
aureport
105.39
KB
-rwxr-xr-x
ausearch
109.8
KB
-rwxr-xr-x
autrace
15.49
KB
-rwxr-x---
avcstat
11.25
KB
-rwxr-xr-x
badblocks
27.69
KB
-rwxr-xr-x
biosdecode
24.15
KB
-rwxr-xr-x
blkdeactivate
15.97
KB
-r-xr-xr-x
blkdiscard
23.84
KB
-rwxr-xr-x
blkid
77.92
KB
-rwxr-xr-x
blkmapd
43.81
KB
-rwxr-xr-x
blockdev
32.2
KB
-rwxr-xr-x
bpftool
1.9
MB
-rwxr-xr-x
brctl
32.13
KB
-rwxr-xr-x
bridge
77.61
KB
-rwxr-xr-x
build-locale-archive
860.52
KB
-rwx------
cache_check
1.23
MB
-rwxr-xr-x
cache_dump
1.23
MB
-rwxr-xr-x
cache_metadata_size
1.23
MB
-rwxr-xr-x
cache_repair
1.23
MB
-rwxr-xr-x
cache_restore
1.23
MB
-rwxr-xr-x
cache_writeback
1.23
MB
-rwxr-xr-x
capsh
19.43
KB
-rwxr-xr-x
cbq
32.73
KB
-rwxr-xr-x
cfdisk
71.37
KB
-rwxr-xr-x
cgdisk
176.87
KB
-rwxr-xr-x
chcpu
23.7
KB
-rwxr-xr-x
chgpasswd
64.1
KB
-rwxr-xr-x
chkconfig
40.22
KB
-rwxr-xr-x
chpasswd
55.88
KB
-rwxr-xr-x
chronyd
263.08
KB
-rwxr-xr-x
chroot
32.48
KB
-rwxr-xr-x
clock
48.44
KB
-rwxr-xr-x
clockdiff
19.04
KB
-rwxr-xr-x
collectd
210.29
KB
-rwxr-xr-x
collectdmon
14.99
KB
-rwxr-xr-x
consoletype
6.95
KB
-rwxr-xr-x
convertquota
70.88
KB
-rwxr-xr-x
cracklib-check
7.04
KB
-rwxr-xr-x
cracklib-format
246
B
-rwxr-xr-x
cracklib-packer
11.06
KB
-rwxr-xr-x
cracklib-unpacker
7.02
KB
-rwxr-xr-x
crda
11.34
KB
-rwxr-xr-x
create-cracklib-dict
990
B
-rwxr-xr-x
crond
68.48
KB
-rwxr-xr-x
cryptsetup
85.41
KB
-rwxr-xr-x
ctrlaltdel
11.2
KB
-rwxr-xr-x
ctstat
20.09
KB
-rwxr-xr-x
ddns-confgen
19.44
KB
-rwxr-xr-x
debugfs
120.64
KB
-rwxr-xr-x
delpart
19.69
KB
-rwxr-xr-x
depmod
143.24
KB
-rwxr-xr-x
devlink
64.72
KB
-rwxr-xr-x
dhclient
414.34
KB
-rwxr-xr-x
dhclient-script
30.38
KB
-rwxr-xr-x
dm_dso_reg_tool
11.29
KB
-rwxr-xr-x
dmevent_tool
11.29
KB
-rwxr-xr-x
dmeventd
39.56
KB
-r-xr-xr-x
dmfilemapd
19.16
KB
-r-xr-xr-x
dmidecode
120.2
KB
-rwxr-xr-x
dmraid
22.1
KB
-rwxr-xr-x
dmraid.static
22.1
KB
-rwxr-xr-x
dmsetup
149.2
KB
-r-xr-xr-x
dmstats
149.2
KB
-r-xr-xr-x
dnssec-checkds
922
B
-rwxr-xr-x
dnssec-coverage
924
B
-rwxr-xr-x
dnssec-dsfromkey
56.6
KB
-rwxr-xr-x
dnssec-importkey
52.59
KB
-rwxr-xr-x
dnssec-keyfromlabel
60.52
KB
-rwxr-xr-x
dnssec-keygen
64.55
KB
-rwxr-xr-x
dnssec-keymgr
920
B
-rwxr-xr-x
dnssec-revoke
48.45
KB
-rwxr-xr-x
dnssec-settime
56.52
KB
-rwxr-xr-x
dnssec-signzone
105.7
KB
-rwxr-xr-x
dnssec-verify
48.46
KB
-rwxr-xr-x
dosfsck
56.24
KB
-rwxr-xr-x
dosfslabel
52.23
KB
-rwxr-xr-x
dovecot
370.66
KB
-rwxr-xr-x
dovecot_cpshutdown
3.27
KB
-rwxr-xr-x
dracut
55.83
KB
-rwxr-xr-x
dump-acct
19.63
KB
-rwxr-xr-x
dump-utmp
15.47
KB
-rwxr-xr-x
dumpe2fs
23.62
KB
-rwxr-xr-x
e2freefrag
11.15
KB
-rwxr-xr-x
e2fsck
250.55
KB
-rwxr-xr-x
e2image
27.85
KB
-rwxr-xr-x
e2label
69.41
KB
-rwxr-xr-x
e2undo
11.32
KB
-rwxr-xr-x
e4defrag
23.55
KB
-rwxr-xr-x
ebtables
6.85
KB
-rwxr-xr-x
ebtables-restore
10.88
KB
-rwxr-xr-x
ebtables-save
851
B
-rwxr-xr-x
edquota
83.09
KB
-rwxr-xr-x
era_check
1.23
MB
-rwxr-xr-x
era_dump
1.23
MB
-rwxr-xr-x
era_invalidate
1.23
MB
-rwxr-xr-x
era_restore
1.23
MB
-rwxr-xr-x
ether-wake
73.26
KB
-rwxr-xr-x
ethtool
293.87
KB
-rwxr-xr-x
exicyclog
11.01
KB
-rwxr-xr-x
exigrep
10.44
KB
-rwxr-xr-x
exim
1.33
MB
-rwsr-xr-x
exim_checkaccess
4.73
KB
-rwxr-xr-x
exim_dbmbuild
82.09
KB
-rwxr-xr-x
exim_dumpdb
134.47
KB
-rwxr-xr-x
exim_fixdb
168.22
KB
-rwxr-xr-x
exim_lock
64.66
KB
-rwxr-xr-x
exim_tidydb
142.8
KB
-rwxr-xr-x
eximstats
148.01
KB
-rwxr-xr-x
exinext
8.02
KB
-rwxr-xr-x
exiqgrep
5.46
KB
-rwxr-xr-x
exiqsumm
5.07
KB
-rwxr-xr-x
exiwhat
4.32
KB
-rwxr-xr-x
exportfs
76.91
KB
-rwxr-xr-x
faillock
15.02
KB
-rwxr-xr-x
fatlabel
52.23
KB
-rwxr-xr-x
fcgistarter
23.85
KB
-rwxr-xr-x
fdformat
11.27
KB
-rwxr-xr-x
fdisk
195.8
KB
-rwxr-xr-x
filefrag
15.23
KB
-rwxr-xr-x
findfs
11.2
KB
-rwxr-xr-x
firewalld
6.87
KB
-rwxr-xr-x
fixfiles
11.03
KB
-rwxr-xr-x
fixparts
61.65
KB
-rwxr-xr-x
fsadm
23.97
KB
-r-xr-xr-x
fsck
32.12
KB
-rwxr-xr-x
fsck.cramfs
19.57
KB
-rwxr-xr-x
fsck.ext2
250.55
KB
-rwxr-xr-x
fsck.ext3
250.55
KB
-rwxr-xr-x
fsck.ext4
250.55
KB
-rwxr-xr-x
fsck.fat
56.24
KB
-rwxr-xr-x
fsck.minix
73.32
KB
-rwxr-xr-x
fsck.msdos
56.24
KB
-rwxr-xr-x
fsck.vfat
56.24
KB
-rwxr-xr-x
fsck.xfs
433
B
-rwxr-xr-x
fsfreeze
11.23
KB
-rwxr-xr-x
fstrim
40.59
KB
-rwxr-xr-x
fuser
32.34
KB
-rwxr-xr-x
gdisk
184.49
KB
-rwxr-xr-x
genhomedircon
23.77
KB
-rwxr-xr-x
genhostid
6.94
KB
-rwxr-xr-x
genl
52.81
KB
-rwxr-xr-x
genl-ctrl-list
11.27
KB
-rwxr-xr-x
genrandom
11.16
KB
-rwxr-xr-x
getcap
11.13
KB
-rwxr-xr-x
getenforce
7.01
KB
-rwxr-xr-x
getpcaps
7.07
KB
-rwxr-xr-x
getsebool
11.13
KB
-rwxr-xr-x
glibc_post_upgrade.x86_64
772.05
KB
-rwx------
groupadd
85.65
KB
-rwxr-xr-x
groupdel
77.38
KB
-rwxr-xr-x
groupmems
55.97
KB
-rwxr-xr-x
groupmod
85.66
KB
-rwxr-xr-x
grpck
59.93
KB
-rwxr-xr-x
grpconv
51.73
KB
-rwxr-xr-x
grpunconv
51.73
KB
-rwxr-xr-x
grub2-bios-setup
1.03
MB
-rwxr-xr-x
grub2-get-kernel-settings
2.08
KB
-rwxr-xr-x
grub2-install
1.29
MB
-rwxr-xr-x
grub2-macbless
1.02
MB
-rwxr-xr-x
grub2-mkconfig
7.63
KB
-rwxr-xr-x
grub2-ofpathname
225.54
KB
-rwxr-xr-x
grub2-probe
1.03
MB
-rwxr-xr-x
grub2-reboot
4
KB
-rwxr-xr-x
grub2-rpm-sort
258.52
KB
-rwxr-xr-x
grub2-set-default
3.46
KB
-rwxr-xr-x
grub2-setpassword
2.96
KB
-rwxr-xr-x
grub2-sparc64-setup
1.04
MB
-rwxr-xr-x
grubby
71.27
KB
-rwxr-xr-x
gss-server
23.13
KB
-rwxr-xr-x
gssproxy
130.64
KB
-rwxr-xr-x
halt
704.8
KB
-rwxr-xr-x
hardlink
15.29
KB
-rwxr-xr-x
htcacheclean
78.45
KB
-rwxr-xr-x
httpd
2.31
MB
-rwxr-xr-x
hwclock
48.44
KB
-rwxr-xr-x
iconvconfig
22.15
KB
-rwxr-xr-x
iconvconfig.x86_64
22.15
KB
-rwxr-xr-x
ifcfg
2.99
KB
-rwxr-xr-x
ifconfig
80.05
KB
-rwxr-xr-x
ifdown
1.61
KB
-rwxr-xr-x
ifenslave
19.74
KB
-rwxr-xr-x
ifstat
40.6
KB
-rwxr-xr-x
ifup
4.89
KB
-rwxr-xr-x
imunify-notifier
9.8
MB
-rwxr-xr-x
init
1.56
MB
-rwxr-xr-x
insmod
143.24
KB
-rwxr-xr-x
install-info
110.42
KB
-rwxr-xr-x
installkernel
2.69
KB
-rwxr-xr-x
intel-microcode2ucode
11.1
KB
-rwxr-xr-x
ip
459.59
KB
-rwxr-xr-x
ip6tables
91.52
KB
-rwxr-xr-x
ip6tables-restore
91.52
KB
-rwxr-xr-x
ip6tables-save
91.52
KB
-rwxr-xr-x
ipmaddr
19.33
KB
-rwxr-xr-x
ipset
7.02
KB
-rwxr-xr-x
iptables
91.52
KB
-rwxr-xr-x
iptables-restore
91.52
KB
-rwxr-xr-x
iptables-save
91.52
KB
-rwxr-xr-x
iptunnel
23.33
KB
-rwxr-xr-x
irqbalance
48.5
KB
-rwxr-xr-x
isc-hmac-fixup
11.2
KB
-rwxr-xr-x
iw
157.97
KB
-rwxr-xr-x
kexec
166.06
KB
-rwxr-xr-x
key.dns_resolver
19.45
KB
-rwxr-xr-x
killall5
23.17
KB
-rwxr-xr-x
kpartx
39.47
KB
-rwxr-xr-x
kpatch
14.53
KB
-rwxr-xr-x
lchage
15.41
KB
-rwxr-xr-x
ldattach
27.93
KB
-rwxr-xr-x
ldconfig
952.08
KB
-rwxr-xr-x
ledctl
61.97
KB
-rwxr-xr-x
ledmon
62.15
KB
-rwxr-xr-x
lgroupadd
11.28
KB
-rwxr-xr-x
lgroupdel
11.26
KB
-rwxr-xr-x
lgroupmod
15.44
KB
-rwxr-xr-x
lid
15.4
KB
-rwxr-xr-x
lnewusers
15.46
KB
-rwxr-xr-x
lnstat
20.09
KB
-rwxr-xr-x
load_policy
10.97
KB
-rwxr-xr-x
logrotate
68.61
KB
-rwxr-xr-x
logsave
11.27
KB
-rwxr-xr-x
losetup
82.45
KB
-rwxr-xr-x
lpasswd
15.5
KB
-rwxr-xr-x
lshw
895.18
KB
-rwxr-xr-x
lsmod
143.24
KB
-rwxr-xr-x
lsof
150.57
KB
-rwxr-xr-x
lspci
73.67
KB
-rwxr-xr-x
luseradd
15.38
KB
-rwxr-xr-x
luserdel
11.3
KB
-rwxr-xr-x
lusermod
19.43
KB
-rwxr-xr-x
lvchange
2.15
MB
-r-xr-xr-x
lvconvert
2.15
MB
-r-xr-xr-x
lvcreate
2.15
MB
-r-xr-xr-x
lvdisplay
2.15
MB
-r-xr-xr-x
lvextend
2.15
MB
-r-xr-xr-x
lvm
2.15
MB
-r-xr-xr-x
lvmconf
12.55
KB
-r-xr-xr-x
lvmconfig
2.15
MB
-r-xr-xr-x
lvmdiskscan
2.15
MB
-r-xr-xr-x
lvmdump
10.07
KB
-r-xr-xr-x
lvmetad
71.66
KB
-r-xr-xr-x
lvmpolld
64.07
KB
-r-xr-xr-x
lvmsadc
2.15
MB
-r-xr-xr-x
lvmsar
2.15
MB
-r-xr-xr-x
lvreduce
2.15
MB
-r-xr-xr-x
lvremove
2.15
MB
-r-xr-xr-x
lvrename
2.15
MB
-r-xr-xr-x
lvresize
2.15
MB
-r-xr-xr-x
lvs
2.15
MB
-r-xr-xr-x
lvscan
2.15
MB
-r-xr-xr-x
lwresd
768.18
KB
-rwxr-xr-x
makedumpfile
376.52
KB
-rwxr-xr-x
matchpathcon
11.19
KB
-rwxr-xr-x
mdadm
593.45
KB
-rwxr-xr-x
mdmon
331.55
KB
-rwxr-xr-x
mii-diag
20.08
KB
-rwxr-xr-x
mii-tool
19.51
KB
-rwxr-xr-x
mkdict
246
B
-rwxr-xr-x
mkdosfs
28.05
KB
-rwxr-xr-x
mkdumprd
13.99
KB
-rwxr-xr-x
mke2fs
94.08
KB
-rwxr-xr-x
mkfs
11.25
KB
-rwxr-xr-x
mkfs.cramfs
36.16
KB
-rwxr-xr-x
mkfs.ext2
94.08
KB
-rwxr-xr-x
mkfs.ext3
94.08
KB
-rwxr-xr-x
mkfs.ext4
94.08
KB
-rwxr-xr-x
mkfs.fat
28.05
KB
-rwxr-xr-x
mkfs.minix
36.27
KB
-rwxr-xr-x
mkfs.msdos
28.05
KB
-rwxr-xr-x
mkfs.vfat
28.05
KB
-rwxr-xr-x
mkfs.xfs
359.8
KB
-rwxr-xr-x
mkhomedir_helper
19.05
KB
-rwxr-xr-x
mklost+found
11.11
KB
-rwxr-xr-x
mkswap
69.64
KB
-rwxr-xr-x
modinfo
143.24
KB
-rwxr-xr-x
modprobe
143.24
KB
-rwxr-xr-x
modsec-sdbm-util
22.17
KB
-rwxr-x---
mount.fuse
11.1
KB
-rwxr-xr-x
mount.nfs
114.68
KB
-rwsr-xr-x
mount.nfs4
114.68
KB
-rwsr-xr-x
mountstats
40.59
KB
-rwxr-xr-x
mtr
83.18
KB
-rwxr-xr-x
mysqld
244.14
MB
-rwxr-xr-x
mysqld-debug
165.52
MB
-rwxr-xr-x
named
768.18
KB
-rwxr-xr-x
named-checkconf
32.25
KB
-rwxr-xr-x
named-checkzone
32.06
KB
-rwxr-xr-x
named-compilezone
32.06
KB
-rwxr-xr-x
named-journalprint
11.13
KB
-rwxr-xr-x
nameif
15.32
KB
-rwxr-xr-x
netreport
10.96
KB
-rwxr-xr-x
new-kernel-pkg
24.96
KB
-rwxr-xr-x
newusers
93.45
KB
-rwxr-xr-x
nfsdcltrack
40.11
KB
-rwxr-xr-x
nfsidmap
19.32
KB
-rwxr-xr-x
nfsiostat
23.64
KB
-rwxr-xr-x
nfsstat
29.84
KB
-rwxr-xr-x
nl-class-add
11.7
KB
-rwxr-xr-x
nl-class-delete
11.55
KB
-rwxr-xr-x
nl-class-list
11.48
KB
-rwxr-xr-x
nl-classid-lookup
11.29
KB
-rwxr-xr-x
nl-cls-add
11.76
KB
-rwxr-xr-x
nl-cls-delete
11.68
KB
-rwxr-xr-x
nl-cls-list
11.58
KB
-rwxr-xr-x
nl-link-list
11.52
KB
-rwxr-xr-x
nl-pktloc-lookup
11.36
KB
-rwxr-xr-x
nl-qdisc-add
11.6
KB
-rwxr-xr-x
nl-qdisc-delete
11.54
KB
-rwxr-xr-x
nl-qdisc-list
11.63
KB
-rwxr-xr-x
nologin
7.01
KB
-rwxr-xr-x
nscd
180.02
KB
-rwxr-xr-x
nsec3hash
11.13
KB
-rwxr-xr-x
nstat
23.88
KB
-rwxr-xr-x
ntpdate
107.58
KB
-rwxr-xr-x
ntsysv
36.24
KB
-rwxr-xr-x
osd_login
2.55
KB
-rwxr-xr-x
ownership
15.04
KB
-rwxr-xr-x
packer
11.06
KB
-rwxr-xr-x
pam_console_apply
39.69
KB
-rwxr-xr-x
pam_tally2
15.05
KB
-rwxr-xr-x
pam_timestamp_check
10.97
KB
-rwxr-xr-x
paperconfig
4.07
KB
-rwxr-xr-x
parted
77.22
KB
-rwxr-xr-x
partprobe
11.23
KB
-rwxr-xr-x
partx
86.55
KB
-rwxr-xr-x
pdata_tools
1.23
MB
-rwxr-xr-x
pdns_server
98.68
MB
-rwxr-xr-x
pidof
23.17
KB
-rwxr-xr-x
ping6
64.63
KB
-rwxr-xr-x
pivot_root
11.19
KB
-rwxr-xr-x
plipconfig
11.06
KB
-rwxr-xr-x
pm-hibernate
2.86
KB
-rwxr-xr-x
pm-powersave
2.09
KB
-rwxr-xr-x
pm-suspend
2.86
KB
-rwxr-xr-x
pm-suspend-hybrid
2.86
KB
-rwxr-xr-x
pm-utils-bugreport-info.sh
1.47
KB
-rwxr-xr-x
poweroff
704.8
KB
-rwxr-xr-x
ppp-watch
23.2
KB
-rwxr-xr-x
pure-authd
18.37
KB
-rwxr-xr-x
pure-certd
18.27
KB
-rwxr-xr-x
pure-config.pl
4.64
KB
-rwxr-xr-x
pure-ftpd
173.28
KB
-rwxr-xr-x
pure-ftpwho
25.96
KB
-rwxr-xr-x
pure-mrtginfo
9.93
KB
-rwxr-xr-x
pure-quotacheck
13.95
KB
-rwxr-xr-x
pure-uploadscript
14.21
KB
-rwxr-xr-x
pvchange
2.15
MB
-r-xr-xr-x
pvck
2.15
MB
-r-xr-xr-x
pvcreate
2.15
MB
-r-xr-xr-x
pvdisplay
2.15
MB
-r-xr-xr-x
pvmove
2.15
MB
-r-xr-xr-x
pvremove
2.15
MB
-r-xr-xr-x
pvresize
2.15
MB
-r-xr-xr-x
pvs
2.15
MB
-r-xr-xr-x
pvscan
2.15
MB
-r-xr-xr-x
pwck
51.71
KB
-rwxr-xr-x
pwconv
47.57
KB
-rwxr-xr-x
pwhistory_helper
15.44
KB
-rwxr-xr-x
pwunconv
47.59
KB
-rwxr-xr-x
quot
70.66
KB
-rwxr-xr-x
quotacheck
107.29
KB
-rwxr-xr-x
quotaoff
75.03
KB
-rwxr-xr-x
quotaon
75.03
KB
-rwxr-xr-x
quotastats
14.03
KB
-rwxr-xr-x
raid-check
3.7
KB
-rwxr-xr-x
rdisc
23.17
KB
-rwxr-xr-x
rdma
73.42
KB
-rwxr-xr-x
readprofile
15.46
KB
-rwxr-xr-x
reboot
704.8
KB
-rwxr-xr-x
regdbdump
7.12
KB
-rwxr-xr-x
repquota
75.16
KB
-rwxr-xr-x
request-key
19.41
KB
-rwxr-xr-x
resize2fs
48.41
KB
-rwxr-xr-x
resizepart
32.36
KB
-rwxr-xr-x
restorecon
27.16
KB
-rwxr-xr-x
rfkill
11.29
KB
-rwxr-xr-x
rmmod
143.24
KB
-rwxr-xr-x
rndc
35.88
KB
-rwxr-xr-x
rndc-confgen
19.44
KB
-rwxr-xr-x
rngd
42.39
KB
-rwxr-xr-x
rotatelogs
53
KB
-rwxr-xr-x
route
66.6
KB
-rwxr-xr-x
routef
173
B
-rwxr-xr-x
routel
1.59
KB
-rwxr-xr-x
rpc.gssd
88.73
KB
-rwxr-xr-x
rpc.idmapd
48.13
KB
-rwxr-xr-x
rpc.mountd
128.91
KB
-rwxr-xr-x
rpc.nfsd
40.2
KB
-rwxr-xr-x
rpc.rquotad
78.95
KB
-rwxr-xr-x
rpc.statd
97.59
KB
-rwxr-xr-x
rpcbind
60.07
KB
-rwxr-xr-x
rpcdebug
18.05
KB
-rwxr-xr-x
rpcinfo
27.3
KB
-rwxr-xr-x
rsyslogd
648.45
KB
-rwxr-xr-x
rtacct
41.93
KB
-rwxr-xr-x
rtcwake
31.96
KB
-rwxr-xr-x
rtmon
48.67
KB
-rwxr-xr-x
rtpr
37
B
-rwxr-xr-x
rtstat
20.09
KB
-rwxr-xr-x
runlevel
704.8
KB
-rwxr-xr-x
runq
1.33
MB
-rwsr-xr-x
runuser
32.21
KB
-rwxr-xr-x
sa
36.77
KB
-rwxr-xr-x
safe_finger
11.08
KB
-rwxr-xr-x
sasldblistusers2
19.26
KB
-rwxr-xr-x
saslpasswd2
15.09
KB
-rwxr-xr-x
sefcontext_compile
60.53
KB
-rwxr-xr-x
selabel_digest
11.17
KB
-rwxr-xr-x
selabel_lookup
11.14
KB
-rwxr-xr-x
selabel_lookup_best_match
11.16
KB
-rwxr-xr-x
selabel_partial_match
11.09
KB
-rwxr-xr-x
selinux_restorecon
15.21
KB
-rwxr-xr-x
selinuxconlist
11.1
KB
-rwxr-xr-x
selinuxdefcon
11.12
KB
-rwxr-xr-x
selinuxenabled
6.98
KB
-rwxr-xr-x
selinuxexeccon
7.09
KB
-rwxr-xr-x
semanage
42.76
KB
-rwxr-xr-x
semodule
23.77
KB
-rwxr-xr-x
sendmail
13.48
KB
-rwxr-sr-x
service
3.17
KB
-rwxr-xr-x
sestatus
15.02
KB
-rwxr-xr-x
setcap
11.13
KB
-rwxr-xr-x
setenforce
7.05
KB
-rwxr-xr-x
setfiles
27.16
KB
-rwxr-xr-x
setpci
23.4
KB
-rwxr-xr-x
setquota
83.16
KB
-rwxr-xr-x
setregdomain
1.7
KB
-rwxr-xr-x
setsebool
14.99
KB
-rwxr-xr-x
setup
15.38
KB
-rwxr-xr-x
sfdisk
83.25
KB
-rwxr-xr-x
sgdisk
168.33
KB
-rwxr-xr-x
sgpio
15.63
KB
-rwxr-xr-x
showmount
19.56
KB
-rwxr-xr-x
shutdown
704.8
KB
-rwxr-xr-x
sim_server
10.97
KB
-rwxr-xr-x
slattach
42.4
KB
-rwxr-xr-x
sln
743.78
KB
-rwxr-xr-x
sm-notify
68.43
KB
-rwxr-xr-x
smartctl
864.48
KB
-rwxr-xr-x
smartd
670.63
KB
-rwxr-xr-x
snmpd
31.05
KB
-rwxr-xr-x
snmptrapd
31.22
KB
-rwxr-xr-x
sosreport
561
B
-rwxr-xr-x
ss
128.44
KB
-rwxr-xr-x
sshd
836.91
KB
-rwxr-xr-x
sshd-keygen
3.53
KB
-rwxr-xr-x
start-statd
842
B
-rwxr-xr-x
start-stop-daemon
32.96
KB
-rwxr-xr-x
suexec
43.3
KB
-rwsr-xr-x
sulogin
40.53
KB
-rwxr-xr-x
suphp
2.47
MB
-rwsr-x---
sushell
67
B
-rwxr-xr-x
swaplabel
15.31
KB
-rwxr-xr-x
swapoff
15.53
KB
-rwxr-xr-x
swapon
53.29
KB
-rwxr-xr-x
switch_root
15.35
KB
-rwxr-xr-x
sys-unconfig
184
B
-rwxr-xr-x
sysctl
23.57
KB
-rwxr-xr-x
tc
384.66
KB
-rwxr-xr-x
tcpd
36.62
KB
-rwxr-xr-x
tcpdmatch
40.83
KB
-rwxr-xr-x
tcpdump
920.16
KB
-rwxr-xr-x
tcpslice
23.64
KB
-rwxr-xr-x
telinit
704.8
KB
-rwxr-xr-x
thin_check
1.23
MB
-rwxr-xr-x
thin_delta
1.23
MB
-rwxr-xr-x
thin_dump
1.23
MB
-rwxr-xr-x
thin_ls
1.23
MB
-rwxr-xr-x
thin_metadata_size
1.23
MB
-rwxr-xr-x
thin_repair
1.23
MB
-rwxr-xr-x
thin_restore
1.23
MB
-rwxr-xr-x
thin_rmap
1.23
MB
-rwxr-xr-x
thin_trim
1.23
MB
-rwxr-xr-x
tmpwatch
27.87
KB
-rwxr-xr-x
tracepath
15.05
KB
-rwxr-xr-x
tracepath6
15.05
KB
-rwxr-xr-x
try-from
23.47
KB
-rwxr-xr-x
tsig-keygen
19.44
KB
-rwxr-xr-x
tune2fs
69.41
KB
-rwxr-xr-x
tuned
3.29
KB
-rwxr-xr-x
tuned-adm
5.22
KB
-rwxr-xr-x
udevadm
414.27
KB
-rwxr-xr-x
umount.nfs
114.68
KB
-rwsr-xr-x
umount.nfs4
114.68
KB
-rwsr-xr-x
unix_chkpwd
35.42
KB
-rwxr-xr-x
unix_update
35.42
KB
-rwx------
update-alternatives
27.61
KB
-rwxr-xr-x
update-pciids
1.71
KB
-rwxr-xr-x
update-smart-drivedb
14.34
KB
-rwxr-xr-x
usb_modeswitch
57.61
KB
-rwxr-xr-x
usb_modeswitch_dispatcher
236.66
KB
-rwxr-xr-x
useradd
134.39
KB
-rwxr-xr-x
userdel
93.5
KB
-rwxr-xr-x
userhelper
39.38
KB
-rwx--x--x
usermod
130.33
KB
-rwxr-xr-x
usernetctl
11.03
KB
-rwxr-xr-x
uuserver
14.97
KB
-rwxr-xr-x
vgcfgbackup
2.15
MB
-r-xr-xr-x
vgcfgrestore
2.15
MB
-r-xr-xr-x
vgchange
2.15
MB
-r-xr-xr-x
vgck
2.15
MB
-r-xr-xr-x
vgconvert
2.15
MB
-r-xr-xr-x
vgcreate
2.15
MB
-r-xr-xr-x
vgdisplay
2.15
MB
-r-xr-xr-x
vgexport
2.15
MB
-r-xr-xr-x
vgextend
2.15
MB
-r-xr-xr-x
vgimport
2.15
MB
-r-xr-xr-x
vgimportclone
2.15
MB
-r-xr-xr-x
vgmerge
2.15
MB
-r-xr-xr-x
vgmknodes
2.15
MB
-r-xr-xr-x
vgreduce
2.15
MB
-r-xr-xr-x
vgremove
2.15
MB
-r-xr-xr-x
vgrename
2.15
MB
-r-xr-xr-x
vgs
2.15
MB
-r-xr-xr-x
vgscan
2.15
MB
-r-xr-xr-x
vgsplit
2.15
MB
-r-xr-xr-x
vigr
62.54
KB
-rwxr-xr-x
vipw
62.54
KB
-rwxr-xr-x
virt-what
11.57
KB
-rwxr-xr-x
visudo
200.91
KB
-rwxr-xr-x
vmcore-dmesg
19.28
KB
-rwxr-xr-x
vpddecode
15.33
KB
-rwxr-xr-x
weak-modules
31.9
KB
-rwxr-xr-x
whmapi0
3.02
MB
-rwxr-xr-x
whmapi1
3.02
MB
-rwxr-xr-x
whmlogin
2.33
KB
-rwxr-xr-x
wipefs
28.05
KB
-rwxr-xr-x
xfs_admin
1.35
KB
-rwxr-xr-x
xfs_bmap
638
B
-rwxr-xr-x
xfs_copy
339.33
KB
-rwxr-xr-x
xfs_db
576.38
KB
-rwxr-xr-x
xfs_estimate
11.16
KB
-rwxr-xr-x
xfs_freeze
767
B
-rwxr-xr-x
xfs_fsr
31.83
KB
-rwxr-xr-x
xfs_growfs
327.2
KB
-rwxr-xr-x
xfs_info
472
B
-rwxr-xr-x
xfs_io
122.68
KB
-rwxr-xr-x
xfs_logprint
355.81
KB
-rwxr-xr-x
xfs_mdrestore
314.81
KB
-rwxr-xr-x
xfs_metadump
747
B
-rwxr-xr-x
xfs_mkfile
1007
B
-rwxr-xr-x
xfs_ncheck
650
B
-rwxr-xr-x
xfs_quota
84.88
KB
-rwxr-xr-x
xfs_repair
563.2
KB
-rwxr-xr-x
xfs_rtcp
15.25
KB
-rwxr-xr-x
xfsdump
291.68
KB
-rwxr-xr-x
xfsinvutil
61.87
KB
-rwxr-xr-x
xfsrestore
353.26
KB
-rwxr-xr-x
xqmstats
14.03
KB
-rwxr-xr-x
xtables-multi
91.52
KB
-rwxr-xr-x
yum-complete-transaction
9.22
KB
-rwxr-xr-x
yumdb
8.67
KB
-rwxr-xr-x
zabbix_agentd
691.83
KB
-rwxr-xr-x
zdump
14.02
KB
-rwxr-xr-x
zic
50.02
KB
-rwxr-xr-x
zramctl
82.23
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : kpatch
#!/bin/bash # # kpatch hot patch module management script # # Copyright (C) 2014 Seth Jennings <sjenning@redhat.com> # Copyright (C) 2014 Josh Poimboeuf <jpoimboe@redhat.com> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA, # 02110-1301, USA. # This is the kpatch user script that manages installing, loading, and # displaying information about kernel patch modules installed on the system. INSTALLDIR=/var/lib/kpatch SCRIPTDIR="$(readlink -f "$(dirname "$(type -p "$0")")")" VERSION="0.6.1" POST_ENABLE_WAIT=15 # seconds POST_SIGNAL_WAIT=60 # seconds # How many times to try loading the patch if activeness safety check fails. MAX_LOAD_ATTEMPTS=5 # How long to wait before retry, in seconds. RETRY_INTERVAL=2 usage_cmd() { printf ' %-20s\n %s\n' "$1" "$2" >&2 } usage () { # ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION # When changing this, please also update the man page. Thanks! echo "usage: kpatch <command> [<args>]" >&2 echo >&2 echo "Valid commands:" >&2 usage_cmd "install [-k|--kernel-version=<kernel version>] <module>" "install patch module to be loaded at boot" usage_cmd "uninstall [-k|--kernel-version=<kernel version>] <module>" "uninstall patch module" echo >&2 usage_cmd "load --all" "load all installed patch modules into the running kernel" usage_cmd "load <module>" "load patch module into the running kernel" usage_cmd "unload --all (UNSUPPORTED)" "unload all patch modules from the running kernel" usage_cmd "unload <module> (UNSUPPORTED)" "unload patch module from the running kernel" echo >&2 usage_cmd "info <module>" "show information about a patch module" echo >&2 usage_cmd "list" "list installed patch modules" echo >&2 usage_cmd "signal" "signal/poke any process stalling the current patch transition" echo >&2 usage_cmd "version" "display the kpatch version" exit 1 } warn() { echo "kpatch: $*" >&2 } die() { warn "$@" exit 1 } confirm_prompt() { local prompt="$1" local answer while true; do read -rp "$prompt [Y/N] " answer [[ $answer == 'Y' || $answer == 'y' ]] && return 0 [[ $answer == 'N' || $answer == 'n' ]] && return 1 done } __find_module () { MODULE="$1" [[ -f "$MODULE" ]] && return MODULE="$INSTALLDIR/$(uname -r)/$1" [[ -f "$MODULE" ]] && return return 1 } mod_name () { MODNAME="$(basename "$1")" MODNAME="${MODNAME%.ko}" MODNAME="${MODNAME//-/_}" } find_module () { arg="$1" if [[ "$arg" =~ \.ko ]]; then __find_module "$arg" || return 1 mod_name "$MODULE" return else for i in "$INSTALLDIR/$(uname -r)"/*; do mod_name "$i" if [[ "$MODNAME" == "$arg" ]]; then MODULE="$i" return fi done fi return 1 } find_core_module() { COREMOD="$SCRIPTDIR"/../kmod/core/kpatch.ko [[ -f "$COREMOD" ]] && return COREMOD="/usr/local/lib/kpatch/$(uname -r)/kpatch.ko" [[ -f "$COREMOD" ]] && return COREMOD="/usr/lib/kpatch/$(uname -r)/kpatch.ko" [[ -f "$COREMOD" ]] && return COREMOD="/usr/local/lib/modules/$(uname -r)/extra/kpatch/kpatch.ko" [[ -f "$COREMOD" ]] && return COREMOD="/usr/lib/modules/$(uname -r)/extra/kpatch/kpatch.ko" [[ -f "$COREMOD" ]] && return return 1 } core_loaded () { grep -q -e "T klp_enable_patch" -e "T kpatch_register" /proc/kallsyms } get_module_name () { readelf -p .gnu.linkonce.this_module "$1" | grep '\[.*\]' | awk '{print $3}' } init_sysfs_var() { # If the kernel is configured with CONFIG_LIVEPATCH, use that. # Otherwise, use the kpatch core module (kpatch.ko). if [[ -e /sys/kernel/livepatch ]] ; then # livepatch ABI SYSFS="/sys/kernel/livepatch" elif [[ -e /sys/kernel/kpatch/patches ]] ; then # kpatch pre-0.4 ABI SYSFS="/sys/kernel/kpatch/patches" else # kpatch 0.4 ABI SYSFS="/sys/kernel/kpatch" fi } verify_module_checksum () { modname="$(get_module_name "$1")" [[ -z "$modname" ]] && return 1 checksum="$(readelf -p .kpatch.checksum "$1" 2>&1 | grep '\[.*\]' | awk '{print $3}')" # Fail checksum match only if both exist and diverge if [[ ! -z "$checksum" ]] && [[ -e "$SYSFS/${modname}/checksum" ]] ; then sysfs_checksum="$(cat "$SYSFS/${modname}/checksum")" [[ "$checksum" == "$sysfs_checksum" ]] || return 1 fi return 0 } in_transition() { local moddir="$SYSFS/$1" [[ $(cat "$moddir/transition" 2>/dev/null) == "1" ]] && return 0 return 1 } is_stalled() { local module="$1" local pid="$2" local patch_enabled local patch_state patch_enabled="$(cat "$SYSFS/$module/enabled" 2>/dev/null)" patch_state="$(cat "/proc/$pid/patch_state" 2>/dev/null)" # No patch transition in progress [[ "$patch_state" == "-1" ]] && return 1 [[ -z "$patch_enabled" ]] || [[ -z "$patch_state" ]] && return 1 # Stalls can be determined if the process state does not match # the transition target (ie, "enabled" and "patched", "disabled" # and "unpatched"). The state value enumerations match, so we # can just compare them directly: [[ "$patch_enabled" != "$patch_state" ]] && return 0 return 1 } get_transition_patch() { local module local modname for module in "$SYSFS"/*; do modname=$(basename "$module") if in_transition "$modname" ; then echo "$modname" return fi done } show_stalled_processes() { local module local proc_task local tid module=$(get_transition_patch) [[ -z "$module" ]] && return echo "" echo "Stalled processes:" for proc_task in /proc/[0-9]*/task/[0-9]*; do tid=${proc_task#*/task/} is_stalled "$module" "$tid" && echo "$tid $(cat "$proc_task"/comm 2>/dev/null)" done } signal_stalled_processes() { local module local proc_task local tid module=$(get_transition_patch) [[ -z "$module" ]] && return if [[ -e "/sys/kernel/livepatch/$module/signal" ]] ; then echo 1 > "/sys/kernel/livepatch/$module/signal" else for proc_task in /proc/[0-9]*/task/[0-9]*; do tid=${proc_task#*/task/} if is_stalled "$module" "$tid" ; then if [[ "$tid" -eq "$$" ]] ; then echo "skipping pid $tid $(cat "$proc_task"/comm 2>/dev/null)" else echo "signaling pid $tid $(cat "$proc_task"/comm 2>/dev/null)" kill -SIGSTOP "$tid" sleep .1 kill -SIGCONT "$tid" fi fi done fi } wait_for_patch_transition() { local module="$1" local i in_transition "$module" || return 0 echo "waiting (up to $POST_ENABLE_WAIT seconds) for patch transition to complete..." for (( i=0; i<POST_ENABLE_WAIT; i++ )); do if ! in_transition "$module" ; then echo "transition complete ($i seconds)" return 0 fi sleep 1s done echo "patch transition has stalled, signaling stalled process(es):" signal_stalled_processes echo "waiting (up to $POST_SIGNAL_WAIT seconds) for patch transition to complete..." for (( i=0; i<POST_SIGNAL_WAIT; i++ )); do if ! in_transition "$module" ; then echo "transition complete ($i seconds)" return 0 fi sleep 1s done return 1 } load_module () { local module="$1" if ! core_loaded; then if modprobe -q kpatch; then echo "loaded core module" else find_core_module || die "can't find core module" echo "loading core module: $COREMOD" insmod "$COREMOD" || die "failed to load core module" fi # Now that the core module has been loaded, set $SYSFS to the # correct value based on the loaded core module's ABI. init_sysfs_var fi local modname modname="$(get_module_name "$module")" local moddir="$SYSFS/$modname" if [[ -d "$moddir" ]] ; then if [[ "$(cat "${moddir}/enabled")" -eq 0 ]]; then if verify_module_checksum "$module"; then # same checksum echo "module already loaded, re-enabling" echo 1 > "${moddir}/enabled" || die "failed to re-enable module $modname" if ! wait_for_patch_transition "$modname" ; then echo "module $modname did not complete its transition, disabling..." echo 0 > "${moddir}/enabled" || die "failed to disable module $modname" wait_for_patch_transition "$modname" die "error: failed to re-enable module $modname (transition stalled), patch disabled" fi return else die "error: cannot re-enable patch module $modname, cannot verify checksum match" fi else echo "module named $modname already loaded and enabled" fi else echo "loading patch module: $module" local i=0 while true; do out="$(LC_ALL=C insmod "$module" 2>&1)" [[ -z "$out" ]] && break echo "$out" 1>&2 [[ ! "$out" =~ "Device or resource busy" ]] && die "failed to load module $module" # "Device or resource busy" means the activeness safety check # failed. Retry in a few seconds. i=$((i+1)) if [[ $i -eq $MAX_LOAD_ATTEMPTS ]]; then die "failed to load module $module" break else warn "retrying..." sleep $RETRY_INTERVAL fi done fi if ! wait_for_patch_transition "$modname" ; then echo "module $modname did not complete its transition, unloading..." unload_module "$modname" die "error: failed to load module $modname (transition stalled)" fi return 0 } disable_patch () { local modname="$1" local enabled="$SYSFS/$modname/enabled" [[ -e "$enabled" ]] || die "patch module $1 is not loaded" if [[ "$(cat "$enabled")" -eq 1 ]]; then echo "disabling patch module: $modname" local i=0 while true; do out="$(export LC_ALL=C; sh -c "echo 0 > $enabled" 2>&1)" [[ -z "$out" ]] && break echo "$out" 1>&2 if [[ ! "$out" =~ "Device or resource busy" ]]; then die "failed to disable module $modname" fi # "Device or resource busy" means the activeness safety check # failed. Retry in a few seconds. i=$((i+1)) if [[ $i -eq $MAX_LOAD_ATTEMPTS ]]; then die "failed to disable module $modname" else warn "retrying..." sleep $RETRY_INTERVAL fi done fi if ! wait_for_patch_transition "$modname" ; then die "transition stalled for $modname" fi } unload_module () { PATCH="${1//-/_}" PATCH="${PATCH%.ko}" disable_patch "$PATCH" echo "unloading patch module: $PATCH" # ignore any error here because rmmod can fail if the module used # KPATCH_FORCE_UNSAFE. rmmod "$PATCH" 2> /dev/null || return 0 } get_module_version() { MODVER="$(modinfo -F vermagic "$1")" || return 1 MODVER="${MODVER/ */}" } unset MODULE # Initialize the $SYSFS var. This only works if the core module has been # loaded. Otherwise, the value of $SYSFS doesn't matter at this point anyway, # and we'll have to call this function again after loading it. init_sysfs_var [[ "$#" -lt 1 ]] && usage # RHEL-specific support options case "$1" in "force") # For scripting purposes, support "kpatch force unload". # Shift out the "force" to avoid the user-prompt check below. shift ;; "unload") confirm_prompt "WARNING: Red Hat doesn't support unloading of kpatches, continue anyway?" || exit 1 ;; esac case "$1" in "load") [[ "$#" -ne 2 ]] && usage case "$2" in "--all") for i in "$INSTALLDIR/$(uname -r)"/*.ko; do [[ -e "$i" ]] || continue load_module "$i" || die "failed to load module $i" done ;; *) PATCH="$2" find_module "$PATCH" || die "can't find $PATCH" load_module "$MODULE" || die "failed to load module $PATCH" ;; esac ;; "unload") [[ "$#" -ne 2 ]] && usage case "$2" in "--all") for module in "$SYSFS"/*; do [[ -e "$module" ]] || continue unload_module "$(basename "$module")" || die "failed to unload module $module" done ;; *) unload_module "$(basename "$2")" || die "failed to unload module $2" ;; esac ;; "install") KVER="$(uname -r)" shift options="$(getopt -o k: -l "kernel-version:" -- "$@")" || die "getopt failed" eval set -- "$options" while [[ $# -gt 0 ]]; do case "$1" in -k|--kernel-version) KVER="$2" shift ;; --) [[ -z "$2" ]] && die "no module file specified" PATCH="$2" ;; esac shift done [[ ! -e "$PATCH" ]] && die "$PATCH doesn't exist" [[ "${PATCH: -3}" == ".ko" ]] || die "$PATCH isn't a .ko file" get_module_version "$PATCH" || die "modinfo failed" [[ "$KVER" != "$MODVER" ]] && die "invalid module version $MODVER for kernel $KVER" [[ -e "$INSTALLDIR/$KVER/$(basename "$PATCH")" ]] && die "$PATCH is already installed" echo "installing $PATCH ($KVER)" mkdir -p "$INSTALLDIR/$KVER" || die "failed to create install directory" cp -f "$PATCH" "$INSTALLDIR/$KVER" || die "failed to install module $PATCH" systemctl enable kpatch.service ;; "uninstall") KVER="$(uname -r)" shift options="$(getopt -o k: -l "kernel-version:" -- "$@")" || die "getopt failed" eval set -- "$options" while [[ $# -gt 0 ]]; do case "$1" in -k|--kernel-version) KVER="$2" shift ;; --) [[ -z "$2" ]] && die "no module file specified" PATCH="$2" [[ "$PATCH" != "$(basename "$PATCH")" ]] && die "please supply patch module name without path" ;; esac shift done MODULE="$INSTALLDIR/$KVER/$PATCH" if [[ ! -f "$MODULE" ]]; then mod_name "$PATCH" PATCHNAME="$MODNAME" for i in "$INSTALLDIR/$KVER"/*; do mod_name "$i" if [[ "$MODNAME" == "$PATCHNAME" ]]; then MODULE="$i" break fi done fi [[ ! -e "$MODULE" ]] && die "$PATCH is not installed for kernel $KVER" echo "uninstalling $PATCH ($KVER)" rm -f "$MODULE" || die "failed to uninstall module $PATCH" ;; "list") [[ "$#" -ne 1 ]] && usage echo "Loaded patch modules:" for module in "$SYSFS"/*; do if [[ -e "$module" ]]; then modname=$(basename "$module") if [[ "$(cat "$module/enabled" 2>/dev/null)" -eq 1 ]]; then in_transition "$modname" && state="enabling..." \ || state="enabled" else in_transition "$modname" && state="disabling..." \ || state="disabled" fi echo "$modname [$state]" fi done show_stalled_processes echo "" echo "Installed patch modules:" for kdir in "$INSTALLDIR"/*; do [[ -e "$kdir" ]] || continue for module in "$kdir"/*.ko; do [[ -e "$module" ]] || continue mod_name "$module" echo "$MODNAME ($(basename "$kdir"))" done done ;; "info") [[ "$#" -ne 2 ]] && usage PATCH="$2" find_module "$PATCH" || die "can't find $PATCH" echo "Patch information for $PATCH:" modinfo "$MODULE" || die "failed to get info for module $PATCH" ;; "signal") [[ "$#" -ne 1 ]] && usage signal_stalled_processes ;; "help"|"-h"|"--help") usage ;; "version"|"-v"|"--version") echo "$VERSION" ;; *) echo "subcommand $1 not recognized" usage ;; esac
Close