You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux系统中shell程序的日志文件存储位置在哪里?

Linux Shell脚本中断问题日志排查路径

1. 系统默认日志查询路径

  • 若脚本通过systemd服务托管运行,直接使用journalctl命令过滤日志:
    查指定服务全量日志:journalctl -u 你的服务名.service
    实时打印最新日志:journalctl -u 你的服务名.service -f
    按时间范围过滤:journalctl --since "2 hour ago" | grep 脚本名称关键字
  • 系统通用日志:CentOS/RHEL系优先查/var/log/messages,Debian/Ubuntu系优先查/var/log/syslog,系统级报错(如权限不足、依赖缺失、进程被强制终止)都会记录在此,可直接用grep过滤:grep "你的脚本名.sh" /var/log/syslog
  • 若脚本是cron定时任务触发,优先查/var/log/cron日志,里面会记录任务触发时间、执行用户、执行错误信息。

2. 自定义运行日志排查

默认Shell不会主动将脚本的标准输出、错误输出写入系统日志,若你未做日志配置,建议运行时增加重定向逻辑留存日志:

  • 后台运行脚本时直接重定向所有输出到指定日志文件:
    nohup /path/to/你的脚本.sh >> /var/log/自定义脚本日志.log 2>&1 &
    上述命令会同时留存普通输出和报错信息,终端断开也不会影响脚本运行。
  • 可在脚本开头添加调试参数,方便定位中断的具体代码行:
    新增set -x会逐行打印执行的命令和参数,新增set -e会在任意命令执行失败时直接退出脚本,配合日志重定向可以快速定位中断位置。

3. 异常退出状态快速判断

脚本中断后,可立即执行echo $?打印上一次进程的退出状态码,快速判断错误类型:

  • 状态码126:脚本无执行权限
  • 状态码127:脚本内调用的命令不存在(依赖缺失或环境变量未加载)
  • 状态码130:脚本被用户手动通过Ctrl+C中断
  • 状态码137:系统内存不足,脚本进程被OOM Killer强制终止

内容的提问来源于stack exchange,提问作者Ethan Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:57:04