systemd 的答案。

systemd 的答案。

问题:

linux(例如debian/ubuntu)中是否有地方可以放置计算机描述?
含义:是否有指令或最佳实践(我在 FHS 中没有看到)?
(也许是一个文件/etc/hostinfo?)

背景:

在 Windows 中,您可以在 sysdm.cpl(系统属性 > 计算机名)下放置描述,然后可以从 cmd 查询此信息,例如:
wmic path win32_operatingsystem get descriptiong

因此,即使我将网络中的所有机器命名win01为,win25我也可以给它们一个简短的有意义的描述,我可以在不搜索文档的情况下阅读这些描述。

目前我在 /etc/profile 中有此信息,但我宁愿从单独的位置读取它。如果没有指导方针,我认为 /etc/hostinfo 可能是一个好地方,但我不知道这是否会与其他一些程序/常用程序发生冲突。
或者有更好的策略吗?

答案1

在 Unix/Linux 中执行此操作的典型位置是在/etc/motdor /etc/issue&/etc/issue.net文件中。当人们通过控制台或通过 SSH 登录系统时,他们将看到这些文件的内容。

除此之外,通常情况下,外部系统用于管理有关系统用途的任何元数据。此类软件称为资产和库存管理。

我最熟悉的是 Solarwinds(商业版)。我不是推荐它或任何东西,只是举一个例子。还有其他的,如上面列出的替代笔记:对这个列表持保留态度,并非所有这些功能都完全相同。

/etc/motd 示例

$ cat /etc/motd
Company X Ltd. CentOS 7 Build 1805.02

当您登录时,您会看到它显示如下:

$ vagrant ssh box-101

Last login: Mon Jul  9 19:32:36 2018 from gateway
Company X Ltd. CentOS 7 Build 1805.02
[vagrant@centos7 ~]$

/etc/问题示例

$ cat /etc/issue
This system is the property of Company Ltd.

然后当你登录系统时:

     登录的SS

参考

答案2

systemd 的答案。

Debian 和 Ubuntu 现在都是 systemd 操作系统,systemd 的人们为此发明了一种机制。 (它也适用于其他 systemd 操作系统;但您不会在任何 Linux 非 systemd 操作系统、BSD、MacOS 或各种商业 Unices 上找到它。)它是一个/etc/machine-info文件,其中包含其他内容主机名的“美化”版本。

这不必与gethostname()C 库函数返回的实际动态主机名(并由hostnameuname -n命令打印)相同,systemd 人们称之为“瞬态”主机名。您可以利用这一点为您的机器提供“美化”的主机名,这些主机名可以提供您喜欢的信息。

systemd 人们希望您通过以下命令查询并设置这个“美化的”主机名hostnamectl

# hostnamectl --pretty set-hostname "我是 JdeBP 的 4o 机器。"
# hostnamectl --pretty
我是JdeBP的4o机器。
#

但是,该命令并不直接读取文件。相反,它需要运行两个系统守护进程:系统范围的桌面总线守护进程和hostnamed守护进程。该命令使用复杂的内部协议与第一个守护进程通信,然后该守护进程与第二个守护进程通信,后者直接读取(和写入)文件。

我自己直接读了文件。

$clearenv read-conf --oknofile /etc/machine-info printenv PRETTY_HOSTNAME
我是JdeBP的4o机器。
$

进一步阅读

相关内容