菜鸟科技网

Linux服务器日志查看常用命令有哪些?

Linux服务器日志查看命令是系统管理和故障排查中不可或缺的工具,通过合理使用这些命令,可以快速定位问题、监控系统状态并确保服务稳定运行,Linux系统的日志通常存储在/var/log目录下,不同类型的日志会根据服务或功能分类存放,如系统日志、应用日志、安全日志等,以下将详细介绍常用的日志查看命令,包括其基本用法、高级技巧及适用场景。

Linux服务器日志查看常用命令有哪些?-图1
(图片来源网络,侵删)

基础日志查看命令

  1. cat命令
    cat是最基础的文本查看命令,适用于小日志文件的快速浏览,查看系统启动日志:

    cat /var/log/boot.log

    优点是输出完整,但大文件会导致终端卡顿,需谨慎使用。

  2. less命令
    less是交互式查看工具,支持分页、上下滚动和关键词搜索,适合大文件。

    less /var/log/syslog

    操作中按可搜索关键词,按q退出,相比moreless功能更强大,支持前后翻页。

    Linux服务器日志查看常用命令有哪些?-图2
    (图片来源网络,侵删)
  3. more命令
    moreless类似,但仅支持向前翻页,无法回退,适合简单查看:

    more /var/log/auth.log

    按空格键翻页,按q退出。

实时监控日志命令

  1. tail命令
    tail用于查看文件末尾内容,实时监控日志时最常用,实时查看系统日志的最后10行:

    tail -f /var/log/syslog

    -n参数可指定行数,如tail -n 50 /var/log/nginx/access.log查看最后50行。-F参数会自动检测日志轮转(如日志被重命名),适合长期监控。

    Linux服务器日志查看常用命令有哪些?-图3
    (图片来源网络,侵删)
  2. head命令
    head查看文件开头内容,例如查看日志的前20行:

    head -n 20 /var/log/kern.log

    常用于快速定位日志起始时间或错误信息。

过滤与搜索命令

  1. grep命令
    grep用于搜索包含关键词的行,结合正则表达式功能强大,搜索nginx错误日志中的404错误:

    grep "404" /var/log/nginx/error.log

    -i忽略大小写,-v反选不包含关键词的行,-c统计匹配行数,结合tail实时过滤:

    tail -f /var/log/syslog | grep "ERROR"
  2. awk命令
    awk擅长按列处理日志,例如提取/var/log/auth.log中的用户名和登录IP:

    awk '{print $1, $3, $9, $11}' /var/log/auth.log

    可通过-F指定分隔符(默认空格),适合结构化日志分析。

  3. sed命令
    sed用于流编辑,如替换或删除特定行,删除日志中的空行:

    sed '/^$/d' /var/log/app.log

    结合-i参数可直接修改文件,慎用。

日志轮转与归档处理

Linux系统通常使用logrotate管理日志轮转,归档日志可能带有.gz等后缀,需用zcatzless查看压缩日志:

zcat /var/log/syslog.1.gz | grep "warning"

或使用gunzip解压后查看:

gunzip -c /var/log/syslog.1.gz > syslog_uncompressed && less syslog_uncompressed

系统专用日志查看

  1. journalctl(Systemd系统)
    journalctl是Systemd的日志管理工具,功能全面。

    • 查看内核日志:journalctl -k
    • 查看系统服务日志:journalctl -u nginx
    • 实时监控:journalctl -f
    • 按时间过滤:journalctl --since "2023-10-01" --until "2023-10-02"
  2. dmesg
    专门查看内核环缓冲区日志,如硬件错误信息:

    dmesg | grep -i "error"

常用日志文件及用途

日志文件路径 用途说明
/var/log/syslog 系统日志,记录内核和服务消息
/var/log/auth.log 认证日志,记录登录和权限变更
/var/log/kern.log 内核日志,硬件驱动和系统错误
/var/log/nginx/ Nginx访问和错误日志
/var/log/mysql/ MySQL数据库日志
/var/log/cron.log 定时任务执行日志

高级技巧与组合使用

  1. 管道组合
    通过管道将多个命令结合,实现复杂分析,统计/var/log/apache2/access.log中各IP的访问次数:

    awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr
  2. 日志切割与归档
    使用split命令大文件分割:

    split -l 1000 /var/log/big.log part_
  3. 日志轮转配置
    编辑/etc/logrotate.conf自定义轮转规则,如按大小或时间分割日志。

相关问答FAQs

问题1:如何实时监控多个日志文件?
解答:可以使用multitail工具,同时监控多个日志文件,安装后执行:

multitail /var/log/syslog /var/log/nginx/error.log

若无multitail,可通过tail -f结合&后台运行多个进程,或使用tmux分屏管理。

问题2:日志文件过大导致查看缓慢,如何高效处理?
解答

  • 使用grepawk过滤关键词,缩小范围:
    grep "exception" /var/log/app.log | head -n 100
  • 借助wc -l先统计行数,判断文件大小:
    wc -l /var/log/huge.log
  • 若需分析,可导出部分内容到临时文件:
    sed -n '1000,2000p' /var/log/huge.log > temp.log && less temp.log
  • 长期建议配置日志轮转,避免单个文件过大。
分享:
扫描分享到社交APP
上一篇
下一篇