首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用s3cmd动态上传压缩和上传到s3

如何使用s3cmd动态上传压缩和上传到s3
EN

Stack Overflow用户
提问于 2014-10-04 19:57:52
回答 2查看 2.1K关注 0票数 1

我刚刚发现我的盒子里只剩下5%的硬盘空间,我还有差不多250 to的mysql文件要发送给s3。我们已经从mysql迁移到了NoSQL,并且目前没有使用mysql。但是,我希望在迁移之前保留旧数据。

问题是,在将文件发送到那里之前,我不能只在循环中对它们进行tar。

代码语言:javascript
运行
复制
for i in * ; do cat i | gzip -9c | s3cmd put - s3://mybudcket/mybackups/$i.gz; done

有没有实现这一点的方法?

操作系统为ubuntu 12.04,s3cmd版本为1.0.0

谢谢你的建议。

EN

回答 2

Stack Overflow用户

发布于 2015-11-09 14:56:28

或者,您可以使用https://github.com/minio/mc。Minio Client aka mc是用Golang编写的,在Apache License version2下发布。

它为用户实现了mc pipe命令,以便直接将数据流式传输到亚马逊S3。mc pipe还可以并行地通过管道到达多个目的地。在内部,mc pig流式传输输出,并并行执行多部分上传。

代码语言:javascript
运行
复制
$ mc pipe
NAME:
   mc pipe - Write contents of stdin to files. Pipe is the opposite of cat command.

USAGE:
   mc pipe TARGET [TARGET...]

示例

代码语言:javascript
运行
复制
#!/bin/bash

for i in *; do
   mc cat $i | gzip -9c | mc pipe https://s3.amazonaws.com/mybudcket/mybackups/$i.gz
done

如果您可以看到,mc还实现了mc cat命令:-)。

票数 3
EN

Stack Overflow用户

发布于 2015-03-03 13:45:17

允许标准输入到S3的功能是在2014年2月添加到主分支中的,所以我猜一定要确保你的版本比这个版本更新?版本1.0.0来自2011年以及之前的版本,当前(在撰写本文时)是1.5.2。您可能需要更新您的s3cmd版本

除此之外,根据https://github.com/s3tools/s3cmd/issues/270的说法,这应该是可行的,只是你的"do cat i“没有$符号来表示它是一个变量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26192577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档