Linux下備份數(shù)據(jù)庫和網(wǎng)站目錄上傳到ftp
終于搞定了,難為我這個菜鳥了 事實證明,在hostloc還是學到不少的東西 http://www./?p=707 自從開通了GD那10G的空間,,就開始著手研究備份數(shù)據(jù)庫和網(wǎng)站目錄了,,完美解決,。之所以不用tar.gz來壓縮網(wǎng)站目錄,,是因為用這個東西,,壓一次,,就發(fā)一次郵件到root,,幾天就占了好多,一努之下,,用了zip,,卻發(fā)現(xiàn)不發(fā)郵件了,。
用上了vps,經(jīng)過多方查找,,終于搞定了適合于自已的vps備份方案,。以下方案在lnmp0.4(http://www./?p=481)環(huán)境中測試成功。
我們可以把網(wǎng)站目錄和數(shù)據(jù)庫備份到ftp空間去,,腳本如下
#! /bin/bash cd /home/www/ /usr/local/mysql/bin/mysqldump --databases db1 db2 db3 -uroot -ppass |gzip > mysql.tar zip -q -r webname.zip web1 web2 ftp -vn x.x.x.x << autoftp user name pass type binary put mysql.tar mysql.tar put webname.zip webname.zip close quit autoftp
把以上腳本保存為backup.sh,,權限755,放在home目錄下面
然后
crontab -e
輸入
12 05 * * * /home/backup.sh
意思就是早晨5點12分備份數(shù)據(jù)庫和網(wǎng)站目錄
*******************************************************
#!/bin/bash #Remote FTP Server ftpUid="linzh" ftpPasswd="myFtpPasswd" ftpServer="linzh.stu.edu.cn" ftpPort=21
orgDir="/html" tmpDir="/tmp" ext=".tar.gz" backFile=`date +%Y-%m-%d`
FILE=$backFile$ext echo $tmpDir$FILE tar -czvf $tmpDir$FILE $orgDir echo "Finish tar step...Start FTP BACKUP" cd $tmpDir ftp -i -in <<! open $ftpServer $ftpPort user $ftpUid $ftpPasswd cd / mput $FILE bye rm -f $FILE
***************************************
Linux下自動備份文件夾并實現(xiàn)ftp自動上傳
2009年02月20日 星期五 03:42 P.M.
比如先選擇一個目錄存儲你的備份腳本 /var/backup/
1.備份一個目錄
#!/bin/sh cd /root/bakup htdocsname='ct10000_'`date +%y%m%d%H%M`'.tar.gz' tar cvzf $htdocsname /usr/local/mysql/data/ct10000/* exit
//注意,,一定要加exit,不然退不出這個腳本,,執(zhí)行不了下一個
2.上傳目錄下的tar.gz文件
cd /root/bakup ftp -nv 61.164.*.*<<EOF user 用戶名 密碼 type binary cd /var/lib/ prompt
mput 001.tar.gz mput 002.tar.gz mput 003.tar.gz
quit EOF
同時加入這兩個腳本的權限
chmod 755 bakup.sh
chmod 755 ftp.sh
3.加入crontab計劃任務
vi /etc/crodtab
在最后一行中加入:(一般原來是空的) 0 8 * * * sh /root/bakup/bakup.sh 3 8 * * * sh /root/bakup/ftp.sh
意思是每天的8點和18點備份文件,同時隔3分鐘后上傳
4.重啟crond
#/etc/rc.d/init.d/crond restart
5.設置crond在每次系統(tǒng)啟動時都自動運行 #chkconfig crond on 完成
|
|