最近因為某政府單位的關係,希望我們製作每日的遠端記錄並寄 mail 給他們,每天要做重覆的事實在很無聊,剛好日前在上 RHCE 課程時教到 Mail Server,於是就突發其想,利用 Linux 的 Mail Server 定時每天幫我寄送記錄郵件,至於記錄要每天做怎麼辨呢?反正設備大部份都是正常的狀態,只要先製作好一個月份,Mail Server 就可以定時抓取當天的記錄幫我寄送。
在講解之前,要先說明一下實際使用的環境,
OS:RedHat 9
Mail-Server:Sendmail-8.12.8-4
Mila-Client:mutt-1.4-10
WebMail:Openwebmail-2.51
附件:所要寄送的記錄為jpeg的圖檔,檔案格式為 YYYYMMDD.jpeg、YYYYMMDD.JPG。
OS:RedHat 9
Mail-Server:Sendmail-8.12.8-4
Mila-Client:mutt-1.4-10
WebMail:Openwebmail-2.51
附件:所要寄送的記錄為jpeg的圖檔,檔案格式為 YYYYMMDD.jpeg、YYYYMMDD.JPG。
由於此台主機已安裝 openwebmail ,所以我計劃利用 openwebmail 的網路硬碟,將一個月份的記錄圖檔一次上傳到Mail Server的網路硬碟,再利用 at 或 cron 配合 mutt 的指令幫我抓取當天的記錄檔案,並幫我寄送給對方mail。
一、首先先將一個月份的記錄圖檔 YYYYMMDD.jpeg 利用OpenWebMail上傳到網路硬碟的 /knms 目錄下。
二、接下來就先在 Mail Server 主機上用 mutt 指令測試是否可以將 mail 夾當天的附件 YYYYMMDD.jpeg ,寄送出去。
1. 先使用 su 指令切換一般使用者身份。
# su - gavin
1. 先使用 su 指令切換一般使用者身份。
# su - gavin
2. 輸入 mutt 指令及參數,測試郵件寄送。
mutt 格式為:mutt -a 附檔 -s 主旨 -b 密件副本收件人 -c 副本收件人 第一位收件人,第二位收件人
$ mutt -a /home/gavin/webdisk/knms/`date +%Y%m%d`.* -s 遠端記錄`date +%Y%m%d` -b alex@mail.xxxxx.net -c eric@mail.xxxxx.net gavin@mail.xxxxx.net,ida@mail.xxxxx.net
mutt 格式為:mutt -a 附檔 -s 主旨 -b 密件副本收件人 -c 副本收件人 第一位收件人,第二位收件人
$ mutt -a /home/gavin/webdisk/knms/`date +%Y%m%d`.* -s 遠端記錄`date +%Y%m%d` -b alex@mail.xxxxx.net -c eric@mail.xxxxx.net gavin@mail.xxxxx.net,ida@mail.xxxxx.net
mutt 參數
-a:夾附檔案
-s:信件主旨
-b:密件副本
-c:副本
date 參數
%Y:顯示年份
%m:顯示月份
%d:顯示日期
bash 參數
` `:此符號為數字鍵 1 旁的 ~ 鍵,在` `中的指令優先執行,並將結果套用目前指令。
-a:夾附檔案
-s:信件主旨
-b:密件副本
-c:副本
date 參數
%Y:顯示年份
%m:顯示月份
%d:顯示日期
bash 參數
` `:此符號為數字鍵 1 旁的 ~ 鍵,在` `中的指令優先執行,並將結果套用目前指令。
三、接下來要配合 at 或 cron 指令
1. at 指令:此指令只執行一次,Ex:在下午4:30寄送記錄郵件。
$ at 16:30
at> mutt -a /home/gavin/webdisk/knms/`date +%Y%m%d`.* -s 遠端記錄`date +%Y%m%d` -b alex@mail.xxxxx.net -c eric@mail.xxxxx.net gavin@mail.xxxxx.net,ida@mail.xxxxx.net at> [ 按Ctrl + D結束]
1. at 指令:此指令只執行一次,Ex:在下午4:30寄送記錄郵件。
$ at 16:30
at> mutt -a /home/gavin/webdisk/knms/`date +%Y%m%d`.* -s 遠端記錄`date +%Y%m%d` -b alex@mail.xxxxx.net -c eric@mail.xxxxx.net gavin@mail.xxxxx.net,ida@mail.xxxxx.net at> [ 按Ctrl + D結束]
2. cron 指令:可定義每天的時程,Ex:星期一~五下午4:30寄送記錄郵件。
$ crontab -e
30 16 * * 1-5 mutt -a /home/gavin/webdisk/knms/`date +%Y%m%d`.* -s 遠端記錄`date +%Y%m%d` -b alex@mail.xxxxx.net -c eric@mail.xxxxx.net gavin@mail.xxxxx.net,ida@mail.xxxxx.net :wq <-存檔並離開
$ crontab -e
30 16 * * 1-5 mutt -a /home/gavin/webdisk/knms/`date +%Y%m%d`.* -s 遠端記錄`date +%Y%m%d` -b alex@mail.xxxxx.net -c eric@mail.xxxxx.net gavin@mail.xxxxx.net,ida@mail.xxxxx.net :wq <-存檔並離開
四、補充
若在測試 mutt 指令時,出現下列訊息
sh: line 1: gettext: command not found
這是因為主機沒有安裝 gettext 的套件,可到 http://rpmfind.net 尋找相關rpm套件,安裝後應該就不會再出現這樣的訊息了。
若在測試 mutt 指令時,出現下列訊息
sh: line 1: gettext: command not found
這是因為主機沒有安裝 gettext 的套件,可到 http://rpmfind.net 尋找相關rpm套件,安裝後應該就不會再出現這樣的訊息了。
沒有留言:
張貼留言