来自 shell 脚本和 cron 运行 脚本的不同邮件
Different mail from shell script and cron running the script
我有一个执行命令的 perl
脚本。我将此命令的输出保存到一个数组中,并检查输出中的内容以向我发送成功或失败消息。
当我 运行 脚本本身时,这工作正常。但是当我将脚本安排为 运行 作为 cronjob
时,无论输出如何,我都会收到一封失败邮件。
我在脚本中使用了所有 abs paths
并且知道 cron 正在执行,因为我在我的日志中看到 command is executed successfully
。
谁能告诉我为什么不一样?
需要注意的一件事是,该命令大约需要一分钟才能完成执行,并且脚本会等待命令执行以检查输出。所以当我 运行 脚本时,我看到邮件有一点延迟。但是在 cron 中,我会在 运行 时间立即收到一封邮件。我假设 cron 没有等待命令执行并检查输出。
难道是这样吗?
虽然 运行 来自 crontab,但您不能依赖任何环境变量、TTY 或路径。听起来您已经对路径进行了排序,但寄件人可能希望了解您的一些信息。在没有你的环境的情况下尝试 运行 你的脚本,以获得关于你的问题的有意义的消息:su {your_name} -c {你的脚本}
我有一个执行命令的 perl
脚本。我将此命令的输出保存到一个数组中,并检查输出中的内容以向我发送成功或失败消息。
当我 运行 脚本本身时,这工作正常。但是当我将脚本安排为 运行 作为 cronjob
时,无论输出如何,我都会收到一封失败邮件。
我在脚本中使用了所有 abs paths
并且知道 cron 正在执行,因为我在我的日志中看到 command is executed successfully
。
谁能告诉我为什么不一样?
需要注意的一件事是,该命令大约需要一分钟才能完成执行,并且脚本会等待命令执行以检查输出。所以当我 运行 脚本时,我看到邮件有一点延迟。但是在 cron 中,我会在 运行 时间立即收到一封邮件。我假设 cron 没有等待命令执行并检查输出。
难道是这样吗?
虽然 运行 来自 crontab,但您不能依赖任何环境变量、TTY 或路径。听起来您已经对路径进行了排序,但寄件人可能希望了解您的一些信息。在没有你的环境的情况下尝试 运行 你的脚本,以获得关于你的问题的有意义的消息:su {your_name} -c {你的脚本}