2017-01-02 118 views
-1

我正在寫一個劇本的工作對我們的Debian服務器(Debian 3.2.68-1+deb7u5 x86_64 GNU/Linux),這將監控我們有一個特定的端口,當沒有進程在該端口上運行,或者運行該端口可用,那麼我將不得不發送一封電子郵件。我打算每15分鐘運行一次腳本,然後發送一封電子郵件。擊:配置電子郵件提供商的bash腳本

我們有一個郵件服務器,我想補充它在腳本配置,但我不知道我怎麼能做到這一點。

在Java的時候,我使用的配置以這種方式:

Properties props = new Properties(); 
props.put("mail.smtp.starttls.enable", "true"); 
props.put("mail.smtp.auth", "true"); 
props.put("mail.smtp.host", "EMAIL-HOST-NAME"); 
props.put("mail.smtp.starttls.enable", "true"); 
props.put("mail.smtp.port", "PORT-PROVIDED"); 

目前,我有如下腳本,腳本任何建議也歡迎。謝謝。

#!/bin/bash 

server=0.0.0.0 // localhost 
port=PORT-NUMBER 

    if nc $server $port &> /dev/null; then 
     // do nothing 
    else 
     // send email 
    fi 

謝謝。

+0

你想PORT-NUMBER'的'輸出存儲在'port'?如果是的話應該是'口= $ {PORT-NUMBER}' – Inian

+0

@ Inian:我會添加這個改變,不會像1234這樣的硬編碼值直接工作嗎? –

+0

'port = 1234'應該也可以! – Inian

回答

2

兩個mailxsendmail可以從CLI發送完整電子郵件;大多數系統都具有預安裝功能。

例以 'mailx的':

echo "This is the message body and contains the message" | mailx -v \ 
-r "[email protected]" \ 
-s "This is the subject" \ 
-S smtp="mail.example.com:587" \ 
-S smtp-use-starttls \ 
-S smtp-auth=login \ 
-S smtp-auth-user="[email protected]" \ 
-S smtp-auth-password="abc123" \ 
-S ssl-verify=ignore \ 
[email protected] 
+0

這工作。非常感謝。 :-) –

相關問題