蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 网络通讯


    

蓝森林 http://www.lslnet.com 2006年7月28日 12:08


[zt]sendmail 下對所有寄出與寄進的信件存檔備份

sendmail 下對所有寄出與寄進的信件存檔備份
http://main.rtfiber.com.tw/~changyj/linuxtips/html/sendmail_backup_RH80.html
--------------------------------------------------------
[size=18][color=red](RedHat 8.0)[/color][/size]
以下示範所用的版本為 sendmail-8.12.X。
步驟如下
安裝【開發工具】這一類的套件
請執行 redhat-config-packages 或從 GNOME/KDE 左下角的面版拉出 『系統設定』,再選擇『套件』。
安裝套件
sendmail-cf, sendmail-doc, 以及 sendmail-devel。
製作負責備份的程式
此處所用的程式取自 /usr/share/doc/sendmail/README.libmilter 的最後 一段,存檔為 filter.c (或任何你喜歡的名字)。 這裡所附的 filter.c
http://main.rtfiber.com.tw/~changyj/linuxtips/filter.c
只有一點點不同: 筆者把存放備份郵件的位置從 /tmp 改至 /var/spool/mail.backup。 把 filter.c 放在某個工作目錄內,執行 [code]gcc -o filter filter.c -lmilter -lsm -pthread[/code]
即可產生可執行檔『filter』。再執行
[code]chmod u=rwx,go= filter
cp filter /usr/sbin[/code]
把它複製到 /usr/sbin 下。
修改 /etc/mail/sendmail.mc
在檔案結尾加入
[code]INPUT_MAIL_FILTER(`sample',`S=local:/var/run/filter.sock')dnl[/code]
在 /etc/mail 下執行 m4 sendmail.mc >; sendmail.cf。
先將 /etc/init.d/sendmail 備份,再修改該檔:
先找到以下這一段,
[code]start() {
        # Start daemons.

        echo -n $"Starting $prog: "[/code]
在其後加上
[code]rm -f /var/run/filter.sock
/usr/sbin/filter -p local:/var/run/filter.sock &
echo $! >; /var/run/filter.pid
sleep 3
chmod go-rwx /var/run/filter.sock[/code]
再先找到以下這一段, [code]stop() {
       # Stop daemons.
       :  :    :
       [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail[/code]
在其後加上 [code]       [ -f /var/run/filter.pid ] && {
        kill -KILL `cat /var/run/filter.pid`
        rm -f /var/run/filter.sock
       }[/code]
執行[code]mkdir /var/spool/mail.bakcup
chmod u=rwx,go= /var/spool/mail.backup[/code]
以建立 /var/spool/mail.backup 這個目錄。
執行 service sendmail restart 重新啟動 sendmail。
============================================
sendmail 下對所有寄出與寄進的信件存檔備份
http://main.rtfiber.com.tw/~changyj/linuxtips/html/sendmail_backup_RH72.html
--------------------------------------------------------
[size=18][color=red](RedHat 7.2) [/color][/size]
以下示範所用的版本為 sendmail-8.11.6。
步驟如下
產生負責備份的程式
當然你也可以取用筆者編譯好的程式檔filter,
http://main.rtfiber.com.tw/~changyj/linuxtips/html/filter
將其置於 /usr/sbin 下。
如果你的系統上已經安裝好了 gcc 等相關套件(安裝 Linux 時已選擇了 Kernel 或 Software Developement 時會自動安裝),也可以把 milter.tbz2
http://main.rtfiber.com.tw/~changyj/linuxtips/html/milter.tbz2
取回, 在你所習慣的工作目錄下解開,執行 make install 即會把 filter 程式檔安裝在 /usr/sbin 下。
有關 milter.tgz 的說明:
取自於 sendmail 的原始程式碼套件。
filter.c 取自於 原始程式碼套件中 libmilter/README 檔所附的範例。 唯原範例把信件備份於 /tmp,筆者修改路徑為 /var/spool/mail.backup。
修改 /etc/mail/sendmail.mc,(在檔尾)加入
[code]define(`_FFR_MILTER')dnl
INPUT_MAIL_FILTER(`sample',`S=local:/var/run/filter.sock')dnl
[/code]
在 /etc/mail 下執行 m4 sendmail.mc >; /etc/sendmail.cf。
先將 /etc/init.d/sendmail 備份,再修改該檔,
(如果你用的是 Red Hat 7.2,可以直接取回 這個檔案):
http://main.rtfiber.com.tw/~changyj/linuxtips/html/sendmail
先找到以下這一段,
[code]start() {
        # Start daemons.

        echo -n $"Starting $prog: "[/code]
在其後加上 [code]rm -f /var/run/filter.sock
/usr/sbin/filter -p local:/var/run/filter.sock &
echo $! >; /var/run/filter.pid
sleep 3
chmod go-rwx /var/run/filter.sock[/code]
再先找到以下這一段, [code]stop() {
       # Stop daemons.
       echo -n $"Shutting down $prog: "
       killproc sendmail
       RETVAL=$?
       echo
       [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail[/code]
在其後加上 [code]       [ -f /var/run/filter.pid ] && {
        kill -KILL `cat /var/run/filter.pid`
        rm -f /var/run/filter.sock
       }[/code]
執行[code]mkdir /var/spool/mail.bakcup
chmod u=rwx,go= /var/spool/mail.backup[/code]
以建立 /var/spool/mail.backup 這個目錄。
執行 service sendmail restart 重新啟動 sendmail。



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com