我有一个embedded式设备wdlinux(白矮2.0)。 我可以使用ssh或ftp访问这个linux。
昨天我手动执行了“updatedb 1> / dev / null 2> / dev / null”。 (这将作为每天早晨cronjob执行)。 今天的linux系统performance奇怪:(1)命令“ls”不再列出任何文件。 (如果我使用ftplogin,我可以看到所有的文件)(2)“netstat”命令也没有显示。
我刚刚执行了“updatedb”没有任何争论再次。 之后,“ls”工作了一次,然后再次不工作。
我现在完全困惑。 任何提示都表示赞赏。
updatedb与ls无关。 它用于定位。 使用命令检查ls位于哪里
which ls
要么
type ls
哪个ls应该告诉你它在'/ bin / ls'和ls命令的别名(如果它存在的话)。 如果在该Linux上存在,请尝试dir命令。 只是为了看看是否有人破坏ls来创build某种后门或ls可执行文件已损坏。 dir可能仍然是完美的工作。 如果dir不存在或给出奇怪的输出,我会build议在文件系统上运行fsck 。
他们隐藏文件? 如果这样尝试:
ls -la
您的机器遭到黑客攻击的可能性有多大? 这有点公然,但是我看到一些攻击使得像netstat这样的东西能够隐藏自己。
你有没有磁盘空间? (df -h)
你没有提到你正在使用的文件系统。
如果当前目录消失,“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的方式有一些奇怪的副作用吗? 如果这是可重复的,也许你想运行updatedb而不丢弃输出,特别是stderr,看看你是否看到有趣的东西?
运行find ,看看是否显示任何内容。 如果确实如此,那么你的ls就有问题了。
比较下面的命令的结果如果ls工作,如果没有:
which ls
如果输出改变了,那么你的系统是非常错误的。 如果输出是相同的,那么文件许可权是错误的。
现在暂停这个答案…我想弄清楚这意味着什么。
Arjan做出正确的评论,如果pathparsing失败,你应该find'command not found'错误。
旧。
很多时候,embedded式linux并没有提供适当的环境设置,并且可以在没有任何PATH引用的情况下运行。 首先要做的事情是,
echo $PATH
如果这没有显示任何东西(这是我怀疑的),你需要正确的设置path之前的任何命令shell( echo是shell的一部分)将工作。