Linux VPS上自動備份文件并發送到Gmail (適用G級數據的備份)(轉)
一,安裝所需程序
yum install -y mutt vixie-cron
二,設置mutt發信參數
$ vim ~/.muttrc
寫入下面的內容
set envelope_from=yes
set from=bak@diavps.com
set realname="DiaBak"
set use_from=yes
然后設置要接收郵件的Gmail,把bak@diavps.com加入白名單。
三,設置腳本
注意這幾個目錄
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
這些目錄下的文件可以分別每小時,每天,每周,每月自動執行一次。
如果是把腳本程序放置在上面的目錄里,最好把權限設置為0700。
設置更復雜的執行條件可以使用crontab -e命令。詳情請百度。
以每天執行為例
$ vim /etc/cron.daily/diabsk.sh
寫入下面的內容
#!/bin/bash
# SETTING
TOEMAIL="bak@diavps.com";
COMMENT='blog database backup'
DIR='wordpress'
# END SETTING
TMP='/tmp/diabak/'${DIR}
ATTTMP='/tmp/diabakatt/'${DIR}
rm -rf $TMP
mkdir -p $TMP
cd $TMP
# Put files what you want to backup to $TMP
# Don't change anything below
YYYYMMDD=`date +%Y%m%d`
SUBJECT='DiaBak_of_'${DIR}'_'${YYYYMMDD};
rm -rf $ATTTMP
mkdir -p $ATTTMP
cd $ATTTMP
tar zcPf backup.tar.gz $TMP
rm -rf $TMP
split -b 20m -a 3 -d backup.tar.gz ${SUBJECT}.part
rm -f backup.tar.gz
for file in *
do
echo $COMMENT | mutt -a $file -s $SUBJECT $TOEMAIL
sleep 30s
done
rm -rf $ATTTMP
需要更改的內容已經加紅
TOEMAIL為接收郵件的郵箱地址。
TOEMAIL為注釋郵件,以郵件正文發送。
DIR為臨時目錄名,建議僅使用英文和數字。
# Put files what you want to backup to $TMP,這一行下面的命令根據需要自己補充,比如備份數據庫可以把SQL文件導出到$TMP目錄,備份文件可以復制文件到$TMP目錄。
四,導出數據庫的命令。
1.備份單個數據庫
mysqldump --user=user --password=password --lock-all-tables dbname > backup.sql
2.備份多個數據庫
mysqldump --user=user --password=password --lock-all-tables --databases dbname1 dbname2 > backup.sql
3.備份所有數據庫
mysqldump --user=user --password=password --lock-all-tables --all-databases > backup.sql
--lock-all-tables選項可以在備份期間鎖定數據庫防止出現變化,進而導致多個有關系的表不同步,比如A表需要引用B表,備份完A表后,B 表發生了變化,之后才備份了B表,這樣數據庫就亂了。
備份上百M的數據庫也只用了幾秒而已,所以這個選項對網站運行影響不大。
五,重新組合備份的文件
Linux下
$ cat DiaBak* > bak.tar.gz
windows下
copy DiaBak_of_testfile_20100421.part001/b+DiaBak_of_testfile_20100421.part002/b bak.tar.gz
注意分卷后面會有三位數字,cat命令會按這些數字的順序重新組合文件,所以數字不能亂。
copy命令同理,注意數字順序。
六,其他
測試了一個600多M的文件,以20M的大小分成了31個包,通過腳本發送,用時十幾分鐘,期間網速保持在5Mbps到10Mbps之間,本機還有足夠的 帶寬,這個應該是GMAIL的上限了。
有些郵件需要過一個多小時才在Gmail顯示出來。31個包全部收到。
如果哪位發現有比Gmail更適合備份的郵箱,期待與大家分享。
轉載自:http://www.hostloc.com/thread-15597-1-1.html
>>轉載請注明出處:VPS偵探 本文鏈接地址:http://www.0794baidu.com/security/vps-auto-bakup-send-by-gmail.html










@蘋果迷, 指定目錄下的所有文件
沒看出來,備份的是哪些文件?是不是腳本當前所在的目錄的所有文件?
那流量呢?一次備份還可以……一周一次就……
太淫蕩了,QQ的郵箱不是不限大小么,附件50M ?? ??
@納粹, 一般設置為凌晨訪問量少時執行,只要數據量不是太大,負載就沒問題。
這個強悍啊,就是不知道會加大VPS的負載到多少。