疑问
1. 假设有程序不断地输出日志到 /var/log/example.log
[cc lang=”text”]
# ./test.sh > /var/log/example.log
[/cc]
2. 假设这个程序会运行一年,日志量可能到达5GB.
3. 程序在每次写入新日志的时候,“>”会不会先将 /var/log/example.log 的已有数据读入内存,再追加新的日子? 如果是这样,内存会被大量占用而影响系统性能。
(更多…)
1. 假设有程序不断地输出日志到 /var/log/example.log
[cc lang=”text”]
# ./test.sh > /var/log/example.log
[/cc]
2. 假设这个程序会运行一年,日志量可能到达5GB.
3. 程序在每次写入新日志的时候,“>”会不会先将 /var/log/example.log 的已有数据读入内存,再追加新的日子? 如果是这样,内存会被大量占用而影响系统性能。
(更多…)
正常情况下,在系统中删除一个文件,只会在文件系统层面把文件相应的 inode 信息删除,实际上数据仍存在于磁盘中。
在vmware环境中,vmware实际上可以回收磁盘未被使用的空间,把空间留给其他虚拟机使用。
所以,在删除文件的时候,可以将文件的数据清零,使vmware可以把空间回收。
(更多…)
Gnome Tracker 主要做“全方位文件索引”。然而,有客户的服务器环境因为开了图形,磁盘被 tracker 的数据库塞满了。(听我一句劝,不要在服务器运行Gnome)
然而,目前没有一键关停 Tracker 的方法。
(更多…)
被问到“Linux上用什么命令删除一个MQ”. 为了验证这个问题需要先整出来一个MQ,然后删除它。
(更多…)
用户有时候会遇到在 RHEL7/ Centos7 中按下电源按钮,出现“诡异”现象。比如为什么按下电源键就黑屏了没关机。这里的“电源按钮”,包括了物理的按钮和虚拟机的“关机”按钮。
RHEL7中的电源键行为主要有两个影响因素,systemd 和 gnome3.
(更多…)
为了能让访客访问到最快的服务器,可以在DNS上动手脚。有一些DNS服务商如dnspod可以根据DNS查询者的位置,给出相应的DNS解析结果。
自己搭建DNS服务器,也可以实现类似效果。在 BIND 9.10 中,提供了 GeoIP 的功能,利用 GeoIP 库查询访客IP所在区域,根据区域给出结果。参考:
https://kb.isc.org/article/AA-01149/0/Using-the-GeoIP-Features-in-BIND-9.10.html
(更多…)
在集群中,如果一个节点出现故障,存活的节点会接管服务。但在接管服务之前,存活节点需要确定故障节点当前没有访问共享存储,fence 机制可以阻断故障节点访问存储,保证数据不被损坏。

(更多…)
这个问题的更准确表述是,在用rpm命令更新软件包时,这个软件包里的某个文件是逐渐改变的,还是原子的?
比如说,有一个软件包叫 fake-1.rpm,里面有A/B/C三个文件。这个软件包有一个更新版本 fake-2.rpm, 其中对B文件进行了变更。那么,在进行rpm的升级过程中,文件B会发生怎样的改变?在升级过程中,文件B有没有可能是不完整的?它的MD5值是yyy1234, yyy5678 还是其它值?
[cc]
fake-1.rpm (version 1)
+——-+———+
| Files | MD5 |
+——-+———+
| A | xxx1234 |
+——-+———+
| B | yyy1234 |
+——-+———+
| C | zzz1234 |
+——-+———+
fake-2.rpm (version 2)
+——-+———+
| Files | MD5 |
+——-+———+
| A | xxx1234 |
+——-+———+
| B | yyy5678 |
+——-+———+
| C | zzz1234 |
+——-+———+
[/cc]
(更多…)
一些安全策略会要求,除了根目录(/),其他目录如果挂载了单独的分区,应该添加 nodev 挂载选项。
所以 nodev 有什么用呢? mount 的 man 手册如此解释:
[cc lang=”bash”]
nodev Do not interpret character or block special devices on the file system.
[/cc]
好吧,看完我还是没理解这个选项到底是干嘛的。网上搜索到了几个回答[2][3]。如果在挂载时,添加了nodev选项,那么系统不会把该文件系统里面的 block/character 文件当作是 block/character 文件来处理。
举个例子,一位别有用心的用户,在他有权限的机器上(比如他的笔记本),在U盘上创建了一个 block 文件,指向 sd* 之类的数据盘,这么巧他有权限把U盘插到服务器上,这么巧服务器自动挂载了这个U盘且没有 nodev 挂载选项,那么这位用户就能通过这个 block 文件读取到服务器上相应磁盘的数据。

– 在一个两节点高可用集群中,心跳和fence设备不在同一个网络;
– 如果心跳网络出现异常,两个节点则会出现分离;
– 在 Corosync 2.x 中,两节点默认(必须)开启two_node模式,在这个分离的情况下,两节点均可达到quorate的状态;
– 由于fence网络可以正常连同,两节点会互相fence对方,造成fencing race,两节点均被重启而无法提供服务;

(更多…)