歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> linux下實現VPS免費備份腳本

linux下實現VPS免費備份腳本

日期:2017/3/2 16:31:55   编辑:Linux服務器
有人說你怎麼不備份呢?這個問題我也考慮過啊,其實你有沒有想過對於這種國外的vps什麼的,備份一下所有的網站怎麼說也得百十兆吧。

你總不能天天去下載吧?這帶寬可受不了,就算是帶寬充足,說不定vps哪天也讓你給下載掛了。

ok~切入正題,先說這個免費備份的問題,實際上也不免費,只是有個前提,那就是你在godaddy.com的買的有域名,大家都知道在godaddy上買域名可以免費申請空間的,對於不用這東西的來說實在是太浪費了,所以今天的主題就是針對那些在godaddy買過域名有免費空間的盆友(在godaddy有域名沒申請空間的可以去問問度娘谷哥)

那我們備份vps的原理就是利用shell腳本備份網站以及數據庫,然後通過ftp腳本吧備份文件上傳到godaddy的免費空間,簡單吧。

那我就直接上腳本了~嘿嘿。

下面這個是備份網站和數據庫的腳本:
. 代碼如下:
#!/bin/bash
#set -x
time=`date +%Y%m%d`
#下面是備份MySql
[ ! -e /backup/sqltmp ] && mkdir -p /backup/sqltmp #創建臨時備份mysql目錄
[ ! -e /backup/backsql ] && mkdir -p /backup/backsql #創建mysql備份的存放目錄
cd /backup/sqltmp
sql=`mysqlshow -u用戶名 -p密碼 |grep -v + | grep -Ev “Data|information|mysql|test” | awk {‘print $2′}` #查詢mysql數據庫裡出系統數據以外的網站數據庫,這裡可以根據需要修改
for sqlname in $sql
do
mysqldump -u用戶名 -p密碼 $sqlname > $sqlname.sql
done
tar zcvf backsql.$time.tar.gz *.sql
rm -rf *.sql
mv * ../backsql/.
cd ..
rm -rf sqltmp
#下面是備份網站
[ ! -e /backup/webtmp ] && mkdir -p /backup/webtmp #創建臨時備份web文件目錄
[ ! -e /backup/backweb ] && mkdir -p /backup/backweb #創建web文件備份的存放目錄
cd /backup/webtmp
tar zcvf backweb.$time.tar.gz /home/*
mv * ../backweb/.
cd ..
rm -rf webtmp

下面這個是上傳到通過ftp把備份網站上傳到godaddy空間上的腳本:
. 代碼如下:
#!/bin/bash
backsql=`cd /backup/backsql;ls -r backsql* | head -1` #因為每天都備份文件取最新的那個
backweb=`cd /backup/backweb;ls -r backweb* | head -1`
ftp -n<<EOF
open ip #這裡寫godaddy空間的ip
user ftp用戶名 ftp密碼
binary
cd /back/ #備份文件要存放的ftp上的路徑
lcd /backup/backsql/ #備份mysql文件本地存放路徑
prompt
mput $backsql
lcd /backup/backweb/ #備份web文件本地存放路徑
mput $backweb
close
bye
EOF

然後把這兩個腳本做個crontab計劃任務就實現每天定時異地備份了,而且省時省力省錢。
. 代碼如下:
[[email protected] ~]# crontab -e
01 0 * * * /root/backup.sh
0 5 * * * /root/ftp.sh
Copyright © Linux教程網 All Rights Reserved