Linux VPS/服務(wù)器 網(wǎng)站及數(shù)據(jù)庫自動本地備份并FTP上傳備份腳本
更新時間:2012年05月11日 23:07:13 作者:
Linux VPS/服務(wù)器 網(wǎng)站及數(shù)據(jù)庫自動本地備份并FTP上傳備份腳本的操作時怎樣進(jìn)行的?如今備份已經(jīng)成為一種非常重要的操作技術(shù),掌握好數(shù)據(jù)庫備份,對大家以后的工作會很有幫助
準(zhǔn)備工作:
需要提前在VPS安裝好lftp,lftp功能上比較強大,CentOS直接執(zhí)行:yum install lftp,Debian執(zhí)行:apt-get install lftp 。
需要在VPS上創(chuàng)建/home/backup/ 目錄,在FTP上創(chuàng)建backup目錄。
如果VPS上數(shù)據(jù)庫不多的話使用Godaddy的免費空間就可以(10GB空間,300GB流量),只要注冊個域名就免費送。
下面將備份腳本進(jìn)行部分注釋:
#!/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/下面所有直接寫了需要備份的目錄??梢岳^續(xù)再加:Backup_Dir5=你的目錄 ,Backup_Dir后面的數(shù)字依次遞增。如果不足4個,直接刪除不需要的就可以,同時修改下面tar zcf 部分。
Backup_Dir1=vpser.net
Backup_Dir2=lnmp.org
Backup_Dir3=licess.org
Backup_Dir4=jungehost.com
######~Set MySQL UserName and password~######設(shè)置MySQL的用戶名和密碼,最好是root,其他用戶可能因為權(quán)限問題無法導(dǎo)出部分?jǐn)?shù)據(jù)庫。
MYSQL_UserName=root
MYSQL_PassWord=yourmysqlrootpassword
######~Set MySQL Database you want to backup~######設(shè)置要部分的數(shù)據(jù)庫,可以繼續(xù)再加:Backup_Database_Name5=數(shù)據(jù)庫名,Backup_Database_Name后面的數(shù)字依次遞增。
Backup_Database_Name1=vpser
Backup_Database_Name2=licess
Backup_Database_Name3=junge
Backup_Database_Name4=vpserorg
######~Set FTP Information~######設(shè)置用來存放備份數(shù)據(jù)的FTP信息
FTP_HostName=184.168.192.43 //FTP服務(wù)器的IP或者域名
FTP_UserName=vpsernet //FTP服務(wù)器用戶名
FTP_PassWord=yourftppassword //FTP服務(wù)器用戶對應(yīng)的密碼
FTP_BackupDir=backup //備份到FTP上的目錄,需要提前創(chuà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
###上面為備份網(wǎng)站文件數(shù)據(jù),因為我的網(wǎng)站比較零散,而且網(wǎng)站目錄下面有些目錄屬于臨時目錄并不需要備份,所以可以在上面加上--exclude=不備份的目錄。如果在前面加了Backup_Dir5=yourdir,則再加tar zcf /home/backup/www-$Backup_Dir5-$(date +"%Y%m%d").tar.gz -C
/home/wwwroot/ $Backup_Dir5 。如果多余則刪除多余行。
/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
###上面為備份MySQL數(shù)據(jù)庫,如果在前面加了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 。如果多余則刪除多余行。
rm $OldWWWBackup
rm $OldDBBackup
###刪除3天前的備份###
cd /home/backup/
###下面為自動上傳部分,不得不說lftp很強大,拋棄ftp吧####
lftp $FTP_HostName -u $FTP_UserName,$FTP_PassWord << EOF
cd $FTP_BackupDir
mrm $OldWWWBackup
mrm $OldDBBackup
mput $TodayWWWBackup
mput $TodayDBBackup
bye
EOF
上文大部分都是以代碼的形式表現(xiàn)出來,對于初學(xué)者可能比較難理解,一看到就懵啦,還是認(rèn)真學(xué)習(xí)就一定能夠有收獲,希望上文中講到的內(nèi)容對大家能夠有所幫助。
需要提前在VPS安裝好lftp,lftp功能上比較強大,CentOS直接執(zhí)行:yum install lftp,Debian執(zhí)行:apt-get install lftp 。
需要在VPS上創(chuàng)建/home/backup/ 目錄,在FTP上創(chuàng)建backup目錄。
如果VPS上數(shù)據(jù)庫不多的話使用Godaddy的免費空間就可以(10GB空間,300GB流量),只要注冊個域名就免費送。
下面將備份腳本進(jìn)行部分注釋:
復(fù)制代碼 代碼如下:
#!/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/下面所有直接寫了需要備份的目錄??梢岳^續(xù)再加:Backup_Dir5=你的目錄 ,Backup_Dir后面的數(shù)字依次遞增。如果不足4個,直接刪除不需要的就可以,同時修改下面tar zcf 部分。
Backup_Dir1=vpser.net
Backup_Dir2=lnmp.org
Backup_Dir3=licess.org
Backup_Dir4=jungehost.com
######~Set MySQL UserName and password~######設(shè)置MySQL的用戶名和密碼,最好是root,其他用戶可能因為權(quán)限問題無法導(dǎo)出部分?jǐn)?shù)據(jù)庫。
MYSQL_UserName=root
MYSQL_PassWord=yourmysqlrootpassword
######~Set MySQL Database you want to backup~######設(shè)置要部分的數(shù)據(jù)庫,可以繼續(xù)再加:Backup_Database_Name5=數(shù)據(jù)庫名,Backup_Database_Name后面的數(shù)字依次遞增。
Backup_Database_Name1=vpser
Backup_Database_Name2=licess
Backup_Database_Name3=junge
Backup_Database_Name4=vpserorg
######~Set FTP Information~######設(shè)置用來存放備份數(shù)據(jù)的FTP信息
FTP_HostName=184.168.192.43 //FTP服務(wù)器的IP或者域名
FTP_UserName=vpsernet //FTP服務(wù)器用戶名
FTP_PassWord=yourftppassword //FTP服務(wù)器用戶對應(yīng)的密碼
FTP_BackupDir=backup //備份到FTP上的目錄,需要提前創(chuà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
###上面為備份網(wǎng)站文件數(shù)據(jù),因為我的網(wǎng)站比較零散,而且網(wǎng)站目錄下面有些目錄屬于臨時目錄并不需要備份,所以可以在上面加上--exclude=不備份的目錄。如果在前面加了Backup_Dir5=yourdir,則再加tar zcf /home/backup/www-$Backup_Dir5-$(date +"%Y%m%d").tar.gz -C
/home/wwwroot/ $Backup_Dir5 。如果多余則刪除多余行。
/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
###上面為備份MySQL數(shù)據(jù)庫,如果在前面加了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 。如果多余則刪除多余行。
rm $OldWWWBackup
rm $OldDBBackup
###刪除3天前的備份###
cd /home/backup/
###下面為自動上傳部分,不得不說lftp很強大,拋棄ftp吧####
lftp $FTP_HostName -u $FTP_UserName,$FTP_PassWord << EOF
cd $FTP_BackupDir
mrm $OldWWWBackup
mrm $OldDBBackup
mput $TodayWWWBackup
mput $TodayDBBackup
bye
EOF
上文大部分都是以代碼的形式表現(xiàn)出來,對于初學(xué)者可能比較難理解,一看到就懵啦,還是認(rèn)真學(xué)習(xí)就一定能夠有收獲,希望上文中講到的內(nèi)容對大家能夠有所幫助。
相關(guān)文章
windows下安裝PEAR php5.3.1下解決出錯的方法
在配置好了Apache2.2.14和PHP5.3.1后,最近想安裝PEAR(PHP Extension and Application Repository),但是在執(zhí)行批處理文件go-pear.bat的時候出現(xiàn)了錯誤2010-02-02解決linux環(huán)境下時區(qū)無法設(shè)置的問題
在本篇文章里小編給大家整理的是關(guān)于解決linux環(huán)境下時區(qū)無法設(shè)置的問題的方法,需要的朋友們學(xué)習(xí)下。2020-01-01Linux系統(tǒng)下操作Apache最基本的啟動停止和重啟命令
這篇文章主要介紹了Linux系統(tǒng)下操作Apache最基本的啟動停止和重啟命令,是網(wǎng)站搭建入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-07-07linux中使用boost.python調(diào)用c++動態(tài)庫的方法
這篇文章主要給大家介紹了關(guān)于linux中使用boost.python調(diào)用c++動態(tài)庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2018-11-11