温馨提示×

怎样用linux strings查日志

小樊
43
2026-09-11 09:50:49
栏目: 智能运维

在 Linux 里,strings 命令主要用来从二进制文件或数据中抽取可打印字符串。它并不是专门“查日志”的工具,但在某些场景下很有用,比如:

  • 日志被写进了二进制文件(如 core 文件、数据库文件、归档文件)
  • 日志被打包/压缩后想快速看看里面有没有关键字
  • 程序崩溃后从二进制里翻出日志或路径信息

下面按常见用法说。


一、基本用法

strings 文件名

例如:

strings app.log

如果 app.log 是纯文本日志,其实用 cat / less 更合适;strings 主要用于非纯文本


二、从二进制日志/文件中查关键字(最常用)

strings app.bin | grep ERROR

或者:

strings core.12345 | grep "timeout"

这在排查 core dump、服务崩溃、嵌入式日志 时很常见。


三、指定最小字符串长度

默认 strings 只显示长度 ≥ 4 的字符串,可用 -n 调整:

strings -n 6 app.bin

适合过滤掉大量无意义短字符。


四、结合时间戳或行号

显示偏移地址(方便定位)

strings -a -t x app.bin

或十进制:

strings -a -t d app.bin

配合 grep 显示行号

strings app.bin | grep -n "failed"

五、查压缩/归档里的日志

例如:

strings access.log.gz | grep 404

或:

strings system.tar | grep "user login"

(不需要先解压)


六、从内存/进程里查日志(高级)

strings /proc/<pid>/mem | grep "log"

或:

cat /proc/<pid>/maps

(通常用于调试,需要权限)


七、常见错误用法提醒

❌ 用 strings 查普通文本日志
✅ 直接用:

less app.log
grep "ERROR" app.log
tail -f app.log

strings 不适合实时日志监控


八、典型实战例子

从 core 文件里找报错信息

strings core.8888 | grep -i "segmentation"

从二进制程序里找日志格式

strings myserver | grep "%s"

从未知文件中确认是不是日志

strings unknown.file | head

如果你能说一下:

  • 日志是什么文件(.log / .bin / core / 压缩包)
  • 想查什么内容(错误、用户、时间)

我可以给你更精确的命令。

0