歡迎您光臨本站 註冊首頁

分享mail伺服器的數據備份腳本

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

 分享mail伺服器的數據備份腳本

  功能:備份指定目錄的文件並用tar.bz2壓縮,先備份到本地,然後自動上傳到指定的ftp伺服器,備份日誌email到指定的郵箱
 
 借鑒了網上查找的一些範例,現在記不起來是什麼地方,在此謝謝
 
 # cat maildata_backup_ftp
 #!/bin/sh
 #Postfix mail server autobackup shell
 #Writed by ruochen0926@hotmail.com QQ:967409
 
 #Env
 sourcedir=/opt/maildata/
 backupdir=/home/mail-backup/
 fileprefix=maildata
 newfile=$fileprefix-`date +%F`.tar.bz2
 logfile=/tmp/mail_backup.log
 logtmp=/tmp/mail_backup.tmp
 
 #Ftp 0 is disable,1 is enable
 copytoftp=1
 ftpserver=10.1.1.8
 ftpuser=admin
 ftppasswd=admin
 
 #mail 0 is diable,1 is enable
 mailenable=1
 mailaddress=ruochen0926@hotmail.com
 
 #mail backup keep days
 keepdays=16
 #Backup script
 echo "Start====================================>">$logfile
 echo "Beginning Backup `date '+%F %T'`">>$logfile
  if [ -f $backupdir$newfile ]
    then
      echo "$newfile backup exist, backup stop ..." >>$logfile
    else
      tar -cjf  $backupdir$newfile $sourcedir
      echo "$backupdir$newfile Backup Success!" >>$logfile
      echo "End Backup `date '+%F %T'`">>$logfile
  fi
 
 echo "Delete $keepdays days ago files ..." >>$logfile
 find $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {} \;
 echo "Deleted Backup file is :">>$logfile
 cat $logtmp >>$logfile
 echo "Delete old file Success!" >>$logfile
 
 
 if [ $copytoftp = 1 ];  then
         if [ -z $ftpserver ];then
         echo "Ftp Server not set,Copy to Ftp Failed ..." >>$logfile
         exit 1
         elif [ -z $ftpuser ];then
         echo "Ftp user not set, Copy to Ftp Failed ..." >>$logfile
         exit 2
         elif [ -z $ftppasswd ]; then
         echo "Ftp password not set, Copy to Ftp Failed ..." >>$logfile
         exit 3
         else
         echo "Start copy to Ftp server ...." >> $logfile
 ftp -n<<eof
open $ftpserver
 user $ftpuser $ftppasswd
 bin
 cd mail_backup
 cd maildata
 lcd $backupdir
 mput $newfile
 y
 bye
 eof
 fi
 fi
 echo "$newfile Upload Ftp Successful">>$logfile
 echo "End=======================================|">>$logfile
 
 
 if [ $mailenable=1 ];
     then
       mail -s "Mail Server Data Backup Status" $mailaddress<$logfile
 fi



[火星人 ] 分享mail伺服器的數據備份腳本已經有353次圍觀

http://coctec.com/docs/service/show-post-26094.html