在 Debian 里,getconf 本身没有“批量”参数,但可以通过 shell 循环 / xargs / 脚本 来实现“批量获取配置”。下面按常见场景给你几种实用方法。
for var in LONG_BIT PAGE_SIZE _NPROCESSORS_ONLN HOSTNAME; do
echo "$var = $(getconf $var)"
done
输出示例:
LONG_BIT = 64
PAGE_SIZE = 4096
_NPROCESSORS_ONLN = 8
HOSTNAME = debian
cat vars.txt | while read var; do
echo "$var = $(getconf $var)"
done
vars.txt 示例:
LONG_BIT
PAGE_SIZE
_NPROCESSORS_ONLN
getconf -a 可列出所有系统配置变量
getconf -a
getconf -a | grep -i thread
getconf -a | awk '{print $1}' | while read var; do
echo "$var = $(getconf $var)"
done
⚠️ 注意:部分变量 getconf 不一定支持二次查询,可能返回空。
ssh + getconffor host in node1 node2 node3; do
echo "=== $host ==="
ssh $host 'getconf LONG_BIT; getconf _NPROCESSORS_ONLN'
done
或用 pssh:
pssh -h hosts.txt -i 'getconf -a'
结合 getconf + xargs
getconf -a | awk '{print $1}' | xargs -I{} sh -c 'echo "{} = $(getconf {})"'
getconf _NPROCESSORS_ONLN
getconf PAGE_SIZE
getconf LONG_BIT
#!/bin/bash
for v in LONG_BIT PAGE_SIZE _NPROCESSORS_ONLN; do
printf "%-20s %s\n" "$v" "$(getconf $v)"
done
| 需求 | 方法 |
|---|---|
| 批量变量 | for / while |
| 全部变量 | getconf -a |
| 过滤变量 | grep + getconf |
| 多主机 | ssh / pssh |
如果你有具体想批量查什么(比如:CPU、文件限制、POSIX 参数),可以直接说,我给你写现成脚本。