【发布时间】:2015-08-24 08:07:58
【问题描述】:
我有一个 shell 脚本每分钟检查一次端口状态。如果端口状态为关闭,则会发送电子邮件。但这将每分钟发送一次电子邮件,直到端口再次启动。但我想在发送第一封邮件 30 分钟后发送电子邮件。我怎样才能做到这一点?我从 shell 脚本调用 PHP 文件来发送邮件。
nc -v -z -w 10 192.168.50.34 5038;
output=$?
# echo $output
php=`which php`
dt=`date`;
$php send_ast_status.php $output $dt
if [ $output == "0" ];
then
# echo 'asterisk is running'
/etc/init.d/asterisk 'stop'
else
# echo 'asterisk not running'
/etc/init.d/asterisk 'start'
fi
【问题讨论】:
-
将上次电子邮件发送时间存储在数据库中/存档?
-
您需要将上次检查的状态保存在某处,数据库或简单文件中。只有有了这些信息,您才能确定是否发生了变化。
-
例如使用 sendmail 文件将时间戳放入其中,然后检查它
-
显示你的脚本有帮助,edit你的问题..你尝试了什么,代码的哪一部分不起作用?
-
nc -v -z -w 10 192.168.50.34 5038;输出=$? # echo $output php=
which phpdt=date; $php send_ast_status.php $output $dt if [ $output == "0" ]; then # echo 'asterisk is running' /etc/init.d/asterisk 'stop' else # echo 'asterisk not running' /etc/init.d/asterisk 'start' fi