1

我正在使用支持多种语言的 sos 作业调度程序。我接受 shell 脚本来编写作业,但我不是 shell 脚本编写器。我想在作业调度程序中实现以下几点:

  1. 执行一个shell脚本A。如果时间在上午6:00到下午3点之间,脚本A返回“成功”。否则它返回“失败”。
  2. 在“成功”时执行 shell 脚本 C 或在“失败”时执行 shell 脚本 B。
  3. 脚本 B 和脚本 C 发送主题行中带有“成功”或“失败”的电子邮件。

请帮我解决上述讨论问题。

谢谢

4

2 回答 2

1

在这种情况下,有两个命令行实用程序很有帮助:

  • date:以指定格式显示当前时间/日期。
  • mail:从命令行发送电子邮件。

因为我们的逻辑只需要整小时,所以我使用日期格式“+%H”(0-23 小时)。这提供了以下脚本基础:

#!/bin/sh
hour=$(date +%H)
if [ $hour -gt 6 -a $hour -lt 15 ]; then
    echo "message body" | mail -s Success <your e-mail address>
else
    echo "message body" | mail -s Failure <your e-mail address>
fi
于 2010-08-19T15:01:19.117 回答
0
#!/bin/bash

hour=$(date +%H)
recipient="root"
case "$hour" in
  [6-9]|1[0-5]) 
    subject="success"
    body="message"
     ;;
  *)
    subject="failure"
    body="message"
     ;;
esac
echo $body | mailx -s "$subject" "$recipient"
于 2010-08-20T04:16:28.883 回答