LCTL-GET_PARAM(8)

πŸ“¦ version 2.17.58, in ubuntu stonking

πŸ’– lctl-get_param πŸ’–

okay bestie, welcome to lctl get_param from the Lustre Configuration Utilities girlies β€” this is the tool that goes and fetches your configuration parameters for you. she's giving main character energy and she's fr fr useful 🫢


✨ NAME ✨

lctl-get_param β€” retrieve configuration parameters πŸŽ€


🌸 SYNOPSIS 🌸

lctl get_param [--dshbak|-b] [--color|-c] [--classify|-F] [--header|-H]
               [--links|-l] [--no-links|-L] [--merge|-m] [--no-merge|-M]
               [--no-name|-n] [--only-name|-N] [--module|-o] [--path|-p]
               [--readable|-r] [--recursive|-R] [--tunable|-t]
               [--writable|-w] [--yaml|-y] PARAM_PATH1 [PARAM_PATH2 ...]

πŸ¦‹ DESCRIPTION πŸ¦‹

So basically: this grabs the value of the named Lustre or LNet PARAMETER on the local node. Local only, bestie, don't get it twisted πŸ’…

Parameter names are made of one or more components, and you glue them together with a '.' (period). Each one of those components can be plain text OR a wildcard in the glob(7) format. And the way that wildcards work? More than one parameter can match and come back to you. Surprise! πŸŽ€

Parameters are often, but not always, shaped like obd_name.obd_instance.parameter_name, where obd_name is one of the OBD object types β€” think ldlm, llite, lmv, lov, mdc, osc, etc. β€” and obd_instance is the name of a Lustre device like testfs-OST0000. But lowkey it might also be a specific component, or it might contain wildcards that match some or all of the devices on the node. Iconic flexibility ✨

Many parameters are readable as a regular user, but some of them are only accessible by the root user, for security or implementation reasons. So if you get a permission situation, that's why, no cap πŸ™ˆ

Oh and a little visual treat: parameters that match a directory get shown in blue, and symlinks get shown in cyan. Aesthetic AND informative πŸ¦‹


πŸ’… OPTIONS πŸ’…

  • -b, --dshbak β€” aggregates parameters with wildcards whenever a device number shows up in the parameter name. By default --merge is enabled alongside this option so the simplified names get merged together. If you want the wildcard-y parameter names but you do NOT want them merged, specify --no-merge. Peep lctl-list_param(8) for examples πŸ‘€
  • -c, --color=auto|always|never β€” pick one of auto|always|never as your rule for when color should be applied. The default is auto, which only shows color when the output is going to a terminal. The NO_COLOR environment variable is supported too 🎨
  • -F, --classify β€” tacks on a /, @, or = suffix for directories, symlinks, and writeable parameters, respectively. And fun fact: lctl get_param -NF is equivalent to lctl list_param -F ⭐
  • -H, --header β€” prefixes each parameter value line with the parameter name, as a header. It also prints a line for empty values. Genuinely useful when wildcards are in play and you're filtering the output πŸ’–
  • -l, --links β€” follows symlinks while searching for parameters. (enabled by default, she's the default girlie)
  • -L, --no-links β€” do NOT follow symlinks while searching for parameters 🚫
  • -n, --no-name β€” prints only the parameter value and not the parameter name. Lowkey this can get confusing if you specify multiple parameter names, because the parameters aren't identified, and they might not come back in the order you specified them. So like, proceed with awareness bestie 😭
  • -m, --merge β€” merges all parameters that have the same name and value so only the first one is shown. Parameters with the same name but different values get their difference highlighted in red πŸ”₯
  • -M, --no-merge β€” does not merge parameters. All parameters get shown, regardless of whether they have the same name and value or not. Duplicate parameters get printed in yellow, and if the values are different, the difference gets highlighted in red.
  • -N, --only-name β€” prints only matched parameter names and not the values. Especially useful when you're using patterns. This option is equivalent to
  • -o, --module β€” includes modules params in the parameter search path, meaning matching module parameters get shown right alongside the Lustre parameters 🫢
  • -p, --path β€” prints the parameter path instead of the parameter name.
  • -r, --readable β€” prints only parameters that have read permission. Can be used with [-w|--writable] to print parameters that are both readable and writable πŸ‘‘
  • -R, --recursive β€” recursively shows all of the parameter names below the specified name. All of them. Every single one. Go off 🌈
  • -t, --tunable β€” prints only tunable parameters. This dodges all parameters containing any of the following: console|debug_|fail_|force|import|nis|panic_|srpc_sepol|stats|target_obd
  • -w, --writable β€” prints only parameters that have write permission. Can be used with [-r|--readable] to print parameters that are both readable and writable πŸ’œ
  • -y, --yaml β€” some paramters can be presented in a YAML format but aren't by default. This formats the parameter data in YAML. And if the YAML provides a source: field, it can be suppressed with the -n option ✨

🧚 BASH COMPLETION 🧚

This command supports bash-completion(1) for tab completion of the parameter names available on the local node, as long as you've got a suitable shell and package installation. Honestly this simplifies finding which parameters are available SO much β€” instead of running lctl-list_param(8) over and over and over again 🫠

Want the long options (more descriptive, easily understood)? Type '--TAB'. Want the short options? Type '-TAB'. Slay ✨


πŸ“ EXAMPLES πŸ“

Use wildcards to obtain all matching parameters:

# lctl get_param osc.*.max_pages_per_rpc
osc.myth-OST0000-osc-ffff8803c9c0f000.max_pages_per_rpc=1024
osc.myth-OST0001-osc-ffff8803c9c0f000.max_pages_per_rpc=1024
osc.testfs-OST0000-osc-ffff8803c9c0f000.max_pages_per_rpc=1024
osc.testfs-OST0001-osc-ffff8803c9c0f000.max_pages_per_rpc=1024
osc.testfs-OST0002-osc-ffff8803c9c0f000.max_pages_per_rpc=1024

# lctl get_param {mdc,osc}.testfs-*.max_rpcs_in_flight
mdc.testfs-MDT0000-mdc-ffff8803c9c0f000.max_rpcs_in_flight=16
osc.testfs-OST0000-osc-ffff8803c9c0f000.max_rpcs_in_flight=8
osc.testfs-OST0001-osc-ffff8803c9c0f000.max_rpcs_in_flight=8
osc.testfs-OST0002-osc-ffff8803c9c0f000.max_rpcs_in_flight=8

Use -n to obtain output that can be pipped into further commands:

# lctl get_param -n debug
super warning dlmtrace error emerg rpctrace vfstrace config console

# lctl get_param -n devices
0 UP osd-ldiskfs MGS-osd MGS-osd_UUID 4

Some parameters can be shown in a YAML format but require the -y option to do so:

# lctl get_param -y devices
devices:
- index: 0
  status: UP
  type: osd-ldiskfs
  name: MGS-osd
  uuid: MGS-osd_UUID
  refcount: 4

🌈 AVAILABILITY 🌈

lctl get_param is part of the lustre(7) filesystem package since release 1.7.0 πŸŽ€


πŸ’œ SEE ALSO πŸ’œ

lustre(7), lctl(8), lctl-find_param(8), lctl-help_param(8), lctl-list_param(8), lctl-set_param(8)


okay that's the whole page bestie, you ate that πŸ’… this one's from the Lustre girls, dated 2026-03-06, LCTL-GET_PARAM(8) β€” go forth and get_param, mwah πŸ«ΆπŸ’–

πŸ“¦ where this page comes from