個人心情和 Linux / FreeBSD 等技術

2008/02/12

利用mpack寄送附件

最近想利用Gmail的大空間進行異地備份資料庫

查詢了一下以 mpack 最為方便

我用到的 mpack option 有
mpack [ -s subject ] [ -m maxsize ] [ -c content-type ] file address ...
-s :後面接信件的標題
-m:後面接正整數位元組 ,意思是檔案超過這個大小後會自動的分割成符合
   大小的附件,但指定 0 值則為不限制大小的意思
-c:後面接 MIME type,(man page中寫到不指定此選項的話mpack會
  自動檢驗並決定其MIME type)
file:是檔案的位置
address:指定E-mail位置


以下是學校的 Shell Script 備份
#!/bin/bash
#######Written By Rellik 2008-02-12##############
########環境設定#################################
#################################################
TODAY=`date +%Y%m%d`
BACKUP_PATH='/home/backup'
BACKUP_EMAIL='your@gmail.com' (改成自己的mail空間)
###############################################
####利用mysqldump備份############################
###############################################
cd $BACKUP_PATH
/usr/bin/mysqldump -h localhost --user=root --password=******** xoops2 > "$BACKUP_PATH"/"$TODAY".xoops2.sql (password被我隱藏)
/bin/tar -zcvf "$TODAY".xoops2.sql.tar.gz "$TODAY".xoops2.sql
################################################
######寄送到Gmail###############################
################################################
if test -s "$BACKUP_PATH"/"$TODAY".xoops2.sql.tar.gz
then
/usr/bin/mpack -s "BackupXoops2Mysql `date +%Y-%m-%d_%H:%M`" -m 10000000 $BACKUP_PATH/$TODAY.xoops2.sql.tar.gz "$BACKUP_EMAIL"
fi
################################################
#####刪除原始SQL檔##############################
################################################
if test -s "$BACKUP_PATH"/"$TODAY.xoops2.sql"
then
/bin/rm -rf "$BACKUP_PATH"/"$TODAY.xoops2.sql"
fi


寫好後注意權限直接丟到系統crontable跑即可

後續測試
1.壓縮 dump出來的 sql檔案,真的差蠻多的!沒壓縮前3873240位元組(約3.xMB)
 壓縮後 880244 (8xxKB)差了四倍之多,建議壓縮節省頻寬

2.mpack -c選項,基本上不指定送出到Gmail的時間也不會差很多,
所以個人就不指定了 。

沒有留言: