本篇文章為大家展示了如何利用對象存儲COS定時遠(yuǎn)程備份網(wǎng)站,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),界首企業(yè)網(wǎng)站建設(shè),界首品牌網(wǎng)站建設(shè),網(wǎng)站定制,界首網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,界首網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
內(nèi)網(wǎng)傳輸:和阿里云OSS一樣,騰訊云COS同樣支持內(nèi)網(wǎng)和外網(wǎng)文件傳輸,對于騰訊云服務(wù)器,使用內(nèi)網(wǎng)傳輸絕對是最快、最穩(wěn)定的備份方案!
免費(fèi)方案:看了下騰訊云COS的定價說明,發(fā)現(xiàn)對于備份網(wǎng)站來說簡直是絕佳搭檔,甚至可以說是鉆了個空子(為啥這么說?
看下定價方案:
相當(dāng)于我們上傳文件的流量都是免費(fèi)的,不區(qū)分內(nèi)外網(wǎng)哦!內(nèi)網(wǎng)就不說了,都懂。
訪問騰訊云COS開通對象存儲服務(wù),然后如圖創(chuàng)建Bucket:
人生苦短,我用Python,這里就繼續(xù)選擇Python SDK來實現(xiàn),
如下順序安裝騰訊云Python SDK插件
#安裝pip yum install python-pip #升級pip(yum裝的可能版本比較舊) pip install --upgrade pip #安裝騰訊云COS SDK插件 pip install qcloud_cos
如果不是Centos,請自行搞定,這里不再贅述。
參考官方SDK文檔,寫了一個簡單夠用的上傳腳本:
# -*- coding: utf-8 -*- # Upload File To Qcloud COS from qcloud_cos import CosClient from qcloud_cos import UploadFileRequest import sys #腳本需要傳入6個參數(shù) if ( len(sys.argv) > 5 ): appid = int(sys.argv[1]) secret_id = sys.argv[2].decode('utf-8') secret_key = sys.argv[3].decode('utf-8') bucket = sys.argv[4].decode('utf-8') domain = sys.argv[5].decode('utf-8') filePath = sys.argv[6].decode('utf-8') fileName = filePath.split("/")[-1] else: print("Example: python %s appid secret_id secret_key Bucket zhangge.net /data/backup.zip">
使用方法:將上述代碼保存為 cos.upload.py,并上傳到服務(wù)器,執(zhí)行如下命令可開始上傳文件到OSS:
python /data/oss.upload.py appid secret_id secret_key Bucket名稱 域名 /data/zhangge.net_1.zip
其中:
1~3個參數(shù)是appid、認(rèn)證ID和認(rèn)證密鑰,也就是前文創(chuàng)建并備忘的密鑰信息;
第4個參數(shù)是前文創(chuàng)建的Bucket名稱,比如mybackup
第5個參數(shù)是需要備份的域名(新增的:主要是為了區(qū)分下)
第6個參數(shù)是要上傳的本地文件的絕對路徑
執(zhí)行后,就能在COS的Object界面看到了上傳的文件:
有了上傳腳本,繼續(xù)結(jié)合之前張戈博客分享的七天循環(huán)備份腳本,實現(xiàn)循環(huán)備份到COS了,既安全還節(jié)省COS空間。
#!/bin/sh ################################################################### # Web Backup version 1.0.0 Author: Jager# # For more information please visit https://zhangge.net/5117.html # #-----------------------------------------------------------------# # Copyright ?2016 zhangge.net. All rights reserved. # ################################################################### isDel=n args=$# isDel=${!args} mypassword=123456 test -f /etc/profile && . /etc/profile >/dev/null 2>&1 baseDir=$(cd $(dirname $0) && pwd) zip --version >/dev/null || yum install -y zip ZIP=$(which zip) TODAY=`date +%u` PYTHON=$(which python) MySQLDUMP=$(which mysqldump) # 新增的COS上傳文件函數(shù),請按照實際情況修改appID,認(rèn)證KEY、認(rèn)證密鑰和Bucket名稱!!! uploadToCOS() { $PYTHON $baseDir/cos.upload.py appID 認(rèn)證KEY 認(rèn)證密鑰 Bucket名稱 $1 $2 if [[ $? -eq 0 ]] && [[ "$isDel">
將上述代碼作如下修改:
I、根據(jù)實際情況修改上述代碼中的COS上傳函數(shù)代碼,比如密鑰對和Bucket名稱(參考前文)
II、替換代碼中的mypassword=123456為自己設(shè)置的壓縮包密碼,不修改的話壓縮文件解壓密碼為123456
然后,將代碼保存為backup.sh,上傳到服務(wù)器(建議存放到和前文python腳本的相同目錄),比如/data/backup.sh
,最后如下添加定時任務(wù):
#編輯crontab [root@AlyServer ~]# crontab -e #然后添加如下內(nèi)容: #備份數(shù)據(jù)庫(參數(shù)依次為:db、域名、數(shù)據(jù)庫名稱、數(shù)據(jù)庫用戶名、對應(yīng)密碼、備份路徑 [可選:y 刪除本地壓縮包]) 10 3 * * * bash /data/backup.sh db zhangge.net zhangge root 123456 /home/wwwbackup/zhangge.net > /dev/null 2>&1 #備份網(wǎng)站文件(參數(shù)依次為:file、域名、網(wǎng)站根目錄、備份路徑 [可選:y 刪除本地壓縮包]) 15 3 * * * bash /data/backup.sh file zhangge.net /home/wwwroot/zhangge.net /home/wwwbackup/zhangge.net >/dev/null 2>&1 #按下鍵盤esc,輸入 :wq 保存crontab即可
全部完成后,就能實現(xiàn)本地7天循環(huán)備份和COS遠(yuǎn)程備份了!
在文章的最后,為了方便廣大代碼小白朋友,特提供本文涉及腳本的打包下載:
在折騰SDK的時候,第一眼其實被騰訊云的說明文檔虐到了:
只說了如何安裝SDK插件,然后直接來個def函數(shù),然后就沒然后了,到底如何import這個SDK?一臉懵逼。
最后在github的 simple.py 中才找到了完整的DEMO:
https://github.com/tencentyun/cos-python-sdk/blob/3.3/sample.py
上述內(nèi)容就是如何利用對象存儲COS定時遠(yuǎn)程備份網(wǎng)站,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。