linux批量查找文件内容

admin2012-06-13linux64

比如查找当前目录下面所有的php文件里面的内容

#find ./ -name "*.php" | xargs grep '要查找的内容'


如果需要查找的内容包含特殊符号,比如$等等,grep要加参数

find ./ -name "*.php" | xargs grep -F '要查找的内容'  

find ./ -mtime 0:返回最近24小时内修改过的文件。 find ./ -mtime 1 : 返回的是前48~24小时修改过的文件。而不是48小时以内修改过的文件。 那怎么返回10天内修改过的文件?find还可以支持表达式关系运算,所以可以把最近几天的数据一天天的加起来:

find ./ -mtime 0 -o -mtime 1 -o -mtime 2 

……虽然比较土,但也算是个方法了。 还有没有更好的方法,我也想知道。 

一句话查找PHP木马

# find ./ -name "*.php" |xargs egrep "phpspy|c99sh|milw0rm|eval\(gunerpress|eval\(base64_decoolcode|spider_bc"> /tmp/mumaphp.txt 
# grep -r --include=*.php '[^a-z]eval($_POST' . > /tmp/eval.txt 
# grep -r --include=*.php 'file_put_contents(.*$_POST\[.*\]);' . > /tmp/file_put_contents.txt 
# find ./ -name "*.php" -type f -print0 | xargs -0 egrep "(phpspy|c99sh|milw0rm|eval\(gzuncompress\(base64_decoolcode|eval\(base64_decoolcode|spider_bc|gzinflate)" | awk -F: '{print $1}' | sort | uniq


查找最近一天被修改的PHP文件

# find -mtime -1 -type f -name \*.php


修改网站的权限

# find -type f -name \*.php -exec chmod 444 {} \;
# find ./ -type d -exec chmod 555{} \;


查找加密:

#find ./ -name "*.php" | xargs grep -ril 'eval(gzinflate(base64_decode' >/tmp/phpudpjiami.txt


查找php udp

#find ./ -name "*.php" | xargs grep -ril 'udp://' >/tmp/phpudp.txt


查找php tcp

#find ./ -name "*.php" | xargs grep -ril 'tcp://' >/tmp/phpudp.txt


从日志中查找

#find /home/httpd/ -name “*log*” | xargs grep -ril ‘port=’



参考文章 http://xloli.net/html/201301/thread-3066-1-1.html