PATH:
usr
/
sbin
#!/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)}"
[+]
..
[-] exim_fixdb
[edit]
[-] getpolicyload
[edit]
[-] bpftool
[edit]
[-] xfs_growfs
[edit]
[-] kpatch
[edit]
[-] pivot_root
[edit]
[-] fsfreeze
[edit]
[-] named-checkzone
[edit]
[-] xfs_info
[edit]
[-] lvm
[edit]
[-] paperconfig
[edit]
[-] pure-config.pl
[edit]
[-] vgextend
[edit]
[-] xfs_logprint
[edit]
[-] xfsdump
[edit]
[-] faillock
[edit]
[-] eximstats
[edit]
[-] grpck
[edit]
[-] iptables-translate
[edit]
[-] pwconv
[edit]
[-] xfs_ncheck
[edit]
[-] iptables-restore
[edit]
[-] xfs_admin
[edit]
[-] xfs_fsr
[edit]
[-] key.dns_resolver
[edit]
[-] ping
[edit]
[-] iptables-nft
[edit]
[-] whmapi1
[edit]
[-] nfsdclnts
[edit]
[-] lnewusers
[edit]
[-] chkconfig
[edit]
[-] ip6tables-restore
[edit]
[-] validatetrans
[edit]
[-] vgconvert
[edit]
[-] luserdel
[edit]
[-] mkfs.minix
[edit]
[-] thin_migrate
[edit]
[-] pvck
[edit]
[-] mkfs.ext4
[edit]
[-] rpcinfo
[edit]
[-] lvmdump
[edit]
[-] cache_restore
[edit]
[-] readprofile
[edit]
[-] arptables-nft-restore
[edit]
[-] mountstats
[edit]
[-] sysctl
[edit]
[-] ctstat
[edit]
[-] tcpdump
[edit]
[-] ping6
[edit]
[-] blkdiscard
[edit]
[-] atd
[edit]
[-] avcstat
[edit]
[-] xtables-nft-multi
[edit]
[-] pwunconv
[edit]
[-] ownership
[edit]
[-] ethtool
[edit]
[-] mtr-packet
[edit]
[-] xfs_repair
[edit]
[-] setquota
[edit]
[-] adcli
[edit]
[-] update-pciids
[edit]
[-] rpc.statd
[edit]
[-] grpunconv
[edit]
[-] cache_metadata_size
[edit]
[-] chcpu
[edit]
[-] exim_dumpdb
[edit]
[-] runq
[edit]
[-] nfsdcld
[edit]
[-] intel_sdsi
[edit]
[-] getpcaps
[edit]
[-] atrun
[edit]
[-] request-key
[edit]
[-] thin_ls
[edit]
[-] iptables-restore-translate
[edit]
[-] rdisc
[edit]
[-] iprupdate
[edit]
[-] addpart
[edit]
[-] sm-notify
[edit]
[-] e2image
[edit]
[-] grub2-bios-setup
[edit]
[-] vgremove
[edit]
[-] era_check
[edit]
[-] dhclient-script
[edit]
[-] e2undo
[edit]
[-] mkdict
[edit]
[-] mpathconf
[edit]
[-] pdata_tools
[edit]
[-] anacron
[edit]
[-] pure-ftpwho
[edit]
[-] unix_chkpwd
[edit]
[-] cracklib-packer
[edit]
[-] tracepath6
[edit]
[-] rtcwake
[edit]
[-] clock
[edit]
[-] chroot
[edit]
[-] ifstat
[edit]
[-] iscsistart
[edit]
[-] ebtables-save
[edit]
[-] pure-ftpd
[edit]
[-] dnssec-keyfromlabel
[edit]
[-] route
[edit]
[-] lvmconfig
[edit]
[-] setpci
[edit]
[-] iprdump
[edit]
[-] lvmsar
[edit]
[-] crond
[edit]
[-] vgimportdevices
[edit]
[-] iscsid
[edit]
[-] vgimport
[edit]
[-] iprconfig
[edit]
[-] thin_restore
[edit]
[-] dnssec-dsfromkey
[edit]
[-] lvremove
[edit]
[-] rndc-confgen
[edit]
[-] nfsdclddb
[edit]
[-] depmod
[edit]
[-] arptables-save
[edit]
[-] logrotate
[edit]
[-] fsck.xfs
[edit]
[-] vgcfgbackup
[edit]
[-] semanage
[edit]
[-] pvs
[edit]
[-] unsquashfs
[edit]
[-] vgchange
[edit]
[-] genl
[edit]
[-] ebtables-translate
[edit]
[-] selabel_get_digests_all_partial_matches
[edit]
[-] hwclock
[edit]
[-] pure-authd
[edit]
[-] delpart
[edit]
[-] vgmerge
[edit]
[-] lvmsadc
[edit]
[-] grub2-switch-to-blscfg
[edit]
[-] exim_dbmbuild
[edit]
[-] mount.nfs4
[edit]
[-] zramctl
[edit]
[-] e2freefrag
[edit]
[-] ldattach
[edit]
[-] xfs_io
[edit]
[-] mariadbd
[edit]
[-] rpcdebug
[edit]
[-] sfdisk
[edit]
[-] reboot
[edit]
[-] init
[edit]
[-] convertquota
[edit]
[-] partx
[edit]
[-] suexec
[edit]
[-] smartd
[edit]
[-] lsmod
[edit]
[-] xfs_mdrestore
[edit]
[-] nameif
[edit]
[-] era_restore
[edit]
[-] pure-mrtginfo
[edit]
[-] selinux_check_access
[edit]
[-] grub2-install
[edit]
[-] groupdel
[edit]
[-] thin_dump
[edit]
[-] vigr
[edit]
[-] dmeventd
[edit]
[-] mkfs.msdos
[edit]
[-] install-info
[edit]
[-] imunify-notifier
[edit]
[-] alternatives
[edit]
[-] selinuxconlist
[edit]
[-] visudo
[edit]
[-] pure-uploadscript
[edit]
[-] tmpwatch
[edit]
[-] lfd
[edit]
[-] ip6tables-nft-save
[edit]
[-] dnssec-verify
[edit]
[-] dump-acct
[edit]
[-] exiqsumm
[edit]
[-] ipset
[edit]
[-] sefcontext_compile
[edit]
[-] dovecot
[edit]
[-] lgroupmod
[edit]
[-] sasldblistusers2
[edit]
[-] grpconv
[edit]
[-] selabel_lookup_best_match
[edit]
[-] udevadm
[edit]
[-] newusers
[edit]
[-] sestatus
[edit]
[-] dump-utmp
[edit]
[-] grub2-get-kernel-settings
[edit]
[-] lspci
[edit]
[-] service
[edit]
[-] ss
[edit]
[-] blkdeactivate
[edit]
[-] mklost+found
[edit]
[-] era_invalidate
[edit]
[-] rdma
[edit]
[-] ebtables-restore
[edit]
[-] ip6tables-translate
[edit]
[-] dnssec-revoke
[edit]
[-] fsck.vfat
[edit]
[-] tune2fs
[edit]
[-] iscsiuio
[edit]
[-] selinuxdefcon
[edit]
[-] mke2fs
[edit]
[-] auditd
[edit]
[-] mkswap
[edit]
[-] genhostid
[edit]
[-] dnssec-keygen
[edit]
[-] nologin
[edit]
[-] nfsdcltrack
[edit]
[-] dmidecode
[edit]
[-] named-checkconf
[edit]
[-] sos
[edit]
[-] setcap
[edit]
[-] fcgistarter
[edit]
[-] sa
[edit]
[-] grub2-reboot
[edit]
[-] ldconfig
[edit]
[-] grub2-probe
[edit]
[-] pvchange
[edit]
[-] groupmems
[edit]
[-] vdpa
[edit]
[-] NetworkManager
[edit]
[-] exim_tidydb
[edit]
[-] genhomedircon
[edit]
[-] xfs_quota
[edit]
[-] groupadd
[edit]
[-] semodule
[edit]
[-] dnssec-keymgr
[edit]
[-] lvdisplay
[edit]
[-] rpcctl
[edit]
[-] mysqld
[edit]
[-] fsck.minix
[edit]
[-] thin_repair
[edit]
[-] ctrlaltdel
[edit]
[-] accton
[edit]
[-] umount.nfs
[edit]
[-] start-statd
[edit]
[-] dosfsck
[edit]
[-] pdns_server
[edit]
[-] quotastats
[edit]
[-] grub2-set-default
[edit]
[-] lusermod
[edit]
[-] arp
[edit]
[-] ebtables-nft
[edit]
[-] selabel_digest
[edit]
[-] httpd_ls_bak_bak
[edit]
[-] shutdown
[edit]
[-] fsck.ext4
[edit]
[-] augenrules
[edit]
[-] lgroupadd
[edit]
[-] lvm_import_vdo
[edit]
[-] lvcreate
[edit]
[-] pvresize
[edit]
[-] logsave
[edit]
[-] dnssec-coverage
[edit]
[-] arptables-nft
[edit]
[-] setsebool
[edit]
[-] parted
[edit]
[-] ebtables-nft-save
[edit]
[-] ip6tables
[edit]
[-] mkfs
[edit]
[-] ip
[edit]
[-] cache_check
[edit]
[-] vgsplit
[edit]
[-] exiqgrep
[edit]
[-] kexec
[edit]
[-] tracepath
[edit]
[-] iconvconfig
[edit]
[-] grub2-macbless
[edit]
[-] dcb
[edit]
[-] dovecot_cpshutdown
[edit]
[-] lgroupdel
[edit]
[-] adduser
[edit]
[-] raid-check
[edit]
[-] multipathd
[edit]
[-] modsec-sdbm-util
[edit]
[-] xtables-monitor
[edit]
[-] halt
[edit]
[-] pwhistory_helper
[edit]
[-] blkid
[edit]
[-] ifenslave
[edit]
[-] mount.fuse
[edit]
[-] accessdb
[edit]
[-] update-smart-drivedb
[edit]
[-] sosreport
[edit]
[-] gssproxy
[edit]
[-] grub2-set-password
[edit]
[-] groupmod
[edit]
[-] restorecon
[edit]
[-] fdformat
[edit]
[-] filefrag
[edit]
[-] plymouthd
[edit]
[-] fstrim
[edit]
[-] dnssec-checkds
[edit]
[-] selabel_partial_match
[edit]
[-] cryptsetup
[edit]
[-] e4crypt
[edit]
[-] ledmon
[edit]
[-] showmount
[edit]
[-] chronyd
[edit]
[-] makedumpfile
[edit]
[-] xfsrestore
[edit]
[-] tuned-adm
[edit]
[-] fsck.ext2
[edit]
[-] dosfslabel
[edit]
[-] swapoff
[edit]
[-] firewalld
[edit]
[-] pvscan
[edit]
[-] lvmdevices
[edit]
[-] applygnupgdefaults
[edit]
[-] md-auto-readd.sh
[edit]
[-] xfs_freeze
[edit]
[-] resizepart
[edit]
[-] rpc.idmapd
[edit]
[-] plymouth-set-default-theme
[edit]
[-] ip6tables-nft-restore
[edit]
[-] partprobe
[edit]
[-] matchpathcon
[edit]
[-] nscd
[edit]
[-] vgdisplay
[edit]
[-] vgck
[edit]
[-] rtkitctl
[edit]
[-] selabel_lookup
[edit]
[-] cache_dump
[edit]
[-] mkfs.cramfs
[edit]
[-] ebtables-nft-restore
[edit]
[-] unix_update
[edit]
[-] fsck.msdos
[edit]
[-] telinit
[edit]
[-] lvchange
[edit]
[-] swaplabel
[edit]
[-] selinuxexeccon
[edit]
[-] pidof
[edit]
[-] lvmdiskscan
[edit]
[-] mkdumprd
[edit]
[-] autrace
[edit]
[-] iprdbg
[edit]
[-] fdisk
[edit]
[-] thin_metadata_unpack
[edit]
[-] lvs
[edit]
[-] whmapi0
[edit]
[-] iprsos
[edit]
[-] blockdev
[edit]
[-] xfs_db
[edit]
[-] ipset-translate
[edit]
[-] tsig-keygen
[edit]
[-] edquota
[edit]
[-] xfs_mkfile
[edit]
[-] resize2fs
[edit]
[-] rtacct
[edit]
[-] exicyclog
[edit]
[-] vipw
[edit]
[-] vgexport
[edit]
[-] lvscan
[edit]
[-] xfs_rtcp
[edit]
[-] vgscan
[edit]
[-] selinuxenabled
[edit]
[-] dnssec-importkey
[edit]
[-] grubby
[edit]
[-] pvdisplay
[edit]
[-] g13-syshelp
[edit]
[-] exim
[edit]
[-] exim_checkaccess
[edit]
[-] rtmon
[edit]
[-] arping
[edit]
[-] csf
[edit]
[-] restorecon_xattr
[edit]
[-] lid
[edit]
[-] vgrename
[edit]
[-] fsadm
[edit]
[-] nfsidmap
[edit]
[-] getsebool
[edit]
[-] kpartx
[edit]
[-] cracklib-format
[edit]
[-] vgmknodes
[edit]
[-] realm
[edit]
[-] sssd
[edit]
[-] fuser
[edit]
[-] zic
[edit]
[-] fsck
[edit]
[-] grub2-set-bootflag
[edit]
[-] iptunnel
[edit]
[-] thin_check
[edit]
[-] plipconfig
[edit]
[-] runuser
[edit]
[-] ebtables
[edit]
[-] iprinit
[edit]
[-] vgimportclone
[edit]
[-] nvme
[edit]
[-] rpc.mountd
[edit]
[-] pvcreate
[edit]
[-] devlink
[edit]
[-] named-journalprint
[edit]
[-] badblocks
[edit]
[-] blkmapd
[edit]
[-] losetup
[edit]
[-] named-compilezone
[edit]
[-] mkfs.xfs
[edit]
[-] quotaoff
[edit]
[-] rmmod
[edit]
[-] xqmstats
[edit]
[-] hdparm
[edit]
[-] e4defrag
[edit]
[-] arptables
[edit]
[-] ipmaddr
[edit]
[-] mpathpersist
[edit]
[-] e2fsck
[edit]
[-] xfs_bmap
[edit]
[-] quotaon
[edit]
[-] cracklib-unpacker
[edit]
[-] lpasswd
[edit]
[-] vmcore-dmesg
[edit]
[-] mksquashfs
[edit]
[-] era_dump
[edit]
[-] pam_console_apply
[edit]
[-] xfsinvutil
[edit]
[-] pwck
[edit]
[-] dnssec-signzone
[edit]
[-] e2mmpstatus
[edit]
[-] arptables-restore
[edit]
[-] quotacheck
[edit]
[-] ip6tables-restore-translate
[edit]
[-] dhclient
[edit]
[-] poweroff
[edit]
[-] packer
[edit]
[-] named-nzd2nzf
[edit]
[-] mdmon
[edit]
[-] xfs_estimate
[edit]
[-] blkzone
[edit]
[-] consoletype
[edit]
[-] mdadm
[edit]
[-] capsh
[edit]
[-] whmlogin
[edit]
[-] fsck.fat
[edit]
[-] usermod
[edit]
[-] iptables-nft-restore
[edit]
[-] rcmysql
[edit]
[-] nfsstat
[edit]
[-] iscsi-iname
[edit]
[-] mii-diag
[edit]
[-] sendmail
[edit]
[-] rpc.nfsd
[edit]
[-] modinfo
[edit]
[-] sulogin
[edit]
[-] thin_metadata_pack
[edit]
[-] userdel
[edit]
[-] rsyslogd
[edit]
[-] nfsconf
[edit]
[-] biosdecode
[edit]
[-] sw-engine-fpm
[edit]
[-] pam_namespace_helper
[edit]
[-] rotatelogs
[edit]
[-] findfs
[edit]
[-] tc
[edit]
[-] rtstat
[edit]
[-] lvreduce
[edit]
[-] ifconfig
[edit]
[-] tuned
[edit]
[-] fix-info-dir
[edit]
[-] luseradd
[edit]
[-] lchage
[edit]
[-] sshd
[edit]
[-] exinext
[edit]
[-] ddns-confgen
[edit]
[-] exportfs
[edit]
[-] ip6tables-save
[edit]
[-] swapon
[edit]
[-] tcpslice
[edit]
[-] lvmpolld
[edit]
[-] getenforce
[edit]
[-] vgs
[edit]
[-] apachectl
[edit]
[-] addgnupghome
[edit]
[-] vgreduce
[edit]
[-] cfdisk
[edit]
[-] smartctl
[edit]
[-] nft
[edit]
[-] useradd
[edit]
[-] dmsetup
[edit]
[-] nstat
[edit]
[-] lnstat
[edit]
[-] mkhomedir_helper
[edit]
[-] sos-collector
[edit]
[-] irqbalance-ui
[edit]
[-] grub2-setpassword
[edit]
[-] getpidprevcon
[edit]
[-] cache_writeback
[edit]
[-] iscsiadm
[edit]
[-] insmod
[edit]
[-] mount.nfs
[edit]
[-] nfsiostat
[edit]
[-] pam_timestamp_check
[edit]
[-] switch_root
[edit]
[-] rpc.gssd
[edit]
[-] e2label
[edit]
[-] pure-quotacheck
[edit]
[-] load_policy
[edit]
[-] mpathcleanup
[edit]
[-] multipath
[edit]
[-] thin_trim
[edit]
[-] update-alternatives
[edit]
[-] vgcreate
[edit]
[-] exigrep
[edit]
[-] getcap
[edit]
[-] named
[edit]
[-] ether-wake
[edit]
[-] runlevel
[edit]
[-] iptables
[edit]
[-] aureport
[edit]
[-] pvmove
[edit]
[-] mkfs.fat
[edit]
[-] lvresize
[edit]
[-] arptables-nft-save
[edit]
[-] mcelog
[edit]
[-] cracklib-check
[edit]
[-] tipc
[edit]
[-] xfs_spaceman
[edit]
[-] xfs_metadump
[edit]
[-] start-stop-daemon
[edit]
[-] ip6tables-nft
[edit]
[-] iptables-save
[edit]
[-] fsck.ext3
[edit]
[-] umount.nfs4
[edit]
[-] dumpe2fs
[edit]
[-] chgpasswd
[edit]
[-] lshw
[edit]
[-] cache_repair
[edit]
[-] vgcfgrestore
[edit]
[-] exim_lock
[edit]
[-] mii-tool
[edit]
[-] weak-modules
[edit]
[-] xfs_copy
[edit]
[-] vpddecode
[edit]
[-] rndc
[edit]
[-] thin_rmap
[edit]
[-] ledctl
[edit]
[-] create-cracklib-dict
[edit]
[-] lvconvert
[edit]
[-] nsec3hash
[edit]
[-] wipefs
[edit]
[-] repquota
[edit]
[-] bridge
[edit]
[-] virt-what-cvm
[edit]
[-] mkfs.ext2
[edit]
[-] mtr
[edit]
[-] mkfs.vfat
[edit]
[-] chpasswd
[edit]
[-] rpcbind
[edit]
[-] dnssec-settime
[edit]
[-] ausearch
[edit]
[-] mkfs.ext3
[edit]
[-] exiwhat
[edit]
[-] virt-what
[edit]
[-] modprobe
[edit]
[-] dmstats
[edit]
[-] thin_metadata_size
[edit]
[-] dmfilemapd
[edit]
[-] sss_cache
[edit]
[-] agetty
[edit]
[-] auditctl
[edit]
[-] fixfiles
[edit]
[-] thin_delta
[edit]
[-] slattach
[edit]
[-] nfsref
[edit]
[-] fatlabel
[edit]
[-] saslpasswd2
[edit]
[-] debugfs
[edit]
[-] rfkill
[edit]
[-] iptables-nft-save
[edit]
[-] dnssec-cds
[edit]
[-] grub2-mkconfig
[edit]
[-] installkernel
[edit]
[-] setenforce
[edit]
[-] pure-certd
[edit]
[-] mkdosfs
[edit]
[-] httpd
[edit]
[-] pvremove
[edit]
[-] fsck.cramfs
[edit]
[-] lvrename
[edit]
[-] irqbalance
[edit]
[-] lvextend
[edit]
[-] htcacheclean
[edit]
[-] setfiles
[edit]