我正在使用支持多种语言的 sos 作业调度程序。我接受 shell 脚本来编写作业,但我不是 shell 脚本编写器。我想在作业调度程序中实现以下几点:
- 执行一个shell脚本A。如果时间在上午6:00到下午3点之间,脚本A返回“成功”。否则它返回“失败”。
- 在“成功”时执行 shell 脚本 C 或在“失败”时执行 shell 脚本 B。
- 脚本 B 和脚本 C 发送主题行中带有“成功”或“失败”的电子邮件。
请帮我解决上述讨论问题。
谢谢
我正在使用支持多种语言的 sos 作业调度程序。我接受 shell 脚本来编写作业,但我不是 shell 脚本编写器。我想在作业调度程序中实现以下几点:
请帮我解决上述讨论问题。
谢谢
在这种情况下,有两个命令行实用程序很有帮助:
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
#!/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"