2014-07-11 43 views
0

我需要使用bash腳本來監視用戶表並向包含新創建的用戶名的銷售團隊發送通知電子郵件。添加新數據時發送通知的Bash腳本

我不熟悉腳本,對於如何做到這一點有一點點想法。

感謝任何幫助或指示。

+0

我建議您閱讀[Bash入門指南](http://www.tldp.org/LDP/Bash-Beginners-Guide/html)和[高級Bash腳本指南](http:// www .tldp.org/LDP/ABS/HTML /)。並且總是參考[Bash手冊](http://www.gnu.org/software/bash/manual/bashref.html)/('man bash')。 'help'和'help '也是朋友。您可以稍後發佈您的腳本,當您發現任務已經太困難了。 – konsolebox

回答

1

可能是您可以使用inotify工具來檢測文件修改並使用mail工具來發送郵件中的腳本,至於如何使用該命令,請參閱具體文檔。

+0

+1。 'inotify'可能是它的基本答案。 – konsolebox

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 = '[email protected]'; 
    SET v_recipients = '[email protected],[email protected]'; 
    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); 
[email protected] 

你必須與你的SMTP服務器和其它參數配置DB2:http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.apdv.sqlpl.doc/doc/r0055176.html

+0

你能提供關於這方面的更多信息嗎?任何示例或鏈接,將不勝感激 – ComeRun

+0

我做了一些搜索,但仍然不知道如何使用觸發器發送電子郵件 – ComeRun

+1

讓我們假設一個「新用戶」意味着表中的新行(我用示例更新了答案)。如果您想監視「具有授權連接到數據庫的新用戶」的創建,則無法從DB2那裏執行此操作,而是檢查您的身份驗證系統(/ etc/passwd或LDAP) – AngocA

1

要發送,你可以用gmail + mutt的電子郵件。只需按照this教程查看如何配置mutt

一旦狗被配置,你可以從腳本中使用如下命令一個發送電子郵件:

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

一個例子是:

echo "User Bob has been added." | mutt -s "New User" [email protected] 

你也可以考慮使用prowl送將通知推送到IOS設備。 Prowl has a perl script可以從你的bash腳本執行。這將提供接近即時通知。 Prowl還可以優先處理通知。