tail -f 适合实时跟踪日志新增内容,less +f 支持交互式浏览与实时刷新;前者专注动态追加,后者兼顾历史查阅、搜索定位与暂停监控,二者互补而非互斥。

Linux下实时监控日志,tail -f 是最常用也最直接的方式;而 less 则适合需要灵活翻阅、搜索和暂停查看的场景。两者不是互斥,而是互补——tail专注“动态追加”,less强在“交互浏览”。
用 tail -f 实时跟踪日志增长
tail -f 是监控运行中服务日志的首选命令,它会持续输出文件末尾新增内容,不退出、不阻塞,适合运维巡检或调试时盯屏观察。
-
基本用法:
tail -f /var/log/syslog或tail -f /var/log/nginx/access.log -
指定行数起始:加
-n 50可先显示最后50行再开始跟踪,例如:tail -n 50 -f /var/log/auth.log -
多文件同时监控:支持一次传入多个路径,如
tail -f /var/log/apache2/error.log /var/log/apache2/access.log,每行前自动标注文件名 - 退出方式:按 Ctrl+C 即可中断监听,返回 shell 提示符
用 less 查看并交互式监控日志
less 不仅能打开大日志文件不卡顿,还内置了实时刷新能力(类似 tail),特别适合想边看历史、边等新日志出现的场景。
-
进入实时模式:先用
less +F /var/log/kern.log启动,+F 表示“follow mode”,效果等同于 tail -f - 临时切换模式:已在 less 中打开日志后,按 F 键进入 follow 模式;按 Ctrl+C 退出 follow,恢复为普通浏览模式,此时可用 /关键词 搜索、g/G 跳首/尾、q 退出
-
高亮匹配项:启动时加
-R支持 ANSI 颜色,配合 grep 着色更直观,例如:grep --color=always "ERROR\|warn" /var/log/myapp.log | less -R
实用组合技巧与注意事项
单靠一个命令往往不够,结合管道、过滤和信号处理,才能应对真实运维需求。
-
过滤后再实时看:
tail -f /var/log/messages | grep --line-buffered "sshd",注意加--line-buffered避免输出延迟 -
监控压缩日志:tail 支持
-z参数读取 .gz 文件(需 GNU coreutils ≥8.24),如:tail -zf /var/log/syslog.1.gz -
避免权限问题:若提示 Permission denied,别直接 sudo tail,改用
sudo journalctl -u nginx.service -f(systemd 日志)或sudo less /var/log/secure -
防止终端刷屏过快:在 tmux 或 screen 中运行 tail,便于滚动回看;或用
tail -f -s 2降低刷新频率(每2秒检查一次)
何时选 tail,何时选 less?
判断依据很简单:只关心“接下来会发生什么”,就用 tail -f;如果还需随时查上下文、跳转定位、反复比对,less +F 更高效。
- 部署后验证服务是否正常启动 → 用
tail -f /var/log/myapp/app.log - 排查一个偶发报错,要翻前几天的日志对照 → 先
less /var/log/myapp/app.log.2.gz,再按 F 等新日志 - 写脚本自动提取最新错误 → 用
tail -n 100 /var/log/app.log | grep "Exception",而非交互式命令










