linux – / dev / null文件成为常规文件

在我们的生产服务器中突然/ dev / null成为常规文件,并且由于此sshd服务已停止并且无法登录服务器.我们还尝试以下步骤配置回字符设备文件,
rm -rf /dev/null
mknod /dev/null c 1 3

一旦我们运行rm命令,就会在mknod运行之前将/ dev / null重新创建为常规文件.我们无法弄清楚这是如何发生的以及创建此文件的组件.因此,在我们解决此问题之前,我们无法将/ dev / null创建为字符设备文件.

解决方法

当您删除(rm)/ dev / null时,任何正在运行且需要“> / dev / null”或等效的程序/脚本将重新创建具有该名称的新(常规)文件.
那些可以随时产生(有些也可能不断写入)

打败他们:

你创建一个新的/ dev / null特殊文件(在不同的名称下)

mknod /dev/newnull c 1 3
chmod 777 /dev/newnull

然后将其移动(以root身份)连续创建的:

mv -f /dev/newnull /dev/null

只有这样你才能重新启动(不要在没有适当的/ dev / null文件的情况下重新启动……通常不容易)[我忘记了这一步,这当然是必要的.谢谢@ Random832的提醒!]

你最后需要重新启动,以摆脱仍然打开“/ dev / null”的现有程序仍然会写入文件系统,即使你之后更换它,一点一点地填充文件系统)(的确),就像删除文件一样,任何仍然打开该文件描述符的程序仍然可以写入前一个inode,即使文件名现在指向新文件名)

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...