我编写了一个简单的脚本,偶尔将 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
”。
我做过如果我首先将容器导出到文件,然后使用同一文件运行命令,则它可以正常工作,但我想知道执行此操作的正确方法(如果有)。
谢谢!