Bash脚本在添加新数据时发送通知

时间:2014-07-11 01:42:34

标签: database bash shell db2

我需要使用bash脚本来监控用户表,并向包含新创建的用户名的销售团队发送通知电子邮件。

我是脚本新手,对如何做到这一点有点了解。

感谢任何帮助或指示。

3 个答案:

答案 0 :(得分:3)

您将问题标记为DB2,在RDBS中您可以创建通过电子邮件发送消息的触发器。在这种情况下你不需要bash。

假设您有一个名为users的表,每次插入新行时,都会发送一封电子邮件。

CREATE or replace trigger t1
  after insert on users
  REFERENCING NEW AS N
  FOR EACH ROW
BEGIN
  DECLARE v_sender VARCHAR(30);
  DECLARE v_recipients VARCHAR(60);
  DECLARE v_subj VARCHAR(20);
  DECLARE v_msg VARCHAR(200);

  SET v_sender = 'kkent@mycorp.com';
  SET v_recipients = 'bwayne@mycorp.com,pparker@mycorp.com';
  SET v_subj = 'New user';
  SET v_msg = 'There is a new user: ' || n.username;
  CALL UTL_MAIL.SEND(v_sender, v_recipients, NULL, NULL, v_subj, v_msg);
END@

您必须使用SMTP服务器和其他参数配置DB2:http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.apdv.sqlpl.doc/doc/r0055176.html

答案 1 :(得分:1)

可能是您可以使用inotify工具来检测文件修改并使用mail工具在您的脚本中发送邮件,至于如何使用该命令,请参考具体的文档。

答案 2 :(得分:1)

要发送电子邮件,您可以使用gmail + mutt。只需按照this教程了解如何配置mutt

配置mutt后,您可以使用如下命令从脚本发送电子邮件:

echo "$BODY" | mutt -s "$SUBJECT" $EMAIL_ADDRESS

一个例子是:

echo "User Bob has been added." | mutt -s "New User" example@example.com

您还可以考虑使用prowl向IOS设备发送推送通知。可以从bash脚本执行的Prowl has a perl script。这将提供近乎即时的通知。 Prowl还可以优先处理通知。