您现在的位置是:焦点 >>正文

实时查看日志命令

焦点4173人已围观

简介 实时查看日志命令 凌晨三点,服务器报警,网站挂了。你ssh上去,第一件事就是翻日志。这时候你用的不是tail就是less,但很多人连tail -f和tail -F的区别都没搞明白。 tail -f是 ...

实时查看日志命令

凌晨三点,日志服务器报警,命令网站挂了。日志你ssh上去,命令第一件事就是日志翻日志。这时候你用的命令不是tail就是less,但很多人连tail -f和tail -F的日志区别都没搞明白。

tail -f是命令跟随文件描述符,tail -F是日志跟随文件名。区别在轮转场景。命令日志切了,日志旧文件被rename,命令新文件顶上来。日志-f还在看旧文件,命令-F自动切到新文件。日志生产环境一律用-F,别给自己挖坑。

真正要实时看,我推荐multitail,一个终端里分屏跟多个日志。比如同时看nginx的access和error,还有后端应用的日志。上下分屏,颜色高亮,正则过滤。装一下不亏,比开三个终端窗口强太多。

但multitail有个毛病,内存占用偏高,服务器负载高的时候别用。这时候回到基本功,tail -F直接跟。想要过滤,管道接grep。grep --line-buffered参数别忘了,否则输出会攒一批才打印,实时性就没了。

还有个大坑——日志文件被清空,比如logrotate的copytruncate模式。文件还是那个文件,但内容没了。tail会继续等新内容,看起来像卡住了。这时候按Ctrl+C重新tail一下,或者用less +F模式。less +F是tail -f的加强版,按Ctrl+C切到普通less浏览,按F再切回跟随模式,翻历史日志和实时看能无缝切换。

我见过不少运维老手,日志一多就慌了。其实有个土办法,写个一行脚本循环刷新。watch -n 1 "tail -n 20 /var/log/app.log"。watch每秒执行一次,tail取最后20行,效果等同实时刷新,而且可读性好。

如果日志量巨大,每秒几百MB那种,tail直接扛不住。这时候用journalctl,systemd的日志系统。journalctl -u my-service -f,按服务名过滤,-f实时跟随。它还支持时间戳过滤,journalctl --since "10 min ago" --until "5 min ago",查问题的时候特别顺手。

最后说个冷门的。日志里全是乱码,编码不对,怎么看?tail管道接iconv转码。tail -F file | iconv -f gbk -t utf8。中日韩系统上这招救命,别在日志编码上浪费半小时。

工具就这些,关键还是习惯。实时看日志不是盯着屏幕等,而是带着问题去看。先想清楚你要找什么,再用对命令。tail -F打底,grep过滤,journalctl查服务,multitail做对比。够用了。

凌晨的告警不会等你熟悉命令。平时把这几招练熟,真出事的时候,手比脑子快,日志一翻,问题定位,那个爽快感比喝红牛提神。

Tags:

相关文章

  • 渗透电视剧全集免费版

    焦点

    《渗透电视剧全集免费版》这个标题,在搜索引擎里能带出几十个盗版站点。点进去,满屏的赌博广告弹窗,视频画质糊得像蒙了层油,声音和口型偶尔对不上。但奇怪的是,弹幕区永远热闹——有人刷“第38集许忠义这波反 ...

    【焦点】

    阅读更多
  • 十个无聊的网站

    焦点

    我花了三个下午,把互联网犄角旮旯里的“无聊”翻了个底朝天。结果发现,真正无聊到令人上瘾的网站,往往比那些标榜“有趣”的玩意儿更耐人寻味。它们像数字世界的禅修室,什么也不提供,反而让你获得某种奇异的平静 ...

    【焦点】

    阅读更多
  • 真我gt exp

    焦点

    真我GT Exp,这名字起得挺怪。Exp是体验Experience)的缩写,还是实验品Experiment)的简称?没人说得清。但拿在手里的那刻,我忽然懂了——它俩都是。 骁龙8 Gen 2满血版,L ...

    【焦点】

    阅读更多


友情链接