2016-08-14 66 views
0

我想我的服务器我的服务器不响应到grep

grep -lr --include=*.php "eval(base64_decode" /path/to/webroot 

绝对没有任何反应,没有来自服务器的响应上使用此命令。

任何人都可以帮我吗? 我不是一个有经验的Linux用户。

+0

请查看[editing-help](http://stackoverflow.com/editing-help)。 – Cyrus

+2

首先要理解你的问题,消除那些奇特的论点。你可以得到'grep“eval(base64_decode”/ path/to/webroot/subdir/one_phpFileOnly.php“)吗?(只需要搜索一个文件就可以了)我敢打赌它不起作用,那么' grep“eval”/ path/to ... oneFileOnly.php'?我敢打赌,它可能是'('char。grep“eval [(] base ...”....''?否则'grep“eval [\()base ...)''一旦这个工作正常,那么你可以去寻求更通用的解决方案并加回其他的参数。祝你好运。 – shellter

回答

2

当他们给grep参数递归搜索文件时,GNU人们搞砸了。忘记你曾经听说过的-r--include和重写你的脚本中使用find找到的文件和grep lobally搜索[R egular Ë上的表达和P RINT(g/re/p)从结果每个文件(查看工具名称中的巨大线索?)。例如:

find /path/to/webroot -name '*.php' -print0 | 
xargs -0 grep -l 'eval(base64_decode' 

如果仍然给你一个问题,那么在调试它是运行在它自己的find,看看它产生的文件列表步骤1。如果是这样,那么步骤2是在find输出的文件之一上单独运行grep。如果你无法从中发现,请告诉我们。