如何排查 Cron 任务执行成功但未传输文件的问题

我曾经遇到过一个每晚运行的导出任务,它在 cron 中显示成功,但发送到供应商 SFTP 的文件夹却是空的。服务账号没有配置错误邮件提醒,所以直到供应商询问为什么缺少报告时,支持团队才发现问题。起初看起来像是 SFTP 的问题,但实际上文件在本地根本没有创建。脚本返回了零值,因为 SQL 客户端吞掉了权限警告,并写入了一个空的结果集。 我按照任务实际运行的顺序进行了检查:cron 环境、工作目录、数据库凭据、输出路径、文件大小、校验和,最后是上传。直接在我的 shell 中运行会产生误导,因为我的 PATH 和权限与 cron 不同。我添加了 set -euo pipefail,先将导出内容写入临时文件,并设置上传步骤拒绝低于最小字节数的文件。警报从"任务完成"变更为"文件过小",这最终指向了 SQL 权限问题。 我还修改了成功消息。它不再显示"导出完成",而是显示"已将 48,212…

相关公开内容

  1. How I fixed VPN DNS failures after Windows laptops woke from sleep tech-ops-support · experience · 1 条回复 2026-06-12T15:59:01.185Z
  2. Proxy PAC File Timeouts Were Behind Our Random SaaS Outage on Managed Laptops tech-ops-support · experience · 3 条回复 2026-07-22T17:10:36.440Z
  3. 服务器时间不同步导致登录失败怎么排查:一次 NTP 漂移处理记录 tech-ops-support · experience · 3 条回复 2026-07-07T18:55:39.324Z
  4. Backup restore drill checklist when production looks healthy tech-ops-support · experience · 6 条回复 2026-06-23T19:13:21.965Z
  5. 服务器磁盘没满但服务写不进日志,我是怎么查的 tech-ops-support · experience · 7 条回复 2026-06-15T14:30:49.527Z
  6. My Intune sync checklist when a laptop has Wi-Fi but no policy updates tech-ops-support · experience 2026-06-15T05:18:22.395Z
  7. Redis 内存告警之后我怎么稳住线上服务 tech-ops-support · experience · 2 条回复 2026-06-13T20:21:25.083Z
  8. Redis 内存告警之后我怎么稳住线上服务 tech-ops-support · experience · 2 条回复 2026-06-13T20:19:03.089Z
  9. Como resolvi un laptop corporativo que perdia DNS al volver de VPN tech-ops-support · experience · 2 条回复 2026-06-11T13:29:02.550Z
  10. Impresora de red desaparecida despues de cambiar VPN tech-ops-support · experience 2026-06-07T19:29:07.739Z