【问题标题】:KSH script won't email when nohupnohup 时 KSH 脚本不会发送电子邮件
【发布时间】:2013-05-04 12:54:12
【问题描述】:

我有一个独特的问题,我在一个 unix 环境中,并且有一个 ksh 脚本,它可以 ssh 到多个站点,执行一些代码,然后返回一个响应,然后将该响应通过电子邮件发送到一个电子邮件地址。

当我运行该脚本时,它运行良好,但由于它必须运行几个小时,所以我希望 nohup 脚本。

这就是问题所在。当我 nohup 脚本时,不会发送电子邮件。我搜索了董事会寻找原因或解决方案无济于事。如果有人能指出我正确的方向,我将不胜感激。

这是脚本的邮件部分:

mail -s "subject"  email@address.com  < /usr/etc/bin/mydir/infofile.out &&
rm -f infofile.out
exit;

编辑:我的环境是 AIX 6.1.7.1

【问题讨论】:

  • 可以在 cron 或 at 下运行脚本吗?否则,为您的操作系统添加标签,mail --version 会产生任何有用的信息吗?祝你好运。
  • 它不能通过cron运行,因为它需要一个输入参数,at命令也无法发送电子邮件,并且mail --version是一个无效的命令。
  • 01 00-23 * * /path/to/myMailScript.ksh &lt; /path/to/params.txt 之类的东西不起作用(例如,每小时运行 1 次 cmd)?哦.... AIX,好吧,所有关于 nohup 等行为的赌注都没有了!非 AIX 用户将很难复制这个问题(我认为)。你在脚本的某处有类似read $var 的东西吗?而且我会使用 shell 调试/跟踪set -vx 来确认你的脚本挂在哪里的确切细节。祝你好运。
  • 我会尝试使用更简单的脚本。编写一个只休眠 10 秒(sleep 10)然后调用 mail 的脚本。看看你是否可以在 nohup 时让它工作。

标签: email ksh aix nohup


【解决方案1】:

终于找到答案了,即使你是笨蛋,我觉得无论如何我都有责任回答,以防万一其他人遇到这个问题。

结果当我 nohup 我的脚本时,它确实正确发送了电子邮件。只是通过 nohuping 和注销它会强制从 unix 邮件实用程序的默认电子邮件地址发送电子邮件,并且在我的环境中,该地址会发出数百个无用的警报,其中大部分我已在 Outlook 中过滤到垃圾箱文件夹,我发送的电子邮件最终在那个垃圾文件夹中。

感谢回复的人,尤其是 shellter,您对使用 shell 调试的建议让我知道它是从该默认邮件帐户发送的。

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    相关资源
    最近更新 更多