我需要进行一些堆转储,如果有一种简单(快速)的方法来使文件尽可能无缝,那就太好了。
目前的做法是:
对于获取单个文件来说,这似乎非常复杂。有更直接的方法吗?由于这是一个按需用例,我可以使用手动 AWS 控制台方式或使用工具来更方便地完成此操作。谢谢
如果您想要最简单的方法,那么您只需执行
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实例并允许在其上运行命令即可。
你可以尝试这个解决方案(它对我有用)
步骤1
使用此命令进入容器
aws ecs execute-command --region <your region> --cluster <your cluster> --task <your task ID> --container <your container> --command "/bin/sh" --interactive
第2步
为您的zip文件创建base64并将其保存到文件中,就像那样
base64 file.zip >> out.txt
然后将文件内容复制到剪贴板中
第3步
使用此网站解码base64 https://base64.guru/converter/decode/file然后您可以下载您的zip文件
或使用此命令解码:
base64 --decode out.txt > file.zip
希望它对您有用,请告诉我。