2016-08-14 61 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。如果你無法從中發現,請告訴我們。