🌌 SpectraShell
Current path:
usr
/
sbin
/
👤 Create WP Admin
⬆️
Go up: /usr
✏️ Editing: 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----- mQINBFwmhpUBEADRoOZaXq13MrqyAmbGe6FlHi6P9ujsT/SJGhTiAoN3W1X56Dbm KP21nO9ZAjdXnvA2OmzppfCUX7v5Q3/TG3vN3WwfyQIO/dgSaTrGa1E8odbHEGc7 rhzYA8ekAn3TmxhOrEUTcRIogumW0zlQewHOlTe0OYsxat6/N8l3Cqn28HwZUpRH MrJW3RgefFihQGEhXlnfzo+Tltl14IriURbwBZIDeZOk2AWLGweI0+zqTgYSbF5A tI5rXO1QDeoyBYZhSX3MtnncwPdCnxoRasizU5w3KoZWYyKAc5bxJBJgUUp9HDOu ATgNqekc8j28x/cUAWerXe183SBYQp0QkzMPbmE9TCGW3GjtW+Kk/NDbNe8ufj6O hk0r7EbGyBO0qvgzHLzSsQiSsgaMCkLc5Xt4NzB4g2DvnReFU2WwgRh031lHOVLm mvFqRtHzJb20dKufyjOmSMzNKRzURVmobECKARaBlGNP0wHYhq97n4OxM1o0eq7a 4ugaSp2q+6BSaAQhbZN8ULCF/oGA/376Sz7RNuoOmQwl9aFqnfl3YgopBIqKvnSP h4j0QynN45rUFOe/VywTmpWKj+DonGCupxe9VvyZ87NKRgKiHprXGDrhdB0GcNXM wV66WbjKBV7qlpSh/GH3oiHwlcYT8LNyZbxTJXcVF5ODtlZfc9zqRtUBWQARAQAB tFNTbWFydG1vbnRvb2xzIFNpZ25pbmcgS2V5ICh0aHJvdWdoIDIwMjUpIDxzbWFy dG1vbnRvb2xzLWRhdGFiYXNlQGxpc3RpLmpwYmVybGluLmRlPokCQQQTAQIAKwIb AwUJDS6amwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAl/gnzECGQEACgkQ6nSr JXIQQsW11g//UmnWOtIgozoqs6beK12NpZyubn/lecEd0yJPzed9cygKpObySBbT 5jz7e5IDGwFLDsTm9fE/2GoyvuVW/riyTsowxrYYleoKm4Pmv30crNruVM7mC7c8 +rbwmx5ZlmHC1tMsM/BdIxK0gqHyAXxWmzyB/YDGElkWnq2/+wjEoARbROUoKQYL qG6q6bv/DQvv4tq/Yw+fsaLZsR4Cou87hB3wAwR3rv3p3GC7N+if86fbkS8rQh5b j3qwTHnf3ugyYz9iEy2pjrHqgnDMV227tP2UiC2ECy3u1Z7eQvMeN2r0x8EIB79D G7ny7ML3QXsJG9Pamg4VHlMh+Sb23GE6rRQuv9m265PeS4/6CsbuHdGer+UaG78V N4bfFhMWpE4sjDZlQZBcm6VLbExhuS89GI7+9zYMtLoXE6Z5Mz0XFjSKlzEK94UT RPcDdcQUHW59NvhG77SvTKN5PHGbcs+0uQkUkvaOxoovio2vWcYANG4eIPC/YvPZ 9q7f/bhMDbKid7eIvtCgvijSiYKQLjt1FtJJZRYF/EESdWWNJTs2OgSFMgSDBE3K Da5alJyx3+IlYFwvF/khtQnGeTB1XRIGL8G7UMaNzpvJQOAEbqEiznyqoo5cNpz+ 03wTOw9IGVJ2fcvg2g+j7ffKQfs+GDYWAqicSKHDYpW2csBAW/1QE62JARwEEwEC AAYFAl/gnzoACgkQL83sC9OvGqvE0Af/XXZ4GWMf4rEB0G3lXr9L9bvX4a/tVWz0 hag57D6By9R6cWNDpRtKx5R0Y1Fv+O+sPHptM3P6LUsWI0d7dEf307n34FxkI/vh 4W1g8ITvhYfJWmJTzA1kNAief45uNPx0QWhGlVf4nQzhe41XnuBdFhYfOkHGf6k8 9SJ9qWRitzE657h6mVO0EKqvjTld8w6lR2rA+oHPQnc9iDmXcZLfSTHP/NapQXPl qtXiR1z0BkswBBaKCnJxVPpzjQA0W8jSyhQ4qPheMjOmVaFoQxZ4CbEaFI67EmVl kwgwf+c6BlKr3DoOca/KmHYT/9dqUv1gfoYYTCm+ATN76vYCG794EokCHAQTAQIA BgUCX+CfRQAKCRC/CzOcZLyqiwQWD/9eNQNnKWxkYL3qjSRt0DwUUaCcFDoj40rb fRxWdU+LZKL7KjAWoRhdfaH7T30wZ9NFenrQXaU/QzuYioz1sHRwIIRYyUp2s0Jc VHAIuOPjk6Q3TDVnbEm0AO0Er32gdxC0DYk4RfGp95n1Aw1kd2BSvKPJuZSRJrIV f8iU3Im1KT4Avl7Fw7FEojQMMvn/qZzeo2pk/QdrrK3KnHkQwy2edx/szY82o2a5 g5WarFFRcxVS2H/xrvNMGUL4TsWcGd3Z2oHoZ0u5A20/PpT2xG1LGXGEwBAqtMS2 6iRAzbQFkkLhcdETTvOSqkDWkzr7NqJ6adhLOEVXsHXNLx23p1Tn+Li/ezpQ6/eQ QDPclU19BjARmfInDq0w5V1q0RNET1J2Xu+Adxtq+Dl8TyhCmJMzO8e4htYnIRZu 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)}"
Save
Upload
📁
Create Folder
📄
accessdb
|
✏️ Edit
📄
accton
|
✏️ Edit
📄
addgnupghome
|
✏️ Edit
📄
addpart
|
✏️ Edit
📄
adduser
|
✏️ Edit
📄
agetty
|
✏️ Edit
📄
alternatives
|
✏️ Edit
📄
anacron
|
✏️ Edit
📄
apachectl
|
✏️ Edit
📄
applygnupgdefaults
|
✏️ Edit
📄
arp
|
✏️ Edit
📄
arping
|
✏️ Edit
📄
arptables
|
✏️ Edit
📄
arptables-nft
|
✏️ Edit
📄
arptables-nft-restore
|
✏️ Edit
📄
arptables-nft-save
|
✏️ Edit
📄
arptables-restore
|
✏️ Edit
📄
arptables-save
|
✏️ Edit
📄
atd
|
✏️ Edit
📄
atrun
|
✏️ Edit
📄
auditctl
|
✏️ Edit
📄
auditd
|
✏️ Edit
📄
augenrules
|
✏️ Edit
📄
aureport
|
✏️ Edit
📄
ausearch
|
✏️ Edit
📄
automount
|
✏️ Edit
📄
autrace
|
✏️ Edit
📄
avcstat
|
✏️ Edit
📄
badblocks
|
✏️ Edit
📄
biosdecode
|
✏️ Edit
📄
blkdeactivate
|
✏️ Edit
📄
blkdiscard
|
✏️ Edit
📄
blkid
|
✏️ Edit
📄
blkmapd
|
✏️ Edit
📄
blkzone
|
✏️ Edit
📄
blockdev
|
✏️ Edit
📄
blockip
|
✏️ Edit
📄
bridge
|
✏️ Edit
📄
capsh
|
✏️ Edit
📄
cfdisk
|
✏️ Edit
📄
cgdisk
|
✏️ Edit
📄
chcpu
|
✏️ Edit
📄
check_forensic
|
✏️ Edit
📄
chgpasswd
|
✏️ Edit
📄
chkconfig
|
✏️ Edit
📄
chpasswd
|
✏️ Edit
📄
chroot
|
✏️ Edit
📄
clamd
|
✏️ Edit
📄
clock
|
✏️ Edit
📄
collectd
|
✏️ Edit
📄
collectdmon
|
✏️ Edit
📄
conntrack
|
✏️ Edit
📄
conntrackd
|
✏️ Edit
📄
consoletype
|
✏️ Edit
📄
convertquota
|
✏️ Edit
📄
cracklib-check
|
✏️ Edit
📄
cracklib-format
|
✏️ Edit
📄
cracklib-packer
|
✏️ Edit
📄
cracklib-unpacker
|
✏️ Edit
📄
create-cracklib-dict
|
✏️ Edit
📄
crond
|
✏️ Edit
📄
ctrlaltdel
|
✏️ Edit
📄
ctstat
|
✏️ Edit
📄
dcb
|
✏️ Edit
📄
ddns-confgen
|
✏️ Edit
📄
debugfs
|
✏️ Edit
📄
delpart
|
✏️ Edit
📄
depmod
|
✏️ Edit
📄
devlink
|
✏️ Edit
📄
dhclient
|
✏️ Edit
📄
dhclient-script
|
✏️ Edit
📄
dmfilemapd
|
✏️ Edit
📄
dmidecode
|
✏️ Edit
📄
dmsetup
|
✏️ Edit
📄
dmstats
|
✏️ Edit
📄
dnssec-cds
|
✏️ Edit
📄
dnssec-checkds
|
✏️ Edit
📄
dnssec-coverage
|
✏️ Edit
📄
dnssec-dsfromkey
|
✏️ Edit
📄
dnssec-importkey
|
✏️ Edit
📄
dnssec-keyfromlabel
|
✏️ Edit
📄
dnssec-keygen
|
✏️ Edit
📄
dnssec-keymgr
|
✏️ Edit
📄
dnssec-revoke
|
✏️ Edit
📄
dnssec-settime
|
✏️ Edit
📄
dnssec-signzone
|
✏️ Edit
📄
dnssec-verify
|
✏️ Edit
📄
dovecot
|
✏️ Edit
📄
dovecot_cpshutdown
|
✏️ Edit
📄
dpll
|
✏️ Edit
📄
dump-acct
|
✏️ Edit
📄
dump-utmp
|
✏️ Edit
📄
dumpe2fs
|
✏️ Edit
📄
e2freefrag
|
✏️ Edit
📄
e2fsck
|
✏️ Edit
📄
e2image
|
✏️ Edit
📄
e2label
|
✏️ Edit
📄
e2mmpstatus
|
✏️ Edit
📄
e2undo
|
✏️ Edit
📄
e4crypt
|
✏️ Edit
📄
e4defrag
|
✏️ Edit
📄
ebtables
|
✏️ Edit
📄
ebtables-nft
|
✏️ Edit
📄
ebtables-nft-restore
|
✏️ Edit
📄
ebtables-nft-save
|
✏️ Edit
📄
ebtables-restore
|
✏️ Edit
📄
ebtables-save
|
✏️ Edit
📄
ebtables-translate
|
✏️ Edit
📄
edquota
|
✏️ Edit
📄
eiguserproc
|
✏️ Edit
📄
ether-wake
|
✏️ Edit
📄
ethtool
|
✏️ Edit
📄
exicyclog
|
✏️ Edit
📄
exigrep
|
✏️ Edit
📄
exim
|
✏️ Edit
📄
eximstats
|
✏️ Edit
📄
exim_checkaccess
|
✏️ Edit
📄
exim_dbmbuild
|
✏️ Edit
📄
exim_dumpdb
|
✏️ Edit
📄
exim_fixdb
|
✏️ Edit
📄
exim_lock
|
✏️ Edit
📄
exim_tidydb
|
✏️ Edit
📄
exinext
|
✏️ Edit
📄
exiqgrep
|
✏️ Edit
📄
exiqsumm
|
✏️ Edit
📄
exiwhat
|
✏️ Edit
📄
exportfs
|
✏️ Edit
📄
faillock
|
✏️ Edit
📄
fbguard
|
✏️ Edit
📄
fb_lock_print
|
✏️ Edit
📄
fcgistarter
|
✏️ Edit
📄
fdformat
|
✏️ Edit
📄
fdisk
|
✏️ Edit
📄
fedfs-map-nfs4
|
✏️ Edit
📄
filefrag
|
✏️ Edit
📄
findfs
|
✏️ Edit
📄
firebird
|
✏️ Edit
📄
firewall
|
✏️ Edit
📄
firewall.pl
|
✏️ Edit
📄
firewalld
|
✏️ Edit
📄
fix-info-dir
|
✏️ Edit
📄
fixfiles
|
✏️ Edit
📄
fixparts
|
✏️ Edit
📄
fsck
|
✏️ Edit
📄
fsck.cramfs
|
✏️ Edit
📄
fsck.ext2
|
✏️ Edit
📄
fsck.ext3
|
✏️ Edit
📄
fsck.ext4
|
✏️ Edit
📄
fsck.minix
|
✏️ Edit
📄
fsck.xfs
|
✏️ Edit
📄
fsfreeze
|
✏️ Edit
📄
fstrim
|
✏️ Edit
📄
fuser
|
✏️ Edit
📄
g13-syshelp
|
✏️ Edit
📄
gdisk
|
✏️ Edit
📄
generate-fmtutilcnf
|
✏️ Edit
📄
genhomedircon
|
✏️ Edit
📄
genhostid
|
✏️ Edit
📄
genl
|
✏️ Edit
📄
getcap
|
✏️ Edit
📄
getenforce
|
✏️ Edit
📄
getpcaps
|
✏️ Edit
📄
getpidprevcon
|
✏️ Edit
📄
getpolicyload
|
✏️ Edit
📄
getsebool
|
✏️ Edit
📄
groupadd
|
✏️ Edit
📄
groupdel
|
✏️ Edit
📄
groupmems
|
✏️ Edit
📄
groupmod
|
✏️ Edit
📄
grpck
|
✏️ Edit
📄
grpconv
|
✏️ Edit
📄
grpunconv
|
✏️ Edit
📄
grub2-bios-setup
|
✏️ Edit
📄
grub2-get-kernel-settings
|
✏️ Edit
📄
grub2-install
|
✏️ Edit
📄
grub2-macbless
|
✏️ Edit
📄
grub2-mkconfig
|
✏️ Edit
📄
grub2-probe
|
✏️ Edit
📄
grub2-reboot
|
✏️ Edit
📄
grub2-set-bootflag
|
✏️ Edit
📄
grub2-set-default
|
✏️ Edit
📄
grub2-set-password
|
✏️ Edit
📄
grub2-setpassword
|
✏️ Edit
📄
grub2-switch-to-blscfg
|
✏️ Edit
📄
grubby
|
✏️ Edit
📄
gssproxy
|
✏️ Edit
📄
halt
|
✏️ Edit
📄
hdparm
|
✏️ Edit
📄
htcacheclean
|
✏️ Edit
📄
httpd
|
✏️ Edit
📄
hwclock
|
✏️ Edit
📄
iconvconfig
|
✏️ Edit
📄
ifconfig
|
✏️ Edit
📄
ifenslave
|
✏️ Edit
📄
ifstat
|
✏️ Edit
📄
inbound-whitelist
|
✏️ Edit
📄
incrond
|
✏️ Edit
📄
init
|
✏️ Edit
📄
insmod
|
✏️ Edit
📄
install-info
|
✏️ Edit
📄
installkernel
|
✏️ Edit
📄
intel_sdsi
|
✏️ Edit
📄
ip
|
✏️ Edit
📄
ip6tables
|
✏️ Edit
📄
ip6tables-nft
|
✏️ Edit
📄
ip6tables-nft-restore
|
✏️ Edit
📄
ip6tables-nft-save
|
✏️ Edit
📄
ip6tables-restore
|
✏️ Edit
📄
ip6tables-restore-translate
|
✏️ Edit
📄
ip6tables-save
|
✏️ Edit
📄
ip6tables-translate
|
✏️ Edit
📄
ipmaddr
|
✏️ Edit
📄
ipset
|
✏️ Edit
📄
ipset-translate
|
✏️ Edit
📄
iptables
|
✏️ Edit
📄
iptables-nft
|
✏️ Edit
📄
iptables-nft-restore
|
✏️ Edit
📄
iptables-nft-save
|
✏️ Edit
📄
iptables-restore
|
✏️ Edit
📄
iptables-restore-translate
|
✏️ Edit
📄
iptables-save
|
✏️ Edit
📄
iptables-translate
|
✏️ Edit
📄
iptunnel
|
✏️ Edit
📄
irqbalance
|
✏️ Edit
📄
irqbalance-ui
|
✏️ Edit
📄
iscsi-iname
|
✏️ Edit
📄
iscsiadm
|
✏️ Edit
📄
iscsid
|
✏️ Edit
📄
iscsistart
|
✏️ Edit
📄
iscsiuio
|
✏️ Edit
📄
kexec
|
✏️ Edit
📄
key.dns_resolver
|
✏️ Edit
📄
kpartx
|
✏️ Edit
📄
lchage
|
✏️ Edit
📄
ldattach
|
✏️ Edit
📄
ldconfig
|
✏️ Edit
📄
lgroupadd
|
✏️ Edit
📄
lgroupdel
|
✏️ Edit
📄
lgroupmod
|
✏️ Edit
📄
lid
|
✏️ Edit
📄
lldpcli
|
✏️ Edit
📄
lldpctl
|
✏️ Edit
📄
lldpd
|
✏️ Edit
📄
lnewusers
|
✏️ Edit
📄
lnstat
|
✏️ Edit
📄
load_policy
|
✏️ Edit
📄
logrotate
|
✏️ Edit
📄
logsave
|
✏️ Edit
📄
losetup
|
✏️ Edit
📄
lpasswd
|
✏️ Edit
📄
lshw
|
✏️ Edit
📄
lsmod
|
✏️ Edit
📄
luseradd
|
✏️ Edit
📄
luserdel
|
✏️ Edit
📄
lusermod
|
✏️ Edit
📄
makedumpfile
|
✏️ Edit
📄
matchpathcon
|
✏️ Edit
📄
mii-diag
|
✏️ Edit
📄
mii-tool
|
✏️ Edit
📄
mkdict
|
✏️ Edit
📄
mkdumprd
|
✏️ Edit
📄
mke2fs
|
✏️ Edit
📄
mkfs
|
✏️ Edit
📄
mkfs.cramfs
|
✏️ Edit
📄
mkfs.ext2
|
✏️ Edit
📄
mkfs.ext3
|
✏️ Edit
📄
mkfs.ext4
|
✏️ Edit
📄
mkfs.minix
|
✏️ Edit
📄
mkfs.xfs
|
✏️ Edit
📄
mkhomedir_helper
|
✏️ Edit
📄
mklost+found
|
✏️ Edit
📄
mksquashfs
|
✏️ Edit
📄
mkswap
|
✏️ Edit
📄
modinfo
|
✏️ Edit
📄
modprobe
|
✏️ Edit
📄
modsec-sdbm-util
|
✏️ Edit
📄
mount.fedfs
|
✏️ Edit
📄
mount.fuse
|
✏️ Edit
📄
mount.nfs
|
✏️ Edit
📄
mount.nfs4
|
✏️ Edit
📄
mountstats
|
✏️ Edit
📄
mysqld
|
✏️ Edit
📄
mysqld-debug
|
✏️ Edit
📄
named
|
✏️ Edit
📄
named-checkconf
|
✏️ Edit
📄
named-checkzone
|
✏️ Edit
📄
named-compilezone
|
✏️ Edit
📄
named-journalprint
|
✏️ Edit
📄
named-nzd2nzf
|
✏️ Edit
📄
nameif
|
✏️ Edit
📄
nethogs
|
✏️ Edit
📄
NetworkManager
|
✏️ Edit
📄
newusers
|
✏️ Edit
📄
nfct
|
✏️ Edit
📄
nfsconf
|
✏️ Edit
📄
nfsdcld
|
✏️ Edit
📄
nfsdclddb
|
✏️ Edit
📄
nfsdclnts
|
✏️ Edit
📄
nfsdcltrack
|
✏️ Edit
📄
nfsidmap
|
✏️ Edit
📄
nfsiostat
|
✏️ Edit
📄
nfsref
|
✏️ Edit
📄
nfsstat
|
✏️ Edit
📄
nft
|
✏️ Edit
📄
ngrep
|
✏️ Edit
📄
nologin
|
✏️ Edit
📄
nscd
|
✏️ Edit
📄
nsec3hash
|
✏️ Edit
📄
nstat
|
✏️ Edit
📄
ntpd
|
✏️ Edit
📄
ntpdate
|
✏️ Edit
📄
ntpq
|
✏️ Edit
📄
openport
|
✏️ Edit
📄
osms
|
✏️ Edit
📄
outbound-throttle
|
✏️ Edit
📄
outbound-whitelist
|
✏️ Edit
📄
ownership
|
✏️ Edit
📄
packer
|
✏️ Edit
📄
pam_console_apply
|
✏️ Edit
📄
pam_namespace_helper
|
✏️ Edit
📄
pam_timestamp_check
|
✏️ Edit
📄
paperconfig
|
✏️ Edit
📄
parted
|
✏️ Edit
📄
partprobe
|
✏️ Edit
📄
partx
|
✏️ Edit
📄
pidof
|
✏️ Edit
📄
ping
|
✏️ Edit
📄
ping6
|
✏️ Edit
📄
pivot_root
|
✏️ Edit
📄
plipconfig
|
✏️ Edit
📄
pluginviewer
|
✏️ Edit
📄
portrelease
|
✏️ Edit
📄
portreserve
|
✏️ Edit
📄
poweroff
|
✏️ Edit
📄
pure-authd
|
✏️ Edit
📄
pure-certd
|
✏️ Edit
📄
pure-config.pl
|
✏️ Edit
📄
pure-ftpd
|
✏️ Edit
📄
pure-ftpwho
|
✏️ Edit
📄
pure-mrtginfo
|
✏️ Edit
📄
pure-quotacheck
|
✏️ Edit
📄
pure-uploadscript
|
✏️ Edit
📄
pwck
|
✏️ Edit
📄
pwconv
|
✏️ Edit
📄
pwhistory_helper
|
✏️ Edit
📄
pwunconv
|
✏️ Edit
📄
quotacheck
|
✏️ Edit
📄
quotaoff
|
✏️ Edit
📄
quotaon
|
✏️ Edit
📄
quotastats
|
✏️ Edit
📄
rbld
|
✏️ Edit
📄
rbldstats
|
✏️ Edit
📄
rdisc
|
✏️ Edit
📄
rdma
|
✏️ Edit
📄
readprofile
|
✏️ Edit
📄
reboot
|
✏️ Edit
📄
repquota
|
✏️ Edit
📄
request-key
|
✏️ Edit
📄
resize2fs
|
✏️ Edit
📄
resizepart
|
✏️ Edit
📄
restorecon
|
✏️ Edit
📄
restorecon_xattr
|
✏️ Edit
📄
rfkill
|
✏️ Edit
📄
rmmod
|
✏️ Edit
📄
rndc
|
✏️ Edit
📄
rndc-confgen
|
✏️ Edit
📄
rngd
|
✏️ Edit
📄
rotatelogs
|
✏️ Edit
📄
route
|
✏️ Edit
📄
rpc.gssd
|
✏️ Edit
📄
rpc.idmapd
|
✏️ Edit
📄
rpc.mountd
|
✏️ Edit
📄
rpc.nfsd
|
✏️ Edit
📄
rpc.statd
|
✏️ Edit
📄
rpcbind
|
✏️ Edit
📄
rpcctl
|
✏️ Edit
📄
rpcdebug
|
✏️ Edit
📄
rpcinfo
|
✏️ Edit
📄
rsyslogd
|
✏️ Edit
📄
rtacct
|
✏️ Edit
📄
rtcwake
|
✏️ Edit
📄
rtkitctl
|
✏️ Edit
📄
rtmon
|
✏️ Edit
📄
rtstat
|
✏️ Edit
📄
runlevel
|
✏️ Edit
📄
runq
|
✏️ Edit
📄
runuser
|
✏️ Edit
📄
sa
|
✏️ Edit
📄
saslauthd
|
✏️ Edit
📄
sasldblistusers2
|
✏️ Edit
📄
saslpasswd2
|
✏️ Edit
📄
sefcontext_compile
|
✏️ Edit
📄
selabel_digest
|
✏️ Edit
📄
selabel_get_digests_all_partial_matches
|
✏️ Edit
📄
selabel_lookup
|
✏️ Edit
📄
selabel_lookup_best_match
|
✏️ Edit
📄
selabel_partial_match
|
✏️ Edit
📄
selinuxconlist
|
✏️ Edit
📄
selinuxdefcon
|
✏️ Edit
📄
selinuxenabled
|
✏️ Edit
📄
selinuxexeccon
|
✏️ Edit
📄
selinux_check_access
|
✏️ Edit
📄
semanage
|
✏️ Edit
📄
semodule
|
✏️ Edit
📄
sendmail
|
✏️ Edit
📄
service
|
✏️ Edit
📄
sestatus
|
✏️ Edit
📄
setcap
|
✏️ Edit
📄
setenforce
|
✏️ Edit
📄
setfiles
|
✏️ Edit
📄
setquota
|
✏️ Edit
📄
setsebool
|
✏️ Edit
📄
sfdisk
|
✏️ Edit
📄
sgdisk
|
✏️ Edit
📄
showmount
|
✏️ Edit
📄
shutdown
|
✏️ Edit
📄
slattach
|
✏️ Edit
📄
sm-notify
|
✏️ Edit
📄
smartctl
|
✏️ Edit
📄
smartd
|
✏️ Edit
📄
snmpd
|
✏️ Edit
📄
snmptrapd
|
✏️ Edit
📄
ss
|
✏️ Edit
📄
sshd
|
✏️ Edit
📄
sssd
|
✏️ Edit
📄
sss_cache
|
✏️ Edit
📄
start-statd
|
✏️ Edit
📄
start-stop-daemon
|
✏️ Edit
📄
suexec
|
✏️ Edit
📄
sulogin
|
✏️ Edit
📄
swaplabel
|
✏️ Edit
📄
swapoff
|
✏️ Edit
📄
swapon
|
✏️ Edit
📄
switch_root
|
✏️ Edit
📄
sysctl
|
✏️ Edit
📄
t1libconfig
|
✏️ Edit
📄
tc
|
✏️ Edit
📄
tcpdump
|
✏️ Edit
📄
tcpslice
|
✏️ Edit
📄
telinit
|
✏️ Edit
📄
testsaslauthd
|
✏️ Edit
📄
tipc
|
✏️ Edit
📄
tmpwatch
|
✏️ Edit
📄
tracepath
|
✏️ Edit
📄
tracepath6
|
✏️ Edit
📄
tsig-keygen
|
✏️ Edit
📄
tune2fs
|
✏️ Edit
📄
tuned
|
✏️ Edit
📄
tuned-adm
|
✏️ Edit
📄
udevadm
|
✏️ Edit
📄
umount.nfs
|
✏️ Edit
📄
umount.nfs4
|
✏️ Edit
📄
unix_chkpwd
|
✏️ Edit
📄
unix_update
|
✏️ Edit
📄
unsquashfs
|
✏️ Edit
📄
update-alternatives
|
✏️ Edit
📄
update-smart-drivedb
|
✏️ Edit
📄
useradd
|
✏️ Edit
📄
userdel
|
✏️ Edit
📄
usermod
|
✏️ Edit
📄
validatetrans
|
✏️ Edit
📄
vdpa
|
✏️ Edit
📄
vigr
|
✏️ Edit
📄
vipw
|
✏️ Edit
📄
virt-what
|
✏️ Edit
📄
virt-what-cvm
|
✏️ Edit
📄
visudo
|
✏️ Edit
📄
vmcore-dmesg
|
✏️ Edit
📄
vpddecode
|
✏️ Edit
📄
weak-modules
|
✏️ Edit
📄
whmapi0
|
✏️ Edit
📄
whmapi1
|
✏️ Edit
📄
whmlogin
|
✏️ Edit
📄
wipefs
|
✏️ Edit
📄
xfs_admin
|
✏️ Edit
📄
xfs_bmap
|
✏️ Edit
📄
xfs_copy
|
✏️ Edit
📄
xfs_db
|
✏️ Edit
📄
xfs_estimate
|
✏️ Edit
📄
xfs_freeze
|
✏️ Edit
📄
xfs_fsr
|
✏️ Edit
📄
xfs_growfs
|
✏️ Edit
📄
xfs_info
|
✏️ Edit
📄
xfs_io
|
✏️ Edit
📄
xfs_logprint
|
✏️ Edit
📄
xfs_mdrestore
|
✏️ Edit
📄
xfs_metadump
|
✏️ Edit
📄
xfs_mkfile
|
✏️ Edit
📄
xfs_ncheck
|
✏️ Edit
📄
xfs_quota
|
✏️ Edit
📄
xfs_repair
|
✏️ Edit
📄
xfs_rtcp
|
✏️ Edit
📄
xfs_spaceman
|
✏️ Edit
📄
xqmstats
|
✏️ Edit
📄
xtables-monitor
|
✏️ Edit
📄
xtables-nft-multi
|
✏️ Edit
📄
zic
|
✏️ Edit
📄
zramctl
|
✏️ Edit