我需要做一些堆转储,如果有一种简单(快速(的方法来尽可能无缝地获取文件,那就太好了。
目前的做法是:
- 创建文件
- 可选:如果未知,则将SSH密钥上载到EC2实例(取决于使用的安全模型(
- 打开SSH会话(不使用ASM,因为它有一些OsX缺陷(
- 将docker容器文件复制到EC2实例
- 将文件SCP到本地机器
- 清理
对于获取单个文件来说,这似乎非常复杂。有更直接的方法吗?由于这是一个随需应变的用例,我可以使用手动AWS控制台的方式,也可以使用更方便的工具。THX
如果您想要最简单的方法,那么只需执行cat /some/file/here
命令,而不是bash并将输出发送到本地机器上的文件。然后从本地文件的开头删除初始aws-cli消息,例如:
The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.
Starting session with SessionId: ecs-execute-command-<some session id>
This session is encrypted using AWS KMS.
如果是二进制文件,则将其保存为txt文件,删除上面提到的初始cli输出,并使用二进制扩展名重命名它。示例:
aws ecs execute-command --region <your region> --cluster <your cluster> --task <your task ID> --container <your container> --command "cat /tmp/reportBatch.zip" --interactive >> ~/reportBatch.txt
对于这种方法,您只需要访问您的ECS实例并允许在其上运行命令。