我在大学工作。在我的学院,我们有六个计算机实验室用于教学。每个实验室有近 20 台计算机,总共有 100 多台机器。计算机具有 Windows XP 或 Windows 7 Eneterprise 操作系统。我们使用 Symantec Ghost 来管理所有计算机。每台计算机都安装了一个 Ghost 客户端,它允许通过网络控制计算机。我们每六个月在实验室中的一台计算机上恢复一个主映像,更新该映像并通过网络将其分发到实验室中的所有计算机。感谢 Ghost 客户端,只需点击几下即可自动完成。
最近我建议在实验室里安装Linux会很好。管理员担心,如果每台计算机都必须手动更新,我们将无法管理那么多计算机。问题是:如何以自动化的方式管理如此庞大的 Linux 机器网络?
为了使我们的网络描述更完整,我将补充说所有学生在中央服务器上都有他们的帐户(大约几千个用户)。这些是通过 LDAP 访问的。要在实验室使用计算机,每个学生都必须使用自己的帐户登录。
我的.bashrc
文件导出一个名为的函数lookup
:
lookup() {
grep -r -ne "$1" * | grep -v "TAGS:" | grep -v "tags:"
}
export -f lookup
Run Code Online (Sandbox Code Playgroud)
我可以在 shell 中使用该函数。但是如果我把它放在这样的脚本中:
#!/bin/bash
lookup "foo"
Run Code Online (Sandbox Code Playgroud)
并运行脚本,然后 bash 报告“未找到命令” lookup
。这曾经工作过一段时间。我强烈怀疑这在我的系统上的 bash 安全更新后停止工作(可能与 shellshock/bashdoor 相关?)我的 bash 版本是 openSUSE 11.4 上的 4.1.10(1)