【问题标题】:dd a partition pipe it to gzip and pipe that to an aws bucket将分区管道添加到 gzip 并将其管道传输到 aws 存储桶
【发布时间】:2017-08-23 07:26:40
【问题描述】:

我一直在尝试调整以下单行以将其分配到dd 分区,gzip 并将其复制到 s3 存储桶。然而,经过无数次尝试,它仍然没有任何作用

sudo dd if=/dev/vg0/mdb-snap-00 | gzip | aws s3 cp - s3://backup-bucket/backup.gz

我错过了什么?

【问题讨论】:

  • pv (pipe viewer) 是一个方便的工具,可以查看管道中的进度。安装它并像这样使用它:sudo dd if=/dev/vg0/mdb-snap-00 | pv | gzip | pv |aws s3 cp - s3://backup-bucket/backup.gz
  • 很棒的工具!谢谢。我正在尝试。
  • 我认为问题可能出在gzip 命令上,因为您在stdout 上编写压缩输出(为此,您需要添加标志gzip -fc)。但是,我不知道下面的aws 命令是否需要压缩的标准输入或文件名。
  • aws 可以使用任何类型的流@hek2mgl,使用 pv 我发现 dd 尝试获取整个磁盘(225G)而不是使用过的(362M)的块副本,导致no space left on disk 错误,我还发现我的 aws cp 命令在 CreateMultiPartUpload 上失败,这可能没有启用。我现在的问题似乎是创建的快照的大小是整个分区的大小,而不是我传递给 lvcreate 362M 的大小,这很奇怪,但解释了这一切。为此,我在 unix stackexchange 上提出了一个新问题。

标签: bash amazon-s3 gzip dd


【解决方案1】:

在 gzip 中使用 -c 标志

来自手册页:

-c --stdout --to-stdout
Write output on standard output; keep original files unchanged.  If there are several input files, the output consists of a sequence of independently compressed members. To obtain better compression, concatenate all input files before compressing them.

那么,

sudo dd if=/dev/vg0/mdb-snap-00 | gzip -c | aws s3 cp - s3://backup-bucket/backup.img.gz

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 2016-01-14
    • 2023-04-01
    • 2012-03-19
    • 1970-01-01
    • 2020-01-22
    • 2019-04-22
    相关资源
    最近更新 更多