Linux批量查找文件内容
比如查找当前目录下面所有的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=’