異地備份是一項重要的安全措施。它們允許在發生硬件故障、意外刪除或任何其他災難性事件時還原數據。自動備份可提高備份過程的可靠性,并確保定期備份最近的數據。
有關阿里云國際對象存儲服務自動備份的操作,今天USA-IDC詳細說明下操作過程
我們將使用阿里云對象存儲服務 (OSS) 作為異地備份存儲解決方案。數據將由一個簡單的bash腳本備份,該腳本由cronjob定期執行。Minio 客戶端將用于將備份傳輸到 OSS。
阿里云 OSS 是一個合適的備份存儲解決方案。很少訪問的對象(如備份)可以可靠、廉價且安全地存儲。前 5 GB 的存儲空間可以完全免費使用。
先決條件
在開始之前,請確保您有阿里云國際站賬號。立即注冊即可獲得300美元的免費積分。創建彈性云服務器或使用SSH連接現有服務器進行操作。您所需要的只是一個基于Linux的系統。
步驟 0 – 添加新用戶(可選)
最好使用具有有限系統訪問權限的帳戶來執行備份腳本。這樣做可以提高安全性,因為如果執行備份腳本的用戶受到威脅,攻擊者的可能性有限。運行以下命令以添加具有名稱備份的新用戶。
sudo adduser backup
盡可能限制新用戶的系統權限,而不限制其上傳備份到OSS的能力。
步驟 1 – 創建 OSS 存儲桶
接下來,我們將為備份創建一個OSS存儲桶。存儲桶是對象集合的命名空間。每個對象都由存儲桶名稱和對象鍵唯一標識。
首先,導航到阿里云控制臺。從主導航欄中打開“產品”下拉列表,然后單擊“存儲和 CDN”部分中的對象存儲服務鏈接。如果您之前未使用過OSS,您將被要求接受OSS服務條款。單擊創建存儲桶,為備份對象創建存儲桶。
輸入存儲桶的名稱,選擇地域,選擇存儲類并設置訪問控制限制。我們將使用存儲桶名稱backup-demo和EU Central 1區域。
三種可用的存儲類提供相同的數據可靠性和服務可用性保證。
它們主要在數據訪問功能和定價方面有所不同。與標準存儲相比,不頻繁訪問存儲提供實時訪問和更低的存儲費用。任何對象至少需要支付 30 天的存儲費用,即使對象在創建后不久就被刪除了。對象的最小計費大小為 128 KB。歸檔存儲提供的存儲費用甚至更低,但數據必須解凍才能變得可讀,這需要一分鐘。最小計費存儲持續時間為 60 天,對象的最小計費大小為 128 KB。
考慮到不同存儲類的屬性,不頻繁訪問存儲將是大多數備份用例的最佳類。與標準存儲相比,它結合了實時訪問和更低的存儲費用。可以在此處找到有關存儲類的詳細信息。
對于備份,ACL 應為專用,因為備份應僅由經過身份驗證的系統寫入和讀取。請注意,創建存儲桶后,無法更改所選的存儲類和區域。單擊“確定”以創建存儲桶。
步驟 2 – 創建訪問密鑰
接下來,我們將創建訪問密鑰,備份腳本將使用該密鑰通過OSS進行身份驗證。單擊OSS儀表盤頁面的訪問密鑰按鈕。
系統將詢問您是否要使用子用戶的訪問密鑰。子用戶的訪問密鑰更安全,因為它們的權限可以被鎖定。單擊“子用戶訪問密鑰入門”,將其重定向到“資源訪問管理(RAM)”儀表板。如果您以前沒有使用過RAM,您將被要求接受RAM服務條款。
接下來,單擊邊欄中的“用戶”。以下屏幕列出了每個子用戶。通過單擊“創建用戶”按鈕創建新的子用戶。
接下來,輸入新用戶的數據。我們將選擇用戶名?backup-demo-user。所有其他字段都是可選的“標記自動為此用戶生成訪問密鑰”復選框。按“確定”創建用戶。
系統將提示您將用戶的訪問密鑰保存到您的計算機。之后無法檢索訪問密鑰!確保其安全。
接下來,我們將配置與訪問密鑰關聯的權限。我們將選擇阿里云OSSFullAccess授權策略。因此,使用此訪問密鑰進行身份驗證的任何人都可以管理?OSS。請記住,可以編輯策略以進一步降低對單個存儲桶或存儲桶組的訪問權限。
步驟 3 – 設置 Minio 客戶端
Minio Client為UNIX命令(如ls,cat和cp)提供了一種現代替代方案。我們將使用它,因為它不僅支持文件系統,還支持與S3兼容的云存儲,如阿里云OSS。
如果您愿意,可以使用 Minio 客戶端 Docker 映像。有關說明,請參閱?DockerHub 上的 minio/mc。
使用 wget 下載 Minio Client 可執行文件。如果您不使用 linux-amd64,請確保從?https://dl.minio.io/client/mc/release/?中選擇正確的下載鏈接。
cd ~ wget https://dl.minio.io/client/mc/release/linux-amd64/mc
接下來,使用 chmod 命令設置可執行位以允許執行該文件。
chmod +x mc
將可執行文件移動到 PATH 環境變量中列出的目錄。這樣做將允許從任何目錄運行可執行文件,而無需提供其完整路徑。/usr/bin 目錄可用于許多常見的 Linux 發行版(如 Ubuntu)的用途??蓤绦形募⒖晒┫到y上的所有用戶使用。
sudo mv ./mc /usr/bin/mc
運行mc版本以檢查是否可以運行Minio客戶端。
步驟 4 – 配置 Minio 客戶端以用于阿里云 OSS
接下來,我們將配置 Minio 客戶端以用于阿里云?OSS。在替換占位符后,使用步驟 1 和 2 中的相應值運行以下命令??梢栽?OSS 存儲桶控制面板上找到。如果不確定要選擇哪個終結點,請使用?Internet 訪問終結點。如果缺少所有必需的 Minio 客戶端配置文件,則會自動創建這些文件。
mc config host add oss
列出在步驟 1 中創建的存儲桶中的所有對象,以檢查配置是否正常工作。
mc ls oss/backup-demo
您不應看到任何輸出,因為存儲桶不包含任何對象。如果顯示錯誤消息,請檢查 ~/.mc/config.json 上的配置文件。
步驟 5 – 創建備份腳本
接下來,我們將創建一個腳本,將目錄中的所有文件備份到OSS。備份數據可以是數據庫轉儲或任何其他數據。實際上,備份數據將由另一個腳本定期生成。我們將為此演示手動放置一些文本文件。如果要將包含多個文件的目錄備份為一個對象,請考慮使用 tar 將目錄打包為單個文件。
使用您選擇的文本編輯器在主目錄中創建名為?backup.sh?的文件。將以下腳本復制到文件中。
#!/usr/bin/env bash SOURCE=$1 DESTINATION=$2 mc cp --json --recursive $SOURCE $DESTINATION
第一行稱為shebang,并確保腳本將使用bash執行。之后,我們將第一個參數分配給名為 SOURCE 的變量,將第二個參數分配給名為 DESTINATION 的變量。第二行使用 Minio Client 以遞歸方式將所有文件和目錄從源復制到目標。SOURCE 和 DESTINATION 都可以引用文件系統或云存儲。文件名將用作對象鍵。–-json 選項允許將結構化輸出為 JSON。
OSS存儲空間中已有的任何文件都將被跳過。因此,應確保不要重復使用文件名。確保所有文件名都唯一的最簡單方法是在文件名中包含時間戳。
步驟 4 – 使用 Crontab 安排常規腳本執行
接下來,我們將使用 cronjob 定期執行備份腳本。首先,使用 chmod 在 backup.sh 腳本上設置可執行位。這將允許文件執行。
chmod +x ~/backup.sh
接下來運行 crontab -e 以配置 cronjob。如果這是您第一次使用 crontab,系統將要求您選擇一個編輯器:
no crontab for nick - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/ed 2. /bin/nano <---- easiest 3. /usr/bin/vim.basic 4. /usr/bin/vim.tiny Choose 1-4 [2]:
按回車鍵選擇 nano(默認)。將以下行添加到文件末尾。
* * * * * ~/backup.sh ~/backup-demo/* oss/backup-demo
SOURCE?參數指向 ~/backup-demo 目錄中的文件,而?DESTINATION?參數指向我們之前創建的?OSS?存儲桶。備份腳本將每分鐘執行一次。保存文件。
讓我們檢查一切是否按預期工作。在備份目錄中創建備份目錄和文件:
mkdir ~/backup-demo echo test1 > ~/backup-demo/test1.txt
該文件應在一分鐘后顯示在您的?OSS?存儲桶中。使用 mc ls oss/backup-demo 檢查存儲桶,或在阿里云控制臺中打開存儲桶控制面板。
如果文件未出現在?OSS?存儲桶中,請檢查 crontab 輸出。默認情況下,cronjobs 會記錄到?/var/log/syslog。
其他注意事項
如果您需要備份大量數據,壓縮備份是有意義的。
您應確保監視任何自動備份。這將使您能夠在出現任何問題時修復它們,并確保定期備份您的數據。
無法還原的備份是無用的。您應通過定期測試來確保備份和備份過程按預期工作。
沒有阿里云國際版賬戶怎么辦?無法完成PayPal支付購買阿里云國際ecs實例?ecs實例續費出現問題?阿里云國際版賬戶被風控?USA-IDC是阿里云、AWS、騰訊云國際版金牌分銷商,可代充值,通過分銷商注冊的賬戶不易被風控,且還有額外折扣可享。