通过 ssh 将 Docker 容器备份到 tar.zst 文件

通过 ssh 将 Docker 容器备份到 tar.zst 文件

我编写了一个简单的脚本,偶尔将 Docker 容器导出到远程 NAS 进行备份。

我正在尝试学习如何在脚本中使用更传统的 Unix 工具,因此我想使用单个命令(带有管道)来完成此操作,该命令执行以下操作:

  • 导出容器

  • 用 ZSTD 压缩它

  • 通过 SSH 连接到 NAS

  • 将容器文件 (tar.zst) 输出到目标。

我提出了以下内容(摘要):

docker export $CONTAINER | pv |  zstd -18 | ssh $nasuser@$nasaddress  "cat > /remote/destination/directory/$CONTAINER.tar.zst"

然而,这个命令失败了 -cat似乎读取二进制输入并失败,抱怨“ no such file or directory”。

做过如果我首先将容器导出到文件,然后使用同一文件运行命令,则它可以正常工作,但我想知道执行此操作的正确方法(如果有)。

谢谢!

相关内容