1. 程式人生 > >備份數據上傳騰訊雲COS

備份數據上傳騰訊雲COS

jar包 windows alt 判斷 http awk 壓縮工具 記錄 down

一、方案背景
由於服務器上數據量越來越大,備份的數據會占用硬盤空間(雖說雲硬盤可隨時擴容,但是存在風險),定時將備份上傳到COS。不僅節省服務器硬盤空間,也大大提高備份數據的安全性、可靠性。

二、操作步驟
1、軟件依賴:JDK1.7 或以上
下載鏈接:https://github.com/tencentyun/cos_migrate_tool_v5

2、解壓縮工具包,或者使用git clone直接克隆到本地
Windows
解壓並保存到某個目錄,例如
C:\Users\Administrator\Downloads\cos_migrate
Linux
解壓並保存到某個目錄
unzip cos_migrate_tool_v5-master.zip && cd cos_migrate_tool_v5-master

遷移工具結構
正確解壓後的 COS Migration 工具目錄結構如下所示:
COS_Migrate_tool
|——conf #配置文件所在目錄
| |——config.ini #遷移配置文件
|——db #存儲遷移成功的記錄
|——dep #程序主邏輯編譯生成的JAR包
|——log #工具執行中生成的日誌
|——opbin #用於編譯的腳本
|——src #工具的源碼
|——tmp #臨時文件存儲目錄
|——pom.xml #項目配置文件
|——README #說明文檔
|——start_migrate.sh #Linux 下遷移啟動腳本
|——start_migrate.bat #Windows 下遷移啟動腳本
3、修改 config.ini 配置文件
在執行遷移啟動腳本之前,需先進行 config.ini 配置文件修改(路徑:./conf/config.ini)
以下為從本地遷移、備份到cos
type 表示遷移類型,用戶根據遷移需求填寫對應的標識。本地[migrateType]的配置內容是type=migrateLocal。
配置遷移任務
用戶根據實際的遷移需求進行相關配置,主要包括遷移至目標 COS 信息配置及遷移任務相關配置。
技術分享圖片
vim conf/config.ini中每項有詳細解釋說明
配置本地數據源 migrateLocal
若從本地遷移至 COS,則進行該部分配置,具體配置項及說明如下:
技術分享圖片
技術分享圖片

4、運行遷移工具
Windows

雙擊 start_migrate.bat 即可運行。
Linux
從config.ini配置文件讀入配置,運行命令為:
sh start_migrate.sh

遷移機制原理
COS 遷移工具是有狀態的,已經遷移成功的會記錄在 db 目錄下,以 KV 的形式存儲在 leveldb 文件中。每次遷移前對要遷移的路徑,先查找下 db 中是否存在, 如果存在,且屬性和 db 中存在的一致, 則跳過遷移,否則進行遷移。這裏的屬性根據遷移類型的不同而不同,對於本地遷移,會判斷 mtime。對於其他雲存儲遷移與 Bucket 復制,會判斷源文件的 etag 和長度是否與 db 一致。因此,我們參照 db 中是否有過遷移成功的記錄,而不是查找 COS,如果繞過了遷移工具,通過別的方式(如 COSCMD 或者控制臺)刪除修改了文件,那麽運行遷移工具由於不會察覺到這種變化,是不會重新遷移的。

利用腳本實現分月備份
替換備份配置文件中的"月目錄"
#!/bin/sh
Date=date |awk ‘{print $6}‘
Path=grep cosPath /data/soft/cos_migrate_tool_v5-master/conf/config.ini |awk -F ‘/‘ ‘{print $3}‘
#PATH=grep cosPath /data/scripts/cos.py |awk -F ‘/‘ ‘{print $3}‘
/usr/bin/sed -i "s/${Path}/${Date}/g" /data/soft/cos_migrate_tool_v5-master/conf/config.ini

crontab
0 1,13 sh /data/script/bak.sh
0 2
sh /data/soft/cos_migrate_tool_v5-master/start_migrate.sh
0 0 1 sh /data/script/cosdate.sh #每月執行一次

備份數據上傳騰訊雲COS