您好,登錄后才能下訂單哦!
本篇內容主要講解“Linux網站及數據庫自動本地備份并FTP上傳怎么實現”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux網站及數據庫自動本地備份并FTP上傳怎么實現”吧!
準備工作:
需要提前在vps安裝好lftp,lftp功能上比較強大,centos直接執行:yum install lftp,debian執行:apt-get install lftp 。
需要在vps上創建/home/backup/ 目錄,在ftp上創建backup目錄。
如果vps上數據庫不多的話使用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/下面所有直接寫了需要備份的目錄。可以繼續再加:backup_dir5=你的目錄 ,backup_dir后面的數字依次遞增。如果不足4個,直接刪除不需要的就可以,同時修改下面tar zcf 部分。
backup_dir1=vpser.net
backup_dir2=lnmp.org
backup_dir3=licess.org
backup_dir4=jungehost.com
######~set mysql username and password~######設置mysql的用戶名和密碼,最好是root,其他用戶可能因為權限問題無法導出部分數據庫。
mysql_username=root
mysql_password=yourmysqlrootpassword
######~set mysql database you want to backup~######設置要部分的數據庫,可以繼續再加:backup_database_name5=數據庫名,backup_database_name后面的數字依次遞增。
backup_database_name1=vpser
backup_database_name2=licess
backup_database_name3=junge
backup_database_name4=vpserorg
######~set ftp information~######設置用來存放備份數據的ftp信息
ftp_hostname=184.168.192.43 //ftp服務器的ip或者域名
ftp_username=vpsernet //ftp服務器用戶名
ftp_password=yourftppassword //ftp服務器用戶對應的密碼
ftp_backupdir=backup //備份到ftp上的目錄,需要提前創建好。
#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
###上面為備份網站文件數據,因為我的網站比較零散,而且網站目錄下面有些目錄屬于臨時目錄并不需要備份,所以可以在上面加上--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數據庫,如果在前面加了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
到此,相信大家對“Linux網站及數據庫自動本地備份并FTP上傳怎么實現”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。