溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何利用對(duì)象存儲(chǔ)COS定時(shí)遠(yuǎn)程備份網(wǎng)站

發(fā)布時(shí)間:2022-01-05 14:13:04 來(lái)源:億速云 閱讀:181 作者:柒染 欄目:云計(jì)算

本篇文章為大家展示了如何利用對(duì)象存儲(chǔ)COS定時(shí)遠(yuǎn)程備份網(wǎng)站,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

如何利用對(duì)象存儲(chǔ)COS定時(shí)遠(yuǎn)程備份網(wǎng)站

一、優(yōu)點(diǎn)分析

內(nèi)網(wǎng)傳輸:和阿里云OSS一樣,騰訊云COS同樣支持內(nèi)網(wǎng)和外網(wǎng)文件傳輸,對(duì)于騰訊云服務(wù)器,使用內(nèi)網(wǎng)傳輸絕對(duì)是最快、最穩(wěn)定的備份方案!

免費(fèi)方案:看了下騰訊云COS的定價(jià)說(shuō)明,發(fā)現(xiàn)對(duì)于備份網(wǎng)站來(lái)說(shuō)簡(jiǎn)直是絕佳搭檔,甚至可以說(shuō)是鉆了個(gè)空子(為啥這么說(shuō)?

看下定價(jià)方案:

①、入流量免費(fèi)

相當(dāng)于我們上傳文件的流量都是免費(fèi)的,不區(qū)分內(nèi)外網(wǎng)哦!內(nèi)網(wǎng)就不說(shuō)了,都懂。
如何利用對(duì)象存儲(chǔ)COS定時(shí)遠(yuǎn)程備份網(wǎng)站

二、準(zhǔn)備工作

①、開(kāi)通COS,并創(chuàng)建Bucket

訪(fǎng)問(wèn)騰訊云COS開(kāi)通對(duì)象存儲(chǔ)服務(wù),然后如圖創(chuàng)建Bucket:
如何利用對(duì)象存儲(chǔ)COS定時(shí)遠(yuǎn)程備份網(wǎng)站

三、備份腳本

人生苦短,我用Python,這里就繼續(xù)選擇Python SDK來(lái)實(shí)現(xiàn),

①、環(huán)境準(zhǔn)備

如下順序安裝騰訊云Python SDK插件

#安裝pip
yum install python-pip

#升級(jí)pip(yum裝的可能版本比較舊)
pip install --upgrade pip

#安裝騰訊云COS SDK插件
pip install qcloud_cos

如果不是Centos,請(qǐng)自行搞定,這里不再贅述。

②、上傳腳本

參考官方SDK文檔,寫(xiě)了一個(gè)簡(jiǎn)單夠用的上傳腳本:

# -*- coding: utf-8 -*-
# Upload File To Qcloud COS

from qcloud_cos import CosClient
from qcloud_cos import UploadFileRequest
import sys

#腳本需要傳入6個(gè)參數(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í)行如下命令可開(kāi)始上傳文件到OSS:

python /data/oss.upload.py appid secret_id secret_key Bucket名稱(chēng) 域名 /data/zhangge.net_1.zip

其中:

  • 1~3個(gè)參數(shù)是appid、認(rèn)證ID和認(rèn)證密鑰,也就是前文創(chuàng)建并備忘的密鑰信息;

  • 第4個(gè)參數(shù)是前文創(chuàng)建的Bucket名稱(chēng),比如mybackup

  • 第5個(gè)參數(shù)是需要備份的域名(新增的:主要是為了區(qū)分下)

  • 第6個(gè)參數(shù)是要上傳的本地文件的絕對(duì)路徑

執(zhí)行后,就能在COS的Object界面看到了上傳的文件:
如何利用對(duì)象存儲(chǔ)COS定時(shí)遠(yuǎn)程備份網(wǎng)站

四、定時(shí)備份

有了上傳腳本,繼續(xù)結(jié)合之前張戈博客分享的七天循環(huán)備份腳本,實(shí)現(xiàn)循環(huán)備份到COS了,既安全還節(jié)省COS空間。

①、適合COS七天循環(huán)備份腳本
#!/bin/sh
###################################################################
#  Web Backup version 1.0.0 Author: Jager <ge@zhangge.net>        #
# 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ù),請(qǐng)按照實(shí)際情況修改appID,認(rèn)證KEY、認(rèn)證密鑰和Bucket名稱(chēng)!!!
uploadToCOS()
{
    $PYTHON $baseDir/cos.upload.py appID 認(rèn)證KEY 認(rèn)證密鑰 Bucket名稱(chēng) $1 $2
    if [[ $? -eq 0 ]] &&  [[ "$isDel">
②、使用方法

將上述代碼作如下修改:

I、根據(jù)實(shí)際情況修改上述代碼中的COS上傳函數(shù)代碼,比如密鑰對(duì)和Bucket名稱(chēng)(參考前文)
II、替換代碼中的mypassword=123456為自己設(shè)置的壓縮包密碼,不修改的話(huà)壓縮文件解壓密碼為123456

然后,將代碼保存為backup.sh,上傳到服務(wù)器(建議存放到和前文python腳本的相同目錄),比如/data/backup.sh,最后如下添加定時(shí)任務(wù):

#編輯crontab
[root@AlyServer ~]# crontab -e

#然后添加如下內(nèi)容:

#備份數(shù)據(jù)庫(kù)(參數(shù)依次為:db、域名、數(shù)據(jù)庫(kù)名稱(chēng)、數(shù)據(jù)庫(kù)用戶(hù)名、對(duì)應(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

#按下鍵盤(pán)esc,輸入 :wq 保存crontab即可

全部完成后,就能實(shí)現(xiàn)本地7天循環(huán)備份和COS遠(yuǎn)程備份了!

在文章的最后,為了方便廣大代碼小白朋友,特提供本文涉及腳本的打包下載:

五、幕后花絮

在折騰SDK的時(shí)候,第一眼其實(shí)被騰訊云的說(shuō)明文檔虐到了:

如何利用對(duì)象存儲(chǔ)COS定時(shí)遠(yuǎn)程備份網(wǎng)站

只說(shuō)了如何安裝SDK插件,然后直接來(lái)個(gè)def函數(shù),然后就沒(méi)然后了,到底如何import這個(gè)SDK?一臉懵逼。
最后在github的 simple.py 中才找到了完整的DEMO:
https://github.com/tencentyun/cos-python-sdk/blob/3.3/sample.py

上述內(nèi)容就是如何利用對(duì)象存儲(chǔ)COS定時(shí)遠(yuǎn)程備份網(wǎng)站,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI