1. 程式人生 > >Linux下的motion detection(最簡單的辦公室監控系統) 郵件自動傳送

Linux下的motion detection(最簡單的辦公室監控系統) 郵件自動傳送

每天需要多次備份檔案,所做操作比較機械化,所以就想在shell下自動幫我備份檔案,開始想使用mail命令但是mail命令發郵件需要開啟sendmail服務,我只是一臺客戶端,開個sendmail沒有必要,於是乎,在網上找了好久,才發現mutt是個好東西。

在ubuntu下安裝mutt很方便,只需要sudo apt-get install mutt,另外需要安裝msmtp,一個發郵件的小工具,sudo apt-get insall msmtp。這兩個檔案都很小,一下子就裝完了。

接下來是配置檔案,也很簡單,這裡我引用網上別人的配置和命令列。另外在檔案的最後,附上一個指令碼檔案,是通過傳送電子郵件自動備份。

=====================================引用================================

MUTT

系統全域性設定/etc/Muttrc,如果使用某個系統使用者,可以在~/.muttrc中設定。

vi /etc/Muttrc

set sendmail="/usr/bin/msmtp"

set use_from=yes

set realname="FengYuBin"

set envelope_from=yes

MSMTP

建立~/.msmtprc和~/.msmtp.log,分別為配置和日誌檔案。

vi .msmtprc

account default

host smtp.163.com

auth plain

user fyb

password 123456

logfile ~/.msmtp.log

由於password是明碼,所以我們需要修改此檔案的許可權。

chmod 600 .msmtprc

touch ~/.msmtp.log

檢視SMTP伺服器是否支援認證的TLS加密:

[[email protected] ~]$ msmtp --host=smtp.163.com --serverinfo

SMTP server at smtp.163.com (m5-86.163.com [202.108.5.86]), port 25:

    163.com Anti-spam GT for Coremail System (163com[20050206])

Capabilities:

    PIPELINING:

        Support for command grouping for faster transmission

    AUTH:

        Supported authentication methods:

        PLAIN LOGIN

到這裡,你可以使用mutt來發送郵件了,我們測試一下。

echo "test" |mutt -s "my_first_test" [email protected]

-s "subject"

-c "carbon-copy"

echo "test" |mutt -a dbms_stats.txt -s my_first_test [email protected]

echo -e "文字描述,可以帶引數$allname" | mutt -a "附件(寫好路徑)" -a "附件2(寫好路徑)"   [email protected],[email protected](收信人) -c [email protected],[email protected] (抄送)

觀察.msmtp.log檔案,如果有錯會在日誌檔案中被報告出來,當然,成功傳送的日誌也會出現在此日誌檔案內。

到這裡傳送郵件的過程已經全部完成,接下來要做的事就簡單了,我們假設每天凌晨定時傳送信件給公司某使用者,可以編寫指令碼處理。

mail.sh

#!/bin/sh

content="you can tell your colleague what something to do at tomorrow"

echo "$content" |mutt -s "hi Jacky" Jacky's_email

OK,上面這些就是我實現自動傳送郵件的全部過程,怎麼樣,很輕鬆吧!

=================================下面是我指令碼檔案=======================

#!/bin/bash

cd

fileName=bak\($(date +%Y%m%d%H%M)\).zip #產生檔名

zip $fileName -r fw2 #將需要備份的目錄fw2打包

sleep 1 #睡眠一秒,讓zip打包完成的檔案寫入硬碟

echo "Sending mail..."

#呼叫mutt傳送檔案

echo "firewall code src backup" | mutt -s "$fileName" [email protected] -a "$fileName"

echo "Sent OK"