日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用 bash 脚本把 AWS EC2 数据备份到 S3

發布時間:2024/4/17 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 bash 脚本把 AWS EC2 数据备份到 S3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一、IAM 秘鑰授權方式(普通)
    • 1.1、打開 IAM
    • 1.2、添加用戶
    • 1.3、安裝和配置 AWS CLI
    • 1.4、配置授權
  • 二、IAM 角色授權方式(安全)
    • 2.1、創建一個 EC2 訪問 S3 的角色
    • 2.2、為 EC2 添加 訪問 S3 的角色
    • 2.3、測試
  • 三、使用 AWS CLI 和 S3 備份數據
    • 3.1、創建存儲桶
    • 3.2、上傳文件
    • 3.3、下載文件
    • 3.4、刪除文件
  • 四、實際案例(使用秘鑰這種方法)

一、IAM 秘鑰授權方式(普通)

Amazon Simple Storage Service (Amazon S3) 是一種面向 Internet 的存儲服務。您可以通過 Amazon S3 隨時在 Web 上的任何位置存儲和檢索的任意大小的數據。您可以使用 AWS 管理控制臺簡單而直觀的 web 界面來完成這些任務。

1.1、打開 IAM

單擊 AWS Identity and Access Management 控制面板左側的用戶。

單擊添加用戶按鈕。

1.2、添加用戶

在用戶名: 旁的文本框中輸入用戶名 (在本示例中,我們將使用 aws_backup),然后從“選擇 AWS 訪問類型”部分中選擇編程訪問。單擊下一步: 權限按鈕。

單擊直接附加現有策略選項。選擇 AdministratorAccess,然后單擊下一步: 審核。

單擊創建用戶。

單擊下載憑證按鈕并將 credentials.csv 文件保存到安全位置 (您稍后在步驟 3 中將需要此文件),然后單擊關閉按鈕。

1.3、安裝和配置 AWS CLI

您已經擁有 IAM 用戶,現在需要安裝 AWS 命令行界面 (CLI)。
有關安裝文檔請查看 https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-install.html 。

我這里直接使用自帶的源安裝。

apt install awscli

1.4、配置授權

登陸到我們的 Ubuntu 系統,輸入 aws configure,然后按 Enter 鍵。在系統提示時輸入以下信息:

root@ip-172-31-47-132:~# aws configure AWS Access Key ID [None]: AKIA5NAGHF6NVEPKATFQ AWS Secret Access Key [None]: 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 Default region name [None]: ap-northeast-1 Default output format [None]: json root@ip-172-31-47-132:~#

二、IAM 角色授權方式(安全)

上面一種方式相對來說已經夠安全了,但是秘鑰信息都以明文的方式存儲在了服務器上面,也變成了一種不安全,那我們就配置一下更加安全的角色方式,角色是賦予信任的實體授予權限的安全方法。

2.1、創建一個 EC2 訪問 S3 的角色

選擇受信任的實體,我們這里選擇 EC2。

賦予訪問 S3 權限。

創建角色。

2.2、為 EC2 添加 訪問 S3 的角色

找到 EC2 實例界面。

選擇我們剛剛創建的角色。

2.3、測試

這里的前提條件是沒有配置秘鑰授權的方式。

aws s3 ls s3://myweb-backup-eu-west-1/

三、使用 AWS CLI 和 S3 備份數據

3.1、創建存儲桶

要新建一個名為myweb-backup的存儲桶,請輸入:

root@ip-172-31-47-132:~# aws s3 mb s3://myweb-backup make_bucket: myweb-backup

3.2、上傳文件

要將/etc/passwd文件上傳到 S3 存儲桶 myweb-backup,您需要使用以下命令:

root@ip-172-31-47-132:~# aws s3 cp /etc/passwd s3://myweb-backup/ upload: ../../etc/passwd to s3://myweb-backup/passwd

3.3、下載文件

要從 S3 中將 passwd 下載至本地目錄,我們需要顛倒命令的次序,如下所示:

root@ip-172-31-47-132:~# aws s3 cp s3://myweb-backup/passwd . download: s3://myweb-backup/passwd to ./passwd

3.4、刪除文件

要將 passwd 從您的 myweb-backup 存儲桶中刪除,請使用以下命令:

root@ip-172-31-47-132:~# aws s3 rm s3://myweb-backup/passwd delete: s3://myweb-backup/passwd

四、實際案例(使用秘鑰這種方法)

比如我每天把 /etc 目前下面的所有內容打包上傳備份。

#!/bin/bash export HOME="/home/ubuntu"cd /tmp/; tar -zcPf etc$(date +%Y%m%d).tar.gz /etc; aws s3 cp etc$(date +%Y%m%d).tar.gz s3://myweb-backup/; rm -f etc$(date +%Y%m%d).tar.gz;

然后添加一個定時任務即可。

我這里遇到一個問題,就是放在定時任務之后一直無法上傳成功,不清楚使用角色授權的方式會不會出現這種情況,我覺得應該不會,大家可以自己去試試,通過打印日志查看,發現unable to locate credentials這個問題,找了半天,加了一個環境變量export HOME="/home/ubuntu"解決了,真是費盡周折,如果再遇到手動執行腳本正常,而定時任務不正常,我們可以用下面的辦法對比一下兩種方式的環境變量的區別。

# 定時任務環境變量輸出 set | sort > /tmp/env.cron # 手動執行腳本輸出 set | sort > /tmp/env.interactive # 然后進行比較 diff /tmp/env.cron /tmp/env.interactive

為了節省空間,我們可以添加生命周期規則。

參考文檔: https://aws.amazon.com/cn/getting-started/tutorials/backup-to-s3-cli/

轉載于:https://www.cnblogs.com/wzlinux/p/11188436.html

總結

以上是生活随笔為你收集整理的使用 bash 脚本把 AWS EC2 数据备份到 S3的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。