Linux VPS/服務(wù)器 網(wǎng)站及數(shù)據(jù)庫自動本地備份并FTP上傳備份腳本
更新時間:2012年05月11日 23:07:13 作者:
Linux VPS/服務(wù)器 網(wǎng)站及數(shù)據(jù)庫自動本地備份并FTP上傳備份腳本的操作時怎樣進行的?如今備份已經(jīng)成為一種非常重要的操作技術(shù),掌握好數(shù)據(jù)庫備份,對大家以后的工作會很有幫助
準備工作:
需要提前在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流量),只要注冊個域名就免費送。
下面將備份腳本進行部分注釋:
#!/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)限問題無法導出部分數(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)出來,對于初學者可能比較難理解,一看到就懵啦,還是認真學習就一定能夠有收獲,希望上文中講到的內(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流量),只要注冊個域名就免費送。
下面將備份腳本進行部分注釋:
復制代碼 代碼如下:
#!/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)限問題無法導出部分數(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)出來,對于初學者可能比較難理解,一看到就懵啦,還是認真學習就一定能夠有收獲,希望上文中講到的內(nèi)容對大家能夠有所幫助。
相關(guān)文章
判斷Unix系統(tǒng)及庫文件是32位還是64位的詳解
這篇文章主要介紹了判斷Unix系統(tǒng)及庫文件是32位還是64位的的相關(guān)資料,這里整理下查看系統(tǒng)位數(shù)的命令,需要的朋友可以參考下2016-11-11
Linux下查看進程打開的文件句柄數(shù)和如何修改方法
下面小編就為大家?guī)硪黄狶inux下查看進程打開的文件句柄數(shù)和如何修改方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
使用nginx來負載均衡 本文在window與linux下配置nginx實現(xiàn)負載
使用nginx來負載均衡,本文在window與linux下配置nginx實現(xiàn)負載2010-03-03
詳解linux為阿里云ECS(CentOS7)配置IPv6地址
這篇文章主要介紹了詳解linux為阿里云ECS(CentOS7)配置IPv6地址,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
一文詳解Linux三種網(wǎng)絡(luò)設(shè)置方式
我們在使用虛擬機搭建linux系統(tǒng)后,常常需要設(shè)置系統(tǒng)網(wǎng)絡(luò)連接,以方便系統(tǒng)進行上網(wǎng)或其他系統(tǒng)連接系統(tǒng)進行操作,在linux中網(wǎng)絡(luò)連接分了三類:橋接模式,僅主機模式,NAT模式,本文我們將對這三種模式進行講解,感興趣的同學可以參考閱讀2023-06-06

