共計 3873 個字符,預計需要花費 10 分鐘才能閱讀完成。
今天就跟大家聊聊有關怎樣輕松將服務器文件備份至 OSS,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
介紹
教程的主角是 alicloud-duplicity,它是在 duplicity 的基礎上支持 OSS 存儲的開源備份工具,alicloud-duplicity 支持 duplicity 的所有命令和參數。duplicity 是一款開源的備份工具,使用 librsync 支持增量備份,節約本地存儲空間,同時使用 GnuPG 加密數據。duplicity 能將數據輕松的備份到本地、共享存儲和云存儲等。
使用 alicloud-duplicity 可以實現全量備份和增量備份并對其進行加密并且上傳至 OSS。
要求 收獲
需要使用到的產品:
任意(服務器 /ECS/ 輕量應用服務器(安裝任意 Linux 發行版鏡像)
2. 阿里云 OSS 產品
安裝
推薦操作系統:Ubuntu、Debian
一、安裝系統依賴
apt update apt install librsync-dev python-pip python-dev git -y
二、安裝 py 依賴
pip install oss2 fasteners configparser setuptools
三、安裝程序
mkdir -p /root/src/
cd /root/src/
git clone https://github.com/aliyun/alicloud-duplicity.git
cd alicloud-duplicity
python setup.py install
四、驗證
也就是查看一下運行相關命令能否出現版本號:
alicloud-duplicity -V
設置 OSS 設置
一、首先我們要開通 OSS
二、然后創建一個和阿里云 ECS 同地域的 OSS Bucket,
三、儲存類型選擇 低頻訪問 ,讀寫權限為 私有 。因為備份并不會頻繁訪問,所以可以選擇成本更低 低頻訪問,我們的別分肯定也不要別人訪問,自然是 私有
四、然后進入 訪問控制(RAM) 創建一個專門為 OSS 準備的用戶,一定要記錄好 AccessKeyID 和 AccessKeySecret
五、點擊 策略管理,然后點擊 新建授權策略
六、直接點擊 空白模板,然后輸入 授權策略名稱 后,輸入策略內容如下面:
{
Statement : [
{
Action : oss:* ,
Effect : Allow ,
Resource : [
acs:oss:*:*:mf8-oss-back ,
acs:oss:*:*:mf8-oss-back/*
]
}
],
Version : 1
}
由于我的 OSS Bucket 是 mf8-oss-back,所以 acs:oss:*:*:mf8-oss-back , 和 acs:oss:*:*:mf8-oss-back/* 后面是 mf8-oss-back 你可以改成自己的 OSS Bucket 名稱
然后點擊 新建授權策略 保存
七、為該用戶進行授權
八、選擇我我們剛才創建的授權策略就行
服務器設置
創建配置文件
運行:
cat ~/.alicloud.cfg EOF
[oss]
endpoint = OSS 的訪問 EndPoint
access_key_id = 剛才要保存的 AccessKeyID
access_key_secret = 剛才要保存的 AccessKeySecret
EOF
OSS 的訪問 EndPoint,可以在 Bucket 的詳情頁中看到:
如果是 VPC 就用 VPC 的內網,經典就用經典的內網,內網速度更快同時不用流量費用。
例如:
cat ~/.alicloud.cfg EOF
[oss]
endpoint = http://oss-cn-shanghai-internal.aliyuncs.com
access_key_id = LTZIWWWMF8BIZxJI
access_key_secret = 9rm1Q5nlpyz155WWWMF8BIZDAW1DSn
EOF
創建環境變量
運行:
export ALICLOUD_OSS_ENDPOINT=OSS 的訪問 EndPoint
export ALICLOUD_ACCESS_KEY_ID= 剛才要保存的 AccessKeyID ALICLOUD_ACCESS_KEY_SECRET= 剛才要保存的 AccessKeySecret
使用
終于可以開始開心的使用了!
用法備份
全量備份
alicloud-duplicity full /etc oss://bucket-name/keyfolder/
增量備份
alicloud-duplicity incr /etc oss://bucket-name/keyfolder/
自動選擇備份類型
alicloud-duplicity /etc oss://bucket-name/keyfolder/
alicloud-duplicity --full-if-older-than 7D /etc oss://bucket-name/keyfolder/
# 對重要數據,應經常做全量備份,用 --full-if-older-than 指定全量備份時間間隔。
定時備份
利用 `crontab -e` 設定每天凌晨 3 點自定執行腳本 timedbackup.sh,寫入 `0 3 _/1_ * timedbackup.sh`。腳本 timedbackup.sh 的內容如下:
alicloud-duplicity --full-if-older-than 7D /etc oss://bucket-name/keyfolder/
備份多個目錄
alicloud-duplicity --include /etc --include /home/aliyun --exclude ** / oss://bucket-name/keyfolder/
恢復
恢復文件夾
alicloud-duplicity restore oss://bucket-name/keyfolder/ /home/tmp/
恢復特定文件
alicloud-duplicity --file-to-restore file1 oss://bucket-name/keyfolder/ /home/tmp/
其它
列出備份目錄列表
alicloud-duplicity list-current-files oss://bucket-name/keyfolder/
查看備份狀態
alicloud-duplicity collection-status oss://bucket-name/keyfolder/
演示
例如,我要備份 /root/images/ 內的所有圖片到 OSS,那么就運行:
alicloud-duplicity full /root/images/ oss://mf8-oss-back/images/*
這里的 /root/images/ 是本地要備份的目錄,oss://mf8-oss-back 中的 mf8-oss-back 是 OSS Bucket 名稱,/images/ 就是 OSS 中的目錄了。
然后會出來一段:
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
GnuPG passphrase:
Retype passphrase to confirm:
就是要你輸入加密這個備份的密碼,因為即便備份到自己的 OSS 上依舊是應該要一個加密來保障安全的,萬一手機丟了阿里云賬號被登錄了呢。
然后就會反饋備份內容了:
--------------[ Backup Statistics ]--------------
StartTime 1510751741.34 (Wed Nov 15 21:15:41 2017)
EndTime 1510751741.35 (Wed Nov 15 21:15:41 2017)
ElapsedTime 0.01 (0.01 seconds)
SourceFiles 12
SourceFileSize 104550 (102 KB)
NewFiles 12
NewFileSize 104550 (102 KB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 12
RawDeltaSize 100454 (98.1 KB)
TotalDestinationSizeChange 61719 (60.3 KB)
Errors 0
-------------------------------------------------
我們在到 OSS 的文件管理處就可以看到備份文件了。三個就是加密后的文件。
然后我們就再恢復一下看看是否備份成功:
alicloud-duplicity restore oss://mf8-oss-back/images/ /root/restore/images/
就可以 /root/restore/images/ 中看到恢復的文件了。
看完上述內容,你們對怎樣輕松將服務器文件備份至 OSS 有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。