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.100
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 : bond2team
#!/bin/bash # # Translate tool from bonding configuration to team. # # Copyright (C) 2013 Flavio Leitner <fbl@redhat.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License, version 2, # as published by the Free Software Foundation. # # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA # VERSION="0.97" PR_QUIET=0 PR_ERR=1 PR_WARN=2 PR_INFO=3 PR_DBG=4 #defaults ARGC=$# FORMAT_IFCFG=0 FORMAT_JANSSON=1 OUTPUT_FORMAT=${FORMAT_IFCFG} MODE_IFCFG=0 MODE_NOIFCFG=1 MODE=${MODE_IFCFG} OUTPUT_FILE= RENAME= DEVICE= BOND_MASTER= STDOUT=1 BONDING_OPTS= CONFIGDIR="/etc/sysconfig/network-scripts" PR_LVL=3 OUTPUT_DIR= OUTPUT_TMP_DIR= TMP_FILES=() RUNNER_OPTS=() LWATCH_OPTS=() # array: ( 'port ifname', 'opt1', 'opt2', 'optn', 'opt4', 'port ifname', ... ) PORT_LIST= PORTS_OPTS=() PRIMARY= PRIMARY_RESELECT= # building file scratch memory area VFILE= show_examples() { cat << EOF The following commands will deliver the ifcfg files into a temporary directory. You can review the files and copy to the right location. Add the following argument to the commands below to print the output to the screen instead of writing to files. --stdout Add the following arguments to the commands below to set the destination directory for the output files. --outputdir </path/to/dir> Add the following argument to the commands below to output the files in teamd format (JSON) instead of the default ifcfg format. --json To convert the current "bond0" ifcfg configuration to team ifcfg: # $0 --master bond0 To convert the current "bond0" ifcfg configuration out of the standard ifcfg-: # $0 --master bond0 --configdir </path/to/ifcfg> To convert the current "bond0" ifcfg configuration to team ifcfg renaming the interface name to "team0". (carefull: firewall rules, aliases interfaces, etc., will break after the renaming because the tool will only change the ifcfg file, nothing else) # $0 --master bond0 --rename team0 To convert given bonding parameters without any ifcfg: # $0 --bonding_opts "mode=1 miimon=500" To convert given bonding parameters without any ifcfg with ports: # $0 --bonding_opts "mode=1 miimon=500 primary=eth1 primary_reselect-0" \\ --port eth1 --port eth2 --port eth3 --port eth4 EOF } usage() { cat << EOF usage: $0 [options] This tool translates bonding configuration to team. See bond2team(1) for detailed information. OPTIONS: --master <interface> set the master interface name or ifcfg --rename <iface> rename the master interface to <iface> --ifcfg set the output format to ifcfg style --json set the output format to teamd style --bonding_opts pass the bonding options instead of reading from the ifcfg- file --port <iface> add the interface to the port's list --configdir <dir> set where the ifcfg- files are default: /etc/sysconfig/network-scripts --outputdir <dir> set the output diretory default: temporary diretory --stdout print to stdout instead of modify the system's files. --debug increase debug level --quiet no messages --version show the tool version --help this screen --examples show command examples EOF } # Output Functions pr() { if [ $1 -le $PR_LVL ]; then shift; echo "$*" > /dev/stderr fi } pr_error() { pr ${PR_ERR} "ERROR: " $* } pr_warn() { pr ${PR_WARN} "WARNING: " $* } pr_info() { pr ${PR_INFO} "INFO: " $* } pr_dbg() { pr ${PR_DBG} "DEBUG: " $* } to_stdout() { return ${STDOUT} } create_output_file() { local f=$1 if [ ! -d "${OUTPUT_TMP_DIR}" ]; then OUTPUT_TMP_DIR=$(LANG=C mktemp -d /tmp/bond2team.XXXXXX) fi if [ ! -d "${OUTPUT_TMP_DIR}" ]; then pr_error "${FUNCNAME} can't create dir ${OUTPUT_TMP_DIR}" return 1 fi local tmpfile=${OUTPUT_TMP_DIR}/${f} touch ${tmpfile} if [ ! -f ${tmpfile} ]; then pr_error "${FUNCNAME} can't create file ${tmpfile}" return 1 fi local pos=${#TMP_FILES[*]} TMP_FILES[${pos}]="${tmpfile}" OUTPUT_FILE=${tmpfile} } show_output_files() { echo "" echo "Resulted files:" for tmpf in $(seq 0 $((${#TMP_FILES[@]} - 1))) do echo " ${TMP_FILES[$tmpf]}" done } clean_up() { pr_dbg "${FUNCNAME} $*" for tmpf in $(seq 0 $((${#TMP_FILES[@]} - 1))) do pr_dbg "rm -f ${TMP_FILES[$tmpf]}" rm -f ${TMP_FILES[$tmpf]} done if [ -d "{OUTPUT_TMP_DIR}" ]; then rmdir ${OUTPUT_TMP_DIR} fi } ifcfg_get_device() { local ifcfg=$1 if [ ! -f ${ifcfg} ]; then pr_error "file not found: ${ifcfg}" return 1 fi DEVICE=`LANG=C sed -n \ "s@^[[:space:]]*DEVICE=[\"]*\(.*\)\([[:space:]#]\|\"\|$\)@\1@p" \ $ifcfg` if [ -z "${DEVICE}" ]; then pr_error "ifcfg file not supported: ${ifcfg}" return 1 fi } ifcfg_get_master_file() { local dev=${1} MASTER="${dev}" if [ "${MODE}" -eq "${MODE_NOIFCFG}" ]; then return 0 fi if [ ! -f ${MASTER} ]; then MASTER="${CONFIGDIR}/ifcfg-${dev}" if [ -f ${MASTER} ]; then return 0 fi if [ -n "${BONDING_OPTS}" ]; then # options provided, set noifcfg MODE=${MODE_NOIFCFG} MASTER=${dev} return 0 fi pr_error "Can't find ifcfg file for ${dev}" return 1 fi return 0 } ifcfg_overwrite_files() { pr_dbg "${FUNCNAME} $*" /bin/cp -f ${OUTPUT_TMP_DIR}/ifcfg* ${OUTPUT_DIR} } ifcfg_get_bond_opts() { pr_dbg "${FUNCNAME} $*" local ifcfg=$1 if [ -n "${BONDING_OPTS}" ]; then pr_dbg "${FUNCNAME} bonding_opts=${BONDING_OPTS}" return 0 fi if [ ! -f ${ifcfg} ]; then pr_error "File not found: ${ifcfg}" return 1 fi BONDING_OPTS=`LANG=C sed -n \ "s@^[[:space:]]*BONDING_OPTS=[\"]*\(.*\)\([[:space:]#]\|\"\|$\)@\1@p" \ $ifcfg` if [ -z "${BONDING_OPTS}" ]; then pr_error "ifcfg file not supported: ${MASTER}" return 1 fi pr_dbg "${FUNCNAME} bonding_opts=${BONDING_OPTS}" return 0 } vfile_reset() { VFILE=() } vfile_load_ifcfg() { pr_dbg "${FUNCNAME} $*" local ifcfg=$1 vfile_reset if [ ${MODE} -eq ${MODE_NOIFCFG} ]; then return 0 fi # filter out bonding and team options and # don't break lines with spaces oIFS="$IFS" IFS=$'\n' VFILE=( $(LANG=C \ grep -iv 'BONDING_OPTS\|SLAVE\|MASTER\|DEVICETYPE\|TEAM' \ $ifcfg )) IFS="$oIFS" } vfile_write_to_file() { pr_dbg "${FUNCNAME} $*" local output=$1 for ln in $(seq 0 $((${#VFILE[@]} - 1))) do echo "${VFILE[$ln]}" >> $output done return 0 } ifcfg_dump_stdout() { local dev="${1}" local ifcfg="ifcfg-${dev}" if [ -z "${dev}" ]; then ifcfg="ifcfg-<interface name>" fi for ln in $(seq 0 $((${#VFILE[@]} - 1))) do [ $ln -eq 0 ] && echo "---8<--- ${ifcfg} ---8<---" echo "${VFILE[$ln]}" done echo "---8<--- ${ifcfg} ---8<---" echo "" return 0 } vfile_get_device() { pr_dbg "${FUNCNAME} $*" if [ ${MODE} -eq ${MODE_NOIFCFG} ]; then pr_dbg "${FUNCNAME} using DEVICE=${MASTER}" DEVICE=${MASTER} return 0 fi for ln in $(seq 0 $((${#VFILE[@]} - 1))) do local line=${VFILE[$ln]} if [ "${line%%=*}" = "DEVICE" ]; then local name_line="${line##*=}" local name="${name_line%%[ # ]*}" DEVICE=${name} pr_dbg "${FUNCNAME} from file: DEVICE=${DEVICE}" return 0 fi done pr_error "Failed to find the device's name" return 1 } vfile_get_ipaddr() { for ln in $(seq 0 $((${#VFILE[@]} - 1))) do local line=${VFILE[$ln]} if [ "${line%%=*}" = "IPADDR" ]; then local ipaddr_line="${line##*=}" local ipaddr="${ipaddr_line%%[ # ]*}" echo "${ipaddr}" fi done } vfile_add_line() { pr_dbg "${FUNCNAME} $*" local pos=${#VFILE[*]} VFILE[${pos}]="$1" } ifcfg_device_rename() { local device=$1 local rename=$2 # neither device nor rename was provided if [ -z "${rename}" ]; then return 0 fi # renaming with no ifcfg? if [ ${MODE} -eq ${MODE_NOIFCFG} ]; then return 0 fi for ln in $(seq 0 $((${#VFILE[@]} - 1))) do local line=${VFILE[$ln]} if [ "${line%%=*}" = "DEVICE" ]; then newdev="${line/${device}/${rename}}" VFILE[$ln]="$newdev" TEAM_MASTER=${rename} return 0 fi done pr_error "Failed to rename $device to $rename" return 1 } team_port_set_devtype() { pr_dbg "${FUNCNAME} $*" local master=$1 vfile_add_line "DEVICETYPE=\"TeamPort\"" vfile_add_line "TEAM_MASTER=\"$master\"" } team_port_set_config() { pr_dbg "${FUNCNAME} $*" local port=$1 local team_port_config="" if [ "${PRIMARY}" == "$port" ]; then team_port_config="'{ \"prio\" : -10" else team_port_config="'{ \"prio\" : -100" fi if [ -n "${PRIMARY_RESELECT}" ]; then if [ "${PRIMARY}" == "$port" ]; then if [ -z "${team_port_config}" ]; then team_port_config="'{ \"sticky\" : true }'" else team_port_config="${team_port_config}, \"sticky\" : true }'" fi else if [ -z "${team_port_config}" ]; then team_port_config="{ \"sticky\" : false }'" else team_port_config="${team_port_config}, \"sticky\" : false }'" fi fi else if [ -n "${team_port_config}" ]; then team_port_config="${team_port_config} }'" fi fi if [ -n "$team_port_config" ]; then vfile_add_line "TEAM_PORT_CONFIG=$team_port_config" fi } team_port_ifcfg_create() { local dev=$1 vfile_load_ifcfg $dev if ! vfile_get_device; then return 1 fi team_port_set_devtype ${TEAM_MASTER} team_port_set_config ${DEVICE} return 0 } team_master_set_devtype() { pr_dbg "${FUNCNAME} $*" vfile_add_line "DEVICETYPE=\"Team\"" } team_master_set_config() { pr_dbg "${FUNCNAME} $*" local team_config="'{ \"runner\" : { " local nr_opt=0 nr_opt=${#RUNNER_OPTS[@]} if [ $nr_opt -eq 0 ]; then # default to miimon/ethtool team_config="${team_config} \"name\" : \"roundrobin\" }" else # add runner options for pos in $(seq 0 $((${#RUNNER_OPTS[@]} - 1))) do if [ $pos -ne 0 ]; then team_config="${team_config}, " fi team_config="${team_config} ${RUNNER_OPTS[$pos]}" done team_config="${team_config} }" fi nr_opt=${#LWATCH_OPTS[@]} if [ $nr_opt -eq 0 ]; then # default to miimon/ethtool team_config="${team_config}, \"link_watch\" : { \"name\" : \"ethtool\" }" else team_config="${team_config}, \"link_watch\" : { " # add linkwatch options for pos in $(seq 0 $(($nr_opt - 1))) do if [ $pos -ne 0 ]; then team_config="${team_config}, " fi team_config="${team_config} ${LWATCH_OPTS[$pos]}" done team_config="${team_config} }" fi team_config="${team_config} }'" pr_dbg "built team_config=${team_config}" vfile_add_line "TEAM_CONFIG=${team_config}" return 0 } team_ifcfg_dump_stdout() { pr_dbg "${FUNCNAME} $*" local dev=$1 if ! ifcfg_dump_stdout ${dev}; then return 1 fi return 0 } team_ifcfg_write_file() { pr_dbg "${FUNCNAME} $*" local dev=$1 OUTPUT_FILE= local filenm="ifcfg-${dev}" if [ -z "${dev}" ]; then filenm="ifcfg" fi create_output_file ${filenm} if [ ! -f "${OUTPUT_FILE}" ]; then return 1 fi if ! vfile_write_to_file ${OUTPUT_FILE}; then return 1 fi return 0 } team_master_ifcfg_create() { pr_dbg "${FUNCNAME} $*" if ! team_master_set_devtype; then return 1 fi if ! team_master_set_config; then return 1 fi return 0 } team_ifcfg_write() { pr_dbg "${FUNCNAME} $*" local dev=${1} if to_stdout; then team_ifcfg_dump_stdout ${dev} || return 1 else team_ifcfg_write_file ${dev} || return 1 fi return 0 } team_ifcfg_deliver() { pr_dbg "${FUNCNAME} $*" if [ ! to_stdout ]; then return 0 fi if [ -z "${OUTPUT_DIR}" ]; then show_output_files else ifcfg_overwrite_files clean_up fi return 0 } teamd_config_create() { vfile_reset vfile_add_line "{" # add runner options vfile_add_line " \"device\" : \"${DEVICE}\"," vfile_add_line " \"runner\" : {" local runner_nr=${#RUNNER_OPTS[@]} if [ ${runner_nr} -eq 0 ]; then # default roundrobin vfile_add_line " \"runner\" : \"roundrobin\" " else local last_pos=$((${runner_nr} - 1)) for pos in $(seq 0 ${last_pos}) do if [ $pos -eq ${last_pos} ]; then vfile_add_line " ${RUNNER_OPTS[$pos]}" else vfile_add_line " ${RUNNER_OPTS[$pos]}," fi done fi vfile_add_line " }," vfile_add_line " \"link_watch\" : {" local lwatch_nr=${#LWATCH_OPTS[@]} if [ ${lwatch_nr} -eq 0 ]; then # default to miimon lwatch_add_opt "\"name\" : \"ethtool\"" else for pos in $(seq 0 ${last_pos}) do last_pos=$((${lwatch_nr} - 1)) if [ $pos -eq ${last_pos} ]; then vfile_add_line " ${LWATCH_OPTS[$pos]}" else vfile_add_line " ${LWATCH_OPTS[$pos]}," fi done fi vfile_add_line " }," return 0 } teamd_config_close() { vfile_add_line "}" return 0 } teamd_dump_stdout() { for ln in $(seq 0 $((${#VFILE[@]} - 1))) do [ $ln -eq 0 ] && echo "---8<--- teamd.conf ---8<---" echo "${VFILE[$ln]}" done echo "---8<--- teamd.conf ---8<---" echo "" return 0 } teamd_write_file() { pr_dbg "${FUNCNAME} $*" local dev=$1 OUTPUT_FILE= create_output_file "teamd.conf" if [ ! -f "${OUTPUT_FILE}" ]; then return 1 fi if ! vfile_write_to_file ${OUTPUT_FILE}; then return 1 fi return 0 } teamd_config_write() { pr_dbg "${FUNCNAME} $*" if to_stdout; then teamd_dump_stdout || return 1 else teamd_write_file ${dev} || return 1 show_output_files fi return 0 } teamd_port_create() { vfile_add_line " \"ports\" : {" return 0 } teamd_port_close() { vfile_add_line " }" return 0 } teamd_port_add() { pr_dbg "${FUNCNAME} $*" local dev=${1} local lastone=${2} if [ -n "${PORT_LIST}" ]; then DEVICE=${dev} else if ! ifcfg_get_device ${dev}; then return 1 fi fi vfile_add_line " \"${DEVICE}\" : {" if [ "${PRIMARY}" == "${DEVICE}" ]; then vfile_add_line " \"prio\" : -10," else vfile_add_line " \"prio\" : -100," fi if [ -n "${PRIMARY_RESELECT}" ]; then if [ "${PRIMARY}" == "$port" ]; then vfile_add_line " \"sticky\" : true " else vfile_add_line " \"sticky\" : false " fi else vfile_add_line " \"sticky\" : false " fi if [ ${lastone} -eq 1 ]; then vfile_add_line " }" else vfile_add_line " }," fi return 0 } # Runner Functions runner_add_opt() { pr_dbg "${FUNCNAME} $*" local pos=${#RUNNER_OPTS[*]} RUNNER_OPTS[${pos}]="$1" } runner_parse_adselect() { pr_dbg "${FUNCNAME} $*" local value=$1 case $value in "0"|"stable") runner_add_opt "\"agg_select_policy\" : \"bandwidth\"" || return 1 ;; "1"|"bandwidth") runner_add_opt "\"agg_select_policy\" : \"bandwidth\"" || return 1 ;; "2"|"count") runner_add_opt "\"agg_select_policy\" : \"count\"" || return 1 ;; *) pr_error "parameter ad_select=$value is not supported" return 1 esac } runner_parse_failovermac() { pr_dbg "${FUNCNAME} $*" local value=$1 case $value in "0") runner_add_opt "\"hwaddr_policy\" : \"same_all\"" || return 1 ;; "1"|"active") runner_add_opt "\"hwaddr_policy\" : \"by_active\"" || return 1 ;; "2"|"follow") runner_add_opt "\"hwaddr_policy\" : \"only_active\"" || return 1 ;; *) pr_error "parameter fail_over_mac $value is not supported" return 1 ;; esac } runner_parse_lacprate() { pr_dbg "${FUNCNAME} $*" local value=$1 case $value in "slow"|"0") runner_add_opt "\"fast_rate\" : 0" || return 1 ;; "fast"|"1") runner_add_opt "\"fast_rate\" : 1" || return 1 ;; *) pr_error "parameter lacp_rate=$value is not supported" return 1 ;; esac } runner_parse_xmit_policy() { pr_dbg "${FUNCNAME} $*" local value=$1 case $value in "layer2") runner_add_opt "\"tx_hash\" : [ \"eth\" ]" || return 1 ;; "layer2+3") runner_add_opt "\"tx_hash\" : [ \"eth\", \"l3\" ]" || return 1 ;; "layer3+4") runner_add_opt "\"tx_hash\" : [ \"l3\", \"l4\" ]" || return 1 ;; *) pr_error "parameter xmit_hash_policy=$value is not supported" return 1 esac } runner_parse_mode() { pr_dbg "${FUNCNAME} $*" local value=$1 case $value in "0"|"balance-rr") runner_add_opt "\"name\" : \"roundrobin\"" || return 1 ;; "1"|"active-backup") runner_add_opt "\"name\" : \"activebackup\"" || return 1 ;; "2"|"balance-xor") # FIXME runner_add_opt "\"name\" : \"loadbalance\"" || return 1 ;; "3"|"broadcast") runner_add_opt "\"name\" : \"broadcast\"" || return 1 ;; "4"|"802.3ad") runner_add_opt "\"name\" : \"lacp\"" || return 1 ;; "5"|"balance-tlb") runner_add_opt "\"name\" : \"loadbalance\"" || return 1 ;; "6"|"balance-alb") pr_error "parameter mode=$value is not supported" return 1 ;; *) pr_error "parameter mode=$value is not supported" return 1 ;; esac } runner_parse_opt() { pr_dbg "${FUNCNAME} $*" local param=$1 local value=$2 case $param in "ad_select") runner_parse_adselect $value || return 1 ;; "fail_over_mac") runner_parse_failovermac $value || return 1 ;; "lacp_rate") runner_parse_lacprate $value || return 1 ;; "min_links") runner_add_opt "\"min_ports\" : $value" || return 1 ;; "mode") runner_parse_mode $value || return 1 ;; "xmit_hash_policy") runner_parse_xmit_policy $value || return 1 ;; esac } # Link Watch functions lwatch_add_opt() { pr_dbg "${FUNCNAME} $*" local pos=${#LWATCH_OPTS[*]} LWATCH_OPTS[${pos}]="$1" } lwatch_parse_arp_validate() { pr_dbg "${FUNCNAME} $*" local value=$1 case $value in "0"|"none") ;; "1"|"active") lwatch_add_opt "\"validate_active\" : 1" || return 1 ;; "2"|"backup") lwatch_add_opt "\"validate_inactive\" : 1" || return 1 ;; "3"|"all") lwatch_add_opt "\"validate_active\" : 1" || return 1 lwatch_add_opt "\"validate_inactive\" : 1" || return 1 ;; *) pr_error "parameter arp_validate=$value is not supported" return 1 ;; esac } lwatch_parse_arpiptarget() { #FIXME: supports only one arp_ip_target address. # otherwise a new linkwatch section must be create pr_dbg "${FUNCNAME} $*" local ip_addrs=$1 local ip_list=${ip_addrs//,/ } local ip_array=($ip_list) if [ ${#ip_array[*]} -ne 1 ]; then pr_error "parameter arp_ip_target= with multiple IP addresses is not supported" return 1 fi for addr in ${ip_list} do lwatch_add_opt "\"target_host\" : \"$addr\"" done } lwatch_parse_opt() { pr_dbg "${FUNCNAME} $*" local param=$1 local value=$2 case $param in "arp_interval") lwatch_add_opt "\"interval\" : $value" ;; "arp_ip_target") lwatch_add_opt "\"name\" : \"arp_ping\"" if ! lwatch_parse_arpiptarget $value; then return 1 fi ;; "arp_validate") lwatch_parse_arp_validate $value ;; "downdelay") lwatch_add_opt "\"delay_down\" : $value" ;; "miimon") lwatch_add_opt "\"name\" : \"ethtool\"" ;; "updelay") lwatch_add_opt "\"delay_up\" : $value" ;; *) pr_error "parameter $param=$value is not supported" return 1 ;; esac } port_parse_opt() { pr_dbg "${FUNCNAME} $*" local param=$1 local value=$2 case $param in "primary") PRIMARY="$value" ;; "primary_reselect") case $value in "0"|"always") PRIMARY_RESELECT=1 ;; "1"|"better") ;; "2"|"failure") ;; *) pr_error "parameter $param=$value is not supported" return 1 esac ;; *) pr_error "parameter $param=$value is not supported" return 1 ;; esac } convert_bond_opts() { local bonding_opts=$1 pr_dbg "${FUNCNAME} $*" for arg in $bonding_opts do key=${arg%%=*}; value=${arg##*=}; pr_dbg "parsing $key=$value" case "$key" in "active_slave"|"max_bonds"|"use_carrier") pr_info "parameter $key not supported, ignoring" continue ;; "all_slaves_active"|"resend_igmp"|"num_grat_arp"|"num_unsol_na") pr_error "parameter $key not supported, aborting" return 1 ;; "ad_select"|"fail_over_mac"|"lacp_rate"|"min_links"|"mode"|"xmit_hash_policy") runner_parse_opt $key $value || return 1 ;; "arp_interval"|"arp_ip_target"|"arp_validate"|"downdelay"|"miimon"|"updelay") lwatch_parse_opt $key $value || return 1 ;; "primary"|"primary_reselect") port_parse_opt $key $value || return 1 ;; *) pr_error "unknown parameter $key=$value, aborting" return 1 ;; esac done } # Parse command line options while :; do case "$1" in "--master") MASTER="$2" shift 2 ;; "--bonding_opts") BONDING_OPTS="$2" shift 2 ;; "--ifcfg") OUTPUT_FORMAT=${FORMAT_IFCFG} shift ;; "--json") OUTPUT_FORMAT=${FORMAT_JANSSON} shift ;; "--quiet") PR_LVL=${PR_QUIET} shift ;; "--debug") PR_LVL=`expr ${PR_LVL} + 1` shift ;; "--outputdir") OUTPUT_DIR="$2" shift 2 ;; "--configdir") CONFIGDIR="$2" shift 2 ;; "--rename") [ -n "${RENAME}" ] && usage && exit 1 RENAME="$2" shift 2 ;; "--stdout") STDOUT=0 shift ;; "--port") PORT_LIST="${PORT_LIST} $2" shift 2 ;; "--version") echo "$VERSION" exit 0 ;; "--help") usage exit 0 ;; "--examples") show_examples exit 0 ;; *) if [ -z "$1" ]; then break fi pr_error "unknown parameter: $1" usage exit 1 ;; esac done if [ -n "${OUTPUT_DIR}" -a ! -d "${OUTPUT_DIR}" ]; then pr_error "Invalid output diretory: ${OUTPUT_DIR}" usage exit 1 fi if [ -z "${MASTER}" -a -z "${BONDING_OPTS}" ]; then pr_error "No master interface or bonding options specified" usage exit 1 fi # no master means no ifcfg to read if [ -z "${MASTER}" ]; then MODE=${MODE_NOIFCFG} fi if [ ${OUTPUT_FORMAT} -eq ${FORMAT_JANSSON} -a -z "${MASTER}" ]; then MASTER="team0" fi if ! ifcfg_get_master_file ${MASTER}; then exit 1 fi # load the ifcfg file if ! vfile_load_ifcfg ${MASTER}; then exit 1 fi # get the bonding options if ! ifcfg_get_bond_opts ${MASTER}; then exit 1 fi if ! convert_bond_opts "${BONDING_OPTS}"; then exit 1 fi if ! vfile_get_device; then exit 1 fi TEAM_MASTER=${DEVICE} if ! ifcfg_device_rename ${DEVICE} ${RENAME}; then exit 1 fi BOND_MASTER=${DEVICE} if [ ${OUTPUT_FORMAT} -eq ${FORMAT_IFCFG} ]; then if ! team_master_ifcfg_create; then exit 1 fi if ! team_ifcfg_write ${TEAM_MASTER}; then clean_up exit 1 fi # process all ports for portcfg in $(LANG=C grep -s -l "^[[:space:]]*MASTER=\"\?${BOND_MASTER}\"\?\([[:space:]#]\|$\)" ${CONFIGDIR}/ifcfg-*) do if ! team_port_ifcfg_create $portcfg; then clean_up exit 1 fi if ! team_ifcfg_write ${DEVICE}; then clean_up exit 1 fi done team_ifcfg_deliver else if ! teamd_config_create; then exit 1 fi if ! teamd_port_create; then exit 1 fi if [ -n "${PORT_LIST}" ]; then portcfg_list=${PORT_LIST} else portcfg_list=$(LANG=C grep -s -l "^[[:space:]]*MASTER=\"\?${BOND_MASTER}\"\?\([[:space:]#]\|$\)" ${CONFIGDIR}/ifcfg-*) fi # count number of ports portcfg_total=0 for portcfg in ${portcfg_list} do portcfg_total=$((${portcfg_total} + 1)) done # process all ports portcfg_nr=0 lastone=0 for portcfg in ${portcfg_list} do portcfg_nr=$((${portcfg_nr} + 1)) if [ ${portcfg_nr} -eq ${portcfg_total} ]; then lastone=1 fi if ! teamd_port_add ${portcfg} ${lastone}; then exit 1 fi done if ! teamd_port_close; then exit 1 fi if ! teamd_config_close; then exit 1 fi if ! teamd_config_write; then exit 1 fi fi
Close