我有一个装有 wdlinux (White Dwarf 2.0) 的嵌入式设备。我可以使用 ssh 或 ftp 访问这个 linux。
昨天我手动执行了“updatedb 1>/dev/null 2>/dev/null”。 (它将每天早上作为 cronjob 执行)。 今天,linux 系统行为异常:(1)命令“ls”不再列出任何文件。 (如果我使用 ftp 登录,我可以看到所有文件)(2)命令“netstat”也没有显示任何内容。
我刚刚再次执行了不带任何参数的“updatedb”。之后“ls”工作了一次,然后就不再工作了。
我现在完全糊涂了。任何提示都非常感谢。
答案1
updatedb 与 ls 无关。它用于定位。使用命令检查 ls 位于何处
which ls
或者
type ls
哪个 ls 应该会告诉您它在 '/bin/ls' 中,如果存在,则告诉您 ls 命令的别名。dir
如果该 Linux 上存在该命令,请尝试该命令。只是为了看看是否有人搞砸了 ls 来创建某种后门或 ls 可执行文件已损坏。dir
可能仍然运行良好。如果dir
不存在或给出奇怪的输出,我建议fsck
在文件系统上运行。
答案2
它们是隐藏文件吗?如果是,请尝试:
ls -la
答案3
您没有提到您正在使用什么文件系统。
如果当前目录消失,“ls”将不显示任何内容。例如:
$ mkdir tmp
$ cd tmp
$ cp /etc/passwd /etc/group .
$ ls
passwd group
$ rm -rf $(pwd)
$ ls
(empty)
$ mkdir $(pwd); cp /etc/passwd /etc/group $(pwd)
$ ls
(empty)
$ ls $(pwd)
passwd group
$ ls -lid . $(pwd)
(show different inodes)
$ cd $(pwd)
$ ls
passwd group
为了使 netstat 成功,我相信您需要安装 /proc。
您运行 updatedb 的方式是否会产生一些奇怪的副作用?如果这种情况可重现,也许您想在不丢弃输出(尤其是 stderr)的情况下运行 updatedb,看看是否能看到一些有趣的东西?
答案4
运行find
并查看是否显示任何内容。如果显示,则说明您的 有问题ls
。