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.50
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 : update-smart-drivedb
#!/usr/bin/sh # # smartmontools drive database update script # # Home page of code is: https://www.smartmontools.org # # Copyright (C) 2010-20 Christian Franke # # SPDX-License-Identifier: GPL-2.0-or-later # # $Id: update-smart-drivedb.in 5153 2020-12-30 14:09:46Z chrfranke $ # set -e # Set by config.status export PATH="/usr/local/bin:/usr/bin:/bin" PACKAGE="smartmontools" VERSION="7.2" prefix="/usr" exec_prefix="/usr" sbindir="/usr/sbin" datarootdir="${prefix}/share" datadir="/usr/share" drivedbdir="${datadir}/${PACKAGE}" # Download tools os_dltools="curl wget lynx svn" # drivedb.h update branch BRANCH="RELEASE_7_2_DRIVEDB" # Default drivedb location DRIVEDB="$drivedbdir/drivedb.h" # GnuPG used to verify signature (disabled if empty) GPG="gpg" # Smartctl used for syntax check SMARTCTL="$sbindir/smartctl" # PATH information for help and error messages #pathinfo='$PATH' pathinfo="'$PATH'" myname=$0 usage() { pathinfo=" $pathinfo" cat <<EOF smartmontools $VERSION drive database update script Usage: $myname [OPTIONS] [DESTFILE] -s SMARTCTL Use SMARTCTL for syntax check ('-s -' to disable) [default: $SMARTCTL] -t TOOL Use TOOL for download: $os_dltools [default: first one found in $pathinfo] -u LOCATION Use URL of LOCATION for download: github (GitHub mirror of SVN repository) sf (Sourceforge code browser) svn (SVN repository) [default] svni (SVN repository via HTTP instead of HTTPS) trac (Trac code browser) --trunk Download from SVN trunk (may require '--no-verify') --branch X.Y Download from branches/RELEASE_X_Y_DRIVEDB --cacert FILE Use CA certificates from FILE to verify the peer --capath DIR Use CA certificate files from DIR to verify the peer --insecure Don't abort download if certificate verification fails --no-verify Don't verify signature --export-key Print the OpenPGP/GPG public key block --dryrun Print download commands only -v Verbose output Updates $DRIVEDB or DESTFILE from branches/$BRANCH of smartmontools SVN repository. EOF exit 1 } error() { echo "$myname: $*" >&2 exit 1 } err_notfound() { case $1 in */*) error "$1: not found $2" ;; *) error "$1: not found in $pathinfo $2" ;; esac } warning() { echo "$myname: (Warning) $*" >&2 } selecturl() { case $1 in github) # https://github.com/smartmontools/smartmontools/raw/origin/$BRANCH/smartmontools/drivedb.h # https://github.com/smartmontools/smartmontools/raw/master/smartmontools/drivedb.h # redirected to: url='https://raw.githubusercontent.com/smartmontools/smartmontools/master/smartmontools/drivedb.h' ;; sf) url='https://sourceforge.net/p/smartmontools/code/HEAD/tree/trunk/smartmontools/drivedb.h?format=raw' ;; svn) url='https://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools/drivedb.h' ;; svni) url='http://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools/drivedb.h' ;; trac) url='https://www.smartmontools.org/export/HEAD/trunk/smartmontools/drivedb.h' ;; *) usage ;; esac } inpath() { local d rc save rc=1 save=$IFS IFS=':' for d in $PATH; do test -f "$d/$1" || continue test -x "$d/$1" || continue rc=0 break done IFS=$save return $rc } vecho() { test -n "$q" || echo "$*" } # vrun COMMAND ARGS... vrun() { if [ -n "$dryrun" ]; then echo "$*" elif [ -n "$q" ]; then "$@" 2>/dev/null else echo "$*" "$@" fi } # vrun2 OUTFILE COMMAND ARGS... vrun2() { local f err rc f=$1; shift rc=0 if [ -n "$dryrun" ]; then echo "$* > $f" else vecho "$* > $f" err=`"$@" 2>&1 > $f` || rc=$? if [ -n "$err" ]; then vecho "$err" >&2 test $rc != 0 || rc=42 fi fi return $rc } # download URL FILE download() { local f u rc u=$1; f=$2 rc=0 case $tool in curl) # "Accept-Encoding" header avoids caching problems with svn URL vrun curl ${q:+-s} -f --max-redirs 0 \ -H "Accept-Encoding: identity" \ ${cacert:+--cacert "$cacert"} \ ${capath:+--capath "$capath"} \ ${insecure:+--insecure} \ -o "$f" "$u" || rc=$? ;; wget) # wget >= 1.16.1 sets "Accept-Encoding: identity" header by default vrun wget $q --max-redirect=0 \ ${cacert:+--ca-certificate="$cacert"} \ ${capath:+--ca-directory="$capath"} \ ${insecure:+--no-check-certificate} \ -O "$f" "$u" || rc=$? ;; lynx) test -z "$cacert" || vrun export SSL_CERT_FILE="$cacert" test -z "$capath" || vrun export SSL_CERT_DIR="$capath" # Check also stderr as lynx does not return != 0 on HTTP error vrun2 "$f" lynx -stderr -noredir -source "$u" || rc=$? ;; svn) vrun svn $q export \ --non-interactive --no-auth-cache \ ${cacert:+--config-option "servers:global:ssl-trust-default-ca=no"} \ ${cacert:+--config-option "servers:global:ssl-authority-files=$cacert"} \ ${insecure:+--trust-server-cert} \ "$u" "$f" || rc=$? ;; fetch) # FreeBSD vrun fetch $q --no-redirect \ ${cacert:+--ca-cert "$cacert"} \ ${capath:+--ca-path "$capath"} \ ${insecure:+--no-verify-hostname} \ -o "$f" "$u" || rc=$? ;; ftp) # OpenBSD vrun ftp \ ${cacert:+-S cafile="$cacert"} \ ${capath:+-S capath="$capath"} \ ${insecure:+-S dont} \ -o "$f" "$u" || rc=$? ;; *) error "$tool: unknown (internal error)" ;; esac return $rc } # check_file FILE FIRST_CHAR MIN_SIZE MAX_SIZE check_file() { local firstchar f maxsize minsize size test -z "$dryrun" || return 0 f=$1; firstchar=$2; minsize=$3; maxsize=$4 # Check first chars case `dd if="$f" bs=1 count=1 2>/dev/null` in $firstchar) ;; \<) echo "HTML error message"; return 1 ;; *) echo "unknown file contents"; return 1 ;; esac # Check file size size=`wc -c < "$f"` if test "$size" -lt $minsize; then echo "too small file size $size bytes" return 1 fi if test "$size" -gt $maxsize; then echo "too large file size $size bytes" return 1 fi return 0 } # unexpand_svn_id < INFILE > OUTFILE unexpand_svn_id() { sed 's,\$''Id'': drivedb\.h [0-9][0-9]* 2[-0-9]* [012][:0-9]*Z [a-z][a-z0-9]* \$,$''Id''$,' } # selectkey BRANCH selectkey() { case $1 in RELEASE_5_4[0-3]_DRIVEDB|RELEASE_6_[0-6]_DRIVEDB) # Smartmontools Signing Key (ext. to 2024) <smartmontools-database@listi.jpberlin.de> # Smartmontools Signing Key (through 2018) <smartmontools-database@listi.jpberlin.de> # Smartmontools Signing Key (through 2018) <smartmontools-database@lists.sourceforge.net> # Key ID DFD22559 public_key="\ -----BEGIN PGP PUBLIC KEY BLOCK----- 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 1TC5jSVOIEqOE4TwzRz1Y/dfqSU= =3Lcg -----END PGP PUBLIC KEY BLOCK----- " ;; RELEASE_7_[02]_DRIVEDB) # Smartmontools Signing Key (through 2025) <smartmontools-database@listi.jpberlin.de> # Smartmontools Signing Key (through 2020) <smartmontools-database@listi.jpberlin.de> # Key ID 721042C5 public_key="\ -----BEGIN PGP PUBLIC KEY BLOCK----- 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 90iSgZdt5cZgoH04weXCMwDugn/+Q3rzKvRUTrEfSOivJYg65D/mhbz6HoUTs4JD SstTYa9qNCwKQGRSeis4PAgu0hCpnDAhZuN3Ja5AFC2Wi2szQ7R+Zx/JucIBm5S4 U30W66MtsyUHeulSJ3AV3HrbFfnqu6zfQM4XLw7MpAtQUNJceS/lWfGIquAp3tY/ IjZIHwgZqKB3czWDhM83wBzCWgAmxyzIrpb4MBYJ5PGuCyC7R/YTdtPJXxsPQl2l znsX/9ssa4kBHAQTAQIABgUCX+CfSAAKCRDzh2PO39IlWVcuB/9UkLaPtGY4sDDV /A7qjSvSy93mv8gkaIj9dhqoZw+r7cLiEtX04Cz9PqocOFgCYJXKrufHNNkHke2A jE9EJfRKiPU/bkeWmrACvtrOd/DZbdmXfxTOekOr516D2ip/U8GBPw6zxfCQVot6 htpBpB6zzMDtzMOeLnkOxoxR4EMu5K6eJ48bHvG/lbGBByyfRzhtqPh6AAA9G1CC IdhNkaA5W1qums3N1mCXrTBnWyjaFhdnttGQfrMdHvTQ77HeL0c2axT2y5PYfrXY 2ZfZowYLEtFXRSTpDaJfgG+qem3N+pMv6SMOG/4CvlH4/3Hq0aCNvKcY5KUXfIgT xmc3/n/wtFNTbWFydG1vbnRvb2xzIFNpZ25pbmcgS2V5ICh0aHJvdWdoIDIwMjAp IDxzbWFydG1vbnRvb2xzLWRhdGFiYXNlQGxpc3RpLmpwYmVybGluLmRlPokCPgQT AQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAl/gnzAFCQ0umpsACgkQ 6nSrJXIQQsVK7RAAqbZfT3wZEfJkw8MK2JlvgGWH76fHKn5ZoH5i0mA4AvN4QLbU 5Q20HmqHnO9mfAZQ6u4Tn/aFcYT7nlSsEsEmFX+s5QU2y6m2Tx9ThDbZ03ezREOS 0wNf0FOQunV9ZVPT/7cKIgWJa5mZy+LClor9OHllyGUfs9tKNzwxaHh1zBrCNJow Fi/1bkWy3iMc7vZhWHASwPSp64KHjB4UdMz2hV4pROiUhWi7BY0exIHyZrkcANMP Hhl9lP32ZvNbOy8osBdPUgXyK3HePD+ftcwJMkoc4mFQXYi9UY7NQpk7STRO10cx Kq/CgDDvYxbnViRjQoJ0sfwKCaOfsnY/gea7I0aCx8uNISYpHO9iMidd/tJ7+lgx NiKZTI0EppHYvkyMY15/NGb0gTJbYjuVYdbqDS9mnLuLQAjAX43+n9ND2NjX1o0q Z9bBqV2VFioNmnxKqGphhRFX9jEzTklieOjhpRrd8v9ljprT6vLFNpYpeLkel8om VFXrHxrfzKtVFcto5wqHVOcyZyE2zm1QmsS8qvWOTrNfY6p2q9MA2rysqdfgfvN7 pNDaXutK6ooQi6YlyyTA2ANnHFKa0ncRH+dg+5OF9rhNvM7RyaBXgxF7+5gnU5Gb VQRKbJ+LOtSKkj0pApR5AKSwyGslZ2bNVlKsADWhk5xj8QlHVlNWiht+i/6JARwE EwECAAYFAlwmhpwACgkQL83sC9OvGqsVOggAqLB5eQrUv8E9ikD6kJCito827bzD WF29yD7PvfhjXaz5in54jOVpwg3o9CsqIjjRW0/1bBVswC8ZL0sAdZ+GDSDMw5F2 IpkD77gjnFY79M/e6C9xYyxYzHC7emDPSz9IroOvdkkEgrB+OABKkaOCcS18P4Lk 3WNHaPw5c7aI0z1iJP52EmSfvB8r86mtUFJB+f15eD/4vaRfkZLFjF9FQ3kgEK1U +rV4s1O2bCFfP3WPDcc83NgwRUvtXmcSOSOIoXnemJzyJr+JnqCWVET4XWF6i20m RFXVEpWtf5AkJYgR3z/jW0djELbBWA/35bAnpXy5pDHv9NbZsTkBZxK/kokBHAQT AQIABgUCXCaGnQAKCRAY7NpGy/a6xn4lB/90tXTnZsgmoftol9uivfQrPdR88WmO ZLYmUeQAd1rqSFMxe+KzO/qLuU8s6OF4nznwL2cPfbGZxezM4PiYmAmbbEU/3gTO NwjVBBA0Gfimy/fITEezFtCigo1thkaJ195g/dqY+zE3Vt4rzC03j1vx8mUHRPU6 kkvKj8cP0j+XHX2xQDsTXTstfnom29wBmGnvSZ9HgcdL71e1VXJXwikmnO3P4J/1 C2LeCOlWrGqWZ2c0WBLKdJnsYUx7Dm/OvkkB4lF+zWp98zS8jS/5h+1apVgEzrdT MvT8ydTkUr7ObKGkIhK+L+Xo5BD+V9Qf6xKGYPwhhdj/E5/kyjULrm10iQEcBBMB AgAGBQJcJoadAAoJEPOHY87f0iVZfiUH/3yKS5wGvTeRInse8+W1WzKuto3XzqXL ngb9QXWw7nCwqmNS7PbzDnufQi2ThKrMfcK14WgNYABNZPU75I+6bcb0oCB5tloo IUEV/2Ut/5Hl/83zFFoNA/kQKVz8kIDqgRcxC+zY2VJ4eTKHyQDvXygVk8wnKTBa e3gX+CIZqJHPXiiygHlbl31Mi3G1Iaxu57dP6ocV0vX1dytKSwd4Rbviwwb4L76o /tVT9t3GwFM15uK1SqtnAaiaktEdMi3XI4d01H3VUVz/iR0XQbf13RZoEM6CJWms Q/qvYlwkbKOdlahjoHrFlkhADSBaO9N1OZp3OYDjziIujMdt2IPKnmM= =7MQk -----END PGP PUBLIC KEY BLOCK----- " ;; *) error "No known public key for branches/$1" ;; esac } # gpg_verify FILE.asc FILE gpg_verify() { local gnupgtmp out rc # Create temp home dir gnupgtmp="$tmpdir/.gnupg.$$.tmp" rm -f -r "$gnupgtmp" mkdir "$gnupgtmp" || exit 1 chmod 0700 "$gnupgtmp" # Import public key if ! out=`echo "$public_key" | "$GPG" --batch --no-tty --homedir="$gnupgtmp" --import 2>&1`; then echo "$out" >&2 exit 1 fi vecho "$out" # Verify rc=0 out=`"$GPG" --batch --no-tty --homedir="$gnupgtmp" --verify "$1" "$2" </dev/null 2>&1` || rc=1 if [ $rc = 0 ]; then vecho "$out" else # print gpg error always echo "$out" >&2 fi rm -f -r "$gnupgtmp" return $rc } # mv_all PREFIX OLD NEW mv_all() { mv "${1}${2}" "${1}${3}" mv "${1}${2}.raw" "${1}${3}.raw" mv "${1}${2}.raw.asc" "${1}${3}.raw.asc" } # Parse options smtctl=$SMARTCTL tool= urlid="svn" q="-q" dryrun= trunk= brnch=$BRANCH cacert= capath= insecure= no_verify= expkey= while true; do case $1 in -s) shift; test -n "$1" || usage smtctl=$1 ;; -t) shift case $1 in *\ *) usage ;; esac case " $os_dltools " in *\ $1\ *) ;; *) usage ;; esac tool=$1 ;; -u) shift; test -n "$1" || usage urlid=$1 ;; -v) q= ;; --dryrun) dryrun=t ;; --trunk) trunk=trunk ;; --branch) shift brnch=`echo "$1" | sed -n 's,^\([567]\)\.\([0-9][0-9]*\)$,RELEASE_\1_\2_DRIVEDB,p'` test -n "$brnch" || usage ;; --cacert) shift; test -n "$1" || usage cacert=$1 ;; --capath) shift; test -n "$1" || usage capath=$1 ;; --insecure) insecure=t ;; --no-verify) no_verify=t ;; --export-key) expkey=t ;; -*) usage ;; *) break ;; esac; shift; done if [ -n "$expkey" ]; then test $# = 0 || usage selectkey "$brnch" cat <<EOF $public_key EOF exit 0 fi case $# in 0) DEST=$DRIVEDB ;; 1) DEST=$1 ;; *) usage ;; esac selecturl "$urlid" if [ -z "$tool" ]; then # Find download tool in PATH for t in $os_dltools; do if inpath "$t"; then tool=$t break fi done test -n "$tool" || error "found none of '$os_dltools' in $pathinfo" fi # Check option compatibility case "$tool:$url" in svn:http*://svn.code.sf.net*) ;; svn:*) error "'-t svn' requires '-u svn' or '-u svni'" ;; esac case "$tool:${capath:+set}" in svn:set) warning "'--capath' is ignored if '-t svn' is used" ;; esac case "${insecure:-f}:$url" in t:http:*) insecure= ;; ?:https:*) ;; *) error "'-u svni' requires '--insecure'" ;; esac case "$tool:$insecure" in lynx:t) warning "'--insecure' is ignored if '-t lynx' is used" ;; esac # Check for smartctl if [ "$smtctl" != "-" ]; then "$smtctl" -V >/dev/null 2>&1 \ || err_notfound "$smtctl" "('-s -' to ignore)" fi # Check for GnuPG if [ -z "$no_verify" ]; then test -n "$GPG" \ || error "GnuPG is not available ('--no-verify' to ignore)" "$GPG" --version >/dev/null 2>&1 \ || err_notfound "$GPG" "('--no-verify' to ignore)" selectkey "$brnch" fi # Use destination directory as temp directory for gpg tmpdir=`dirname "$DEST"` # Adjust URLs src=`echo "$url" | sed -e "s,/trunk/,/branches/$brnch/," \ -e "s,/master/,/origin/$brnch/,"` src_asc=`echo "$src" | sed "s,/drivedb\.h,/drivedb.h.raw.asc,"` test -z "$trunk" || src=$url # Download test -n "$dryrun" || rm -f "$DEST.new" "$DEST.new.raw" "$DEST.new.raw.asc" vecho "Download ${trunk:-branches/$brnch}/drivedb.h with $tool" rc=0 download "$src" "$DEST.new" || rc=$? if [ $rc != 0 ]; then rm -f "$DEST.new" error "${trunk:-$brnch}/drivedb.h: download failed ($tool: exit $rc)" fi if ! errmsg=`check_file "$DEST.new" '/' 10000 1000000`; then mv "$DEST.new" "$DEST.error" error "$DEST.error: $errmsg" fi vecho "Download branches/$brnch/drivedb.h.raw.asc with $tool" rc=0 download "$src_asc" "$DEST.new.raw.asc" || rc=$? if [ $rc != 0 ]; then rm -f "$DEST.new" "$DEST.new.raw.asc" error "$brnch/drivedb.h.raw.asc: download failed ($tool: exit $rc)" fi if ! errmsg=`check_file "$DEST.new.raw.asc" '-' 200 2000`; then rm -f "$DEST.new" mv "$DEST.new.raw.asc" "$DEST.error.raw.asc" error "$DEST.error.raw.asc: $errmsg" fi test -z "$dryrun" || exit 0 # Create raw file with unexpanded SVN Id # (This assumes newlines are LF and not CR/LF) unexpand_svn_id < "$DEST.new" > "$DEST.new.raw" # Adjust timestamps and permissions touch "$DEST.new" "$DEST.new.raw" "$DEST.new.raw.asc" chmod 0644 "$DEST.new" "$DEST.new.raw" "$DEST.new.raw.asc" if [ -z "$no_verify" ]; then # Verify raw file if ! gpg_verify "$DEST.new.raw.asc" "$DEST.new.raw"; then mv_all "$DEST" ".new" ".error" test -n "$trunk" || error "$DEST.error.raw: *** BAD signature or outdated key ***" error "$DEST.error.raw: signature from branch no longer valid ('--no-verify' to ignore)" fi fi if [ "$smtctl" != "-" ]; then # Check syntax if ! "$smtctl" -B "$DEST.new" -P showall >/dev/null; then mv_all "$DEST" ".new" ".error" error "$DEST.error: rejected by $smtctl, probably no longer compatible" fi vecho "$smtctl: syntax OK" fi # Keep old file if identical, ignore missing Id keyword expansion in new file rm -f "$DEST.lastcheck" if [ -f "$DEST" ]; then if [ -f "$DEST.raw" ] && [ -f "$DEST.raw.asc" ]; then if cmp "$DEST.raw" "$DEST.new.raw" >/dev/null 2>&1 \ && cmp "$DEST.raw.asc" "$DEST.new.raw.asc" >/dev/null 2>&1 \ && { cmp "$DEST" "$DEST.new" >/dev/null 2>&1 \ || cmp "$DEST.raw" "$DEST.new" >/dev/null 2>&1; } then rm -f "$DEST.new" "$DEST.new.raw" "$DEST.new.raw.asc" touch "$DEST.lastcheck" echo "$DEST is already up to date" exit 0 fi mv_all "$DEST" "" ".old" else mv "$DEST" "$DEST.old" fi fi mv_all "$DEST" ".new" "" echo "$DEST updated from ${trunk:-branches/$brnch}${no_verify:+ (NOT VERIFIED)}"
Close