咨詢電(diàn)話(huà):023-88959644    24小(xiǎo)時(shí)服務熱線:400-023-8809
NEWS CENTER ·
新聞動态
關注中技(jì)互聯 關注前沿

Linux服務器(qì)備份:VPS備份腳本

發表日期:2011-01-20    文章編輯:王東    浏覽次數(shù):10    标簽:

從VPS偵探建站(zhàn)之初就一直在重申一定要備份好自己的數(shù)據,因為(wèi)太多(duō)的不确定性可(kě)能會(huì)造成數(shù)據庫丢失,而且大(dà)部分VPS服務商也不可(kě)能提供每天備份數(shù)據。

從VPS偵探建站(zhàn)之初就一直在重申一定要備份好自己的數(shù)據,因為(wèi)太多(duō)的不确定性可(kě)能會(huì)造成數(shù)據庫丢失,而且大(dà)部分VPS服務商也不可(kě)能提供每天備份數(shù)據。

原來(lái)VPS偵探提供過一個(gè)VPS備份方法,隻是略微說了一下,可(kě)能部分新手會(huì)不太好入手。今天VPS偵探分享一個(gè)自己的備份腳本。

準備工作(zuò):

需要提前在VPS安裝好lftp,lftp功能上(shàng)比較強大(dà),CentOS直接執行(xíng):yum install lftp,Debian執行(xíng):apt-get install lftp 。

需要在VPS上(shàng)創建/home/backup/ 目錄,在FTP上(shàng)創建backup目錄。

如果VPS上(shàng)數(shù)據庫不多(duō)的話(huà)使用Godaddy的免費空(kōng)間(jiān)就可(kě)以(10GB空(kōng)間(jiān),300GB流量),隻要注冊個(gè)域名就免費送。

下面将備份腳本進行(xíng)部分注釋:

#!/bin/bash
#Funciont: Backup website and mysql database
#Author: licess
#Website: http://lnmp.org
#IMPORTANT!!!Please Setting the following Values!
######~Set Directory you want to backup~######将下面的目錄修改成自己要備份的目錄,一般按我的都是在/home/wwwroot/下面所有(yǒu)直接寫了需要備份的目錄。可(kě)以繼續再加:Backup_Dir5=你(nǐ)的目錄 ,Backup_Dir後面的數(shù)字依次遞增。如果不足4個(gè),直接删除不需要的就可(kě)以,同時(shí)修改下面tar zcf 部分。

Backup_Dir1=vpser.net
Backup_Dir2=lnmp.org
Backup_Dir3=licess.org
Backup_Dir4=jungehost.com

######~Set MySQL UserName and password~######設置MySQL的用戶名和(hé)密碼,最好是root,其他用戶可(kě)能因為(wèi)權限問題無法導出部分數(shù)據庫。
MYSQL_UserName=root
MYSQL_PassWord=yourmysqlrootpassword

######~Set MySQL Database you want to backup~######設置要部分的數(shù)據庫,可(kě)以繼續再加:Backup_Database_Name5=數(shù)據庫名,Backup_Database_Name後面的數(shù)字依次遞增。
Backup_Database_Name1=vpser
Backup_Database_Name2=licess
Backup_Database_Name3=junge
Backup_Database_Name4=vpserorg

######~Set FTP Information~######設置用來(lái)存放備份數(shù)據的FTP信息
FTP_HostName=184.168.192.43   //FTP服務器(qì)的IP或者域名
FTP_UserName=vpsernet                //FTP服務器(qì)用戶名
FTP_PassWord=yourftppassword   //FTP服務器(qì)用戶對應的密碼
FTP_BackupDir=backup                    //備份到FTP上(shàng)的目錄,需要提前創建好。

#Values Setting END!

TodayWWWBackup=www-*-$(date +"%Y%m%d").tar.gz
TodayDBBackup=db-*-$(date +"%Y%m%d").sql
OldWWWBackup=www-*-$(date -d -3day +"%Y%m%d").tar.gz
OldDBBackup=db-*-$(date -d -3day +"%Y%m%d").sql

tar zcf /home/backup/www-$Backup_Dir1-$(date +"%Y%m%d").tar.gz -C /home/wwwroot/ $Backup_Dir1 --exclude=soft
tar zcf /home/backup/www-$Backup_Dir2-$(date +"%Y%m%d").tar.gz -C /home/wwwroot/ $Backup_Dir2
tar zcf /home/backup/www-$Backup_Dir3-$(date +"%Y%m%d").tar.gz -C /home/wwwroot/ $Backup_Dir3 --exclude=test
tar zcf /home/backup/www-$Backup_Dir4-$(date +"%Y%m%d").tar.gz -C /home/wwwroot/ $Backup_Dir4

###上(shàng)面為(wèi)備份網站(zhàn)文件數(shù)據,因為(wèi)我的網站(zhàn)比較零散,而且網站(zhàn)目錄下面有(yǒu)些(xiē)目錄屬于臨時(shí)目錄并不需要備份,所以可(kě)以在上(shàng)面加上(shàng)--exclude=不備份的目錄。如果在前面加了Backup_Dir5=yourdir,則再加tar zcf /home/backup/www-$Backup_Dir5-$(date +"%Y%m%d").tar.gz -C
/home/wwwroot/ $Backup_Dir5 。如果多(duō)餘則删除多(duō)餘行(xíng)。

/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name1 > /home/backup/db-$Backup_Database_Name1-$(date +"%Y%m%d").sql
/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name2 > /home/backup/db-$Backup_Database_Name2-$(date +"%Y%m%d").sql
/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name3 > /home/backup/db-$Backup_Database_Name3-$(date +"%Y%m%d").sql
/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name4 > /home/backup/db-$Backup_Database_Name4-$(date +"%Y%m%d").sql

###上(shàng)面為(wèi)備份MySQL數(shù)據庫,如果在前面加了Backup_Database_Name5=yourdatabasename,則再加/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name5 > /home/backup/db-$Backup_Database_Name5-$(date +"%Y%m%d").sql 。如果多(duō)餘則删除多(duō)餘行(xíng)。

rm $OldWWWBackup
rm $OldDBBackup
###删除3天前的備份###

cd /home/backup/

###下面為(wèi)自動上(shàng)傳部分,不得(de)不說lftp很(hěn)強大(dà),抛棄ftp吧(ba)####
lftp $FTP_HostName -u $FTP_UserName,$FTP_PassWord << EOF
cd $FTP_BackupDir
mrm $OldWWWBackup
mrm $OldDBBackup
mput $TodayWWWBackup
mput $TodayDBBackup
bye
EOF
 


腳本下載地址:http://soft.vpser.net/lnmp/backup.sh

下載腳本,将腳本放到/root/ 下面,按上(shàng)面的注釋修改腳本中的參數(shù),并保存,如果不熟悉vi或者nano編輯器(qì),可(kě)以用winscp,執行(xíng):crontab -e

在crontab中加入:0 3 * * * /root/backup.sh

淩晨3點自動執行(xíng)/root/bakcup.sh 腳本,備份vps上(shàng)的數(shù)據并上(shàng)傳到FTP上(shàng)。

如果在使用過程中有(yǒu)任何問題請(qǐng)直接留言,或到VPS論壇發貼。
 

如沒特殊注明(míng),文章均為(wèi)中技(jì)互聯原創,轉載請(qǐng)注明(míng)來(lái)自www.zjcoo.com
相關新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429号

  • qq客服
  • 公衆号
  • 手機版
  • 新浪微博