CRON任务未捕获脚本修改:添加set -x后调试日志未输出问题咨询
问题原因
set -x产生的调试信息默认输出到标准错误流(stderr),你当前配置的CRON任务仅重定向了*标准输出流(stdout)*到/var/log/cron/snapshots文件,stderr的内容没有被捕获,因此调试日志全部丢失。- 你日志中看到的
Not the leader. Skipping snapshot.是echo命令输出的stdout内容,所以可以正常写入日志。
修复方法
修改CRON任务的重定向规则,将stderr合并到stdout中一起写入日志即可,修改后的CRON配置如下:
*/5 * * * * /vault/configure_snapshots.sh > /var/log/cron/snapshots 2>&1
补充说明:上述配置中
2>&1的作用是把文件描述符2(对应stderr)的输出重定向到文件描述符1(对应stdout)指向的文件路径。如果需要保留每次任务的历史日志,避免新运行的日志覆盖旧日志,可以把单个>替换为>>。
内容的提问来源于stack exchange,提问作者WorkoutBuddy
相关产品推荐
相关产品推荐

