linux系统上aws命令行的安装及s3的一些常用命令

Backup and recovery of mongodb database

Posted by Strom on April 20, 2017

在 Linux 上安装 Python 3

检查是否已安装 Python:

$ python --version

注意 如果您的 Linux 分发版本附带了 Python,则可能需要安装 Python 开发人员程序包以获取编译扩展和安装 AWS CLI 时需要的标头和库。使用程序包管理器安装开发人员程序包(名称通常为 python-dev 或 python-devel)。 如果尚未安装 Python 2.7 或更高版本,请使用分发版本的程序包管理器来安装 Python 3。命令和程序包名称会有所不同:

在 Debian 衍生物 (如 Ubuntu) 上,请使用 APT:

$ sudo apt-get install python3.4

在 Red Hat 及其衍生物上,请使用 yum:

$ sudo yum install python34

在 SUSE 及其衍生物上,请使用 zypper:

$ sudo zypper install python3-3.4.1

打开命令提示符或 shell,并运行以下命令验证 Python 是否已正确安装:

$ python3 --version
Python 3.4.3

安装 pip,方法是使用 Python 打包权威机构提供的脚本,然后安装 AWS CLI。

安装 pip 和 AWS CLI

从 pypa.io 下载安装脚本:

$ curl -O https://bootstrap.pypa.io/get-pip.py

脚本将会下载,并将安装 pip 的最新版本以及另一个名为 setuptools 的必需程序包。

使用 Python 运行脚本:

$ python3 get-pip.py --user

使用 python3 命令而不是 python 来直接调用 Python 版本 3,这样可确保即使系统上存在 Python 的较旧系统版本,pip 也会安装在正确的位置。

将可执行文件的路径添加到您的 PATH 变量:~/.local/bin

修改您的 PATH 变量 (Linux, macOS, or Unix)

在您的用户文件夹中查找 Shell 的配置文件脚本。如果您不能确定所使用的 Shell,请运行 echo $SHELL

$ ls -a ~
.  ..  .bash_logout  .bash_profile  .bashrc  Desktop  Documents  Downloads

  • Bash – .bash_profile、.profile 或 .bash_login。
  • Zsh – .zshrc
  • Tcsh – .tcshrc、.cshrc 或 .login。 向配置文件脚本添加导出命令。
export PATH=~/.local/bin:$PATH

在本示例中,此命令将路径 ~/.local/bin 添加到当前 PATH 变量中。

将配置文件加载到当前会话。

$ source ~/.profile

验证 pip 是否已正确安装。

$ pip --version
pip 8.1.2 from ~/.local/lib/python3.4/site-packages (python 3.4)

最后,使用 pip 安装 AWS CLI。

$ pip install awscli --upgrade --user

验证 AWS CLI 是否已正确安装。

$ aws --version
aws-cli/1.11.44 Python/3.4.3 Linux/4.4.0-59-generic botocore/1.5.7

要升级到最新版本,请重新运行安装命令:

$ pip install awscli --upgrade --user

配置AWS CLI

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE   //id
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY   //秘钥
Default region name [None]: us-west-2  //区域
Default output format [None]: json    //格式默认json

测试

具体cli命令,需要查看aws文档

管理存储桶

创建桶;

$ aws s3 mb s3://bucket-name

删除桶:

$ aws s3 rb s3://bucket-name

删除非空桶:


$ aws s3 rb s3://bucket-name --force

列出存储桶

$ aws s3 ls

列出存储桶中所有的对象和文件夹

$ aws s3 ls s3://bucket-name

列出桶中 bucket-name/MyFolder 中的对象

$ aws s3 ls s3://bucket-name/MyFolder

管理对象

命令包括 aws s3 cp、aws s3 ls、aws s3 mv、aws s3 rm 和 sync。cp、ls、mv 和 rm 命令的用法与它们在 Unix 中的对应命令相同。 // 将当前目录里的 MyFile.txt文件拷贝到 s3://my-bucket/MyFolder

$ aws s3 cp MyFile.txt s3://my-bucket/MyFolder/

// 将s3://my-bucket/MyFolder所有 .jpg 的文件移到 ./MyDirectory

$ aws s3 mv s3://my-bucket/MyFolder ./MyDirectory --exclude '*' --include '*.jpg' --recursive

// 列出 my-bucket的所有内容

$ aws s3 ls s3://my-bucket

// 列出my-bucket中MyFolder的所有内容

$ aws s3 ls s3://my-bucket/MyFolder

// 删除 s3://my-bucket/MyFolder/MyFile.txt

$ aws s3 rm s3://my-bucket/MyFolder/MyFile.txt

// 删除 s3://my-bucket/MyFolder 和它的所有内容

$ aws s3 rm s3://my-bucket/MyFolder --recursive

当 –recursive 选项与 cp、mv 或 rm 一起用于目录/文件夹时,命令会遍历目录树,包括所有子目录 sync命令 sync 命令的形式如下。可能的源-目标组合有: 本地文件系统到 Amazon S3 Amazon S3 到本地文件系统 Amazon S3 到 Amazon S3

$ aws s3 sync <source> <target> [--options]

例如:本地文件系统到S3中:

$ aws s3 sync 本地目录/. s3://my-bucket/目录