【发布时间】:2018-02-08 11:31:58
【问题描述】:
好的,希望我能正确解释这一点,因为我不知道是什么原因造成的,也不知道如何解决。
由于某些原因,bash 命令(在 CentOS 6.x 服务器上)显示的信息比“正常”多,这会导致某些脚本出现问题。我不知道是否有这个名字,但希望有人知道这个的解决方案。
第一个例子。
正确/良好的服务器:
[root@goodserver ~]# vzctl enter 3567
entered into CT 3567
[root@example /]#
(这是正确的行为)
不正确/坏的服务器:
[root@badserver /]# vzctl enter 3127
Entering CT
entered into CT 3127
Open /dev/pts/0
[root@example /]#
对于“坏”的服务器,它会像往常一样显示更多信息,例如:
- 进入CT
- 打开 /dev/pts/0
这就像它解析关于它正在做什么的额外信息。
当然,上面的内容纯属装饰性的,但是对于我们使用的几个 bash 脚本,这些问题确实是个问题。
我们使用的脚本的一部分,使用了以下命令(还有更多,但这主要是一个错误的例子):
DOMAIN=`vzctl exec $VEID 'hostname -d'`
以上信息的结果在/etc/named.conf中解析。
在 GOOD 服务器上,它会像这样添加到 named.conf 中:
zone "example.com" {
type master;
file "example.com";
allow-transfer {
200.190.100.10;
200.190.101.10;
common-allow-transfer;
};
};
以上是正确的。
在 BAD 服务器上,它会像这样添加到 named.conf 中:
zone "Executing command: hostname -d
example.com" {
type master;
file "Executing command: hostname -d
example.com";
allow-transfer {
200.190.100.10;
200.190.101.10;
common-allow-transfer;
};
};
所以它添加了它所做的操作,在这个例子中是“Executing command: hostname -d”
另一个例子是我在一个好的服务器和坏的服务器上运行命令。
错误的服务器:
[root@bad-server /]# DOMAIN=`vzctl exec 3333 'hostname -d'`
[root@bad-server /]# echo $DOMAIN
Executing command: hostname -d example.com
好的服务器:
[root@good-server ~]# DOMAIN=`vzctl exec 4444 'hostname -d'`
[root@good-server ~]# echo $DOMAIN
example.com
我的知识有限,但我已经尝试了一些检查 rsyslog 和 grub.conf 的方法,但似乎没有什么异常。
我不知道为什么它会显示额外的信息。
可能这是一些简单/愚蠢的事情,但我已经尝试解决这个问题几个小时了,我真的不知道......
非常感谢任何帮助。
补充资料: 两台服务器都使用: kernel.printk = 7 4 1 7 (不知道有没有用)
【问题讨论】:
-
我不是 100% 确定这会对您有所帮助,但您至少应该尝试一下:
sudo dmesg --console-off -
在你给我的命令之后,我调查了一些事情。然而它没有帮助。两者都使用: kernel.printk = 7 4 1 7 所以不是这样.. 不过谢谢。
-
看看我认为是你的
vzctl的man 我注意到一个--quiet选项可能会解决你的问题(“禁用输出。请注意,由 vzctl 运行的脚本仍然能够产生一些输出。”)。所以第二个例子是DOMAIN=$(vzctl --quiet exec $VEID 'hostname -d')。对于第一个示例,我担心它也会禁用“输入 CT 3567”输出。 -
vzctl必须读取一些特定于服务器的 conf。我根本不知道该工具,因此无法提供进一步帮助,但我已将 openvz 标签添加到您的问题中,希望它能吸引有该工具经验的人。 -
太好了,不客气! :) 如果一切正常,我建议您发布自己的答案并接受它。
标签: bash shell command-line openvz