温馨提示×

如何批量用debian getconf

小樊
31
2026-10-01 16:42:23
栏目: 智能运维

在 Debian 里,getconf 本身没有“批量”参数,但可以通过 shell 循环 / xargs / 脚本 来实现“批量获取配置”。下面按常见场景给你几种实用方法。


一、批量查询多个变量(最常用)

1️⃣ 已知变量名列表

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

2️⃣ 从文件批量读取变量名

cat vars.txt | while read var; do
    echo "$var = $(getconf $var)"
done

vars.txt 示例:

LONG_BIT
PAGE_SIZE
_NPROCESSORS_ONLN

二、批量查询某个前缀的所有配置

getconf -a 可列出所有系统配置变量

1️⃣ 查看全部

getconf -a

2️⃣ 过滤并批量显示(例如和线程相关)

getconf -a | grep -i thread

3️⃣ 批量获取匹配项的值

getconf -a | awk '{print $1}' | while read var; do
    echo "$var = $(getconf $var)"
done

⚠️ 注意:部分变量 getconf 不一定支持二次查询,可能返回空。


三、批量对多台 Debian 主机执行(进阶)

使用 ssh + getconf

for 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'

四、批量获取系统限制(ulimit 风格)

结合 getconf + xargs

getconf -a | awk '{print $1}' | xargs -I{} sh -c 'echo "{} = $(getconf {})"'

五、实用示例合集

查看 CPU / 内存相关

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 参数),可以直接说,我给你写现成脚本。

0 踩