将 ntbackup 直接输出/管道到 GPG

将 ntbackup 直接输出/管道到 GPG

目前,我们可以在批处理脚本中通过两个独立的步骤使用 ntbackup 和 GPG 执行并加密 Windows 备份,如下所示:

ntbackup backup "@selection_file.bks" /f "backup_file.bak"
gpg --recipient "recipient" --encrypt "backup_file.bak" --output "encrypted_file" --yes --batch 

我想知道是否有办法结合这些步骤将备份直接输出到 GPG,而无需创建中间未加密的备份文件?

为了澄清起见,我正在寻找类似标准输入重定向或管道的东西

prog.exe | prog2.exe

可以在命令行中使用 GPG。感谢您的时间。

答案1

正如 Matt_Simmons 所清晰解释的那样,ntbackup 不会输出到 stdout,因此尝试使用它是注定要失败的。

但是,gpg将要如果您使用(unix 约定)‘-’作为输入文件,则做正确的事情。

因此,现在您需要一种能够“轻松选择和排除单个文件”的文件收集方法,而 tar 完全符合这一要求(请参阅 -T 和 -X 标志)。现代版本甚至还会通过 -z (gzip) 和 -j (bzip) 标志进行压缩。

当然,你可以用管道把它们绑在一起:

tar -cjf - /dir/to/backup -X .mp3 | gpg --encrypt - --output "encrypted_backup.enc"

答案2

我认为您无法做到这一点。但作为替代方案,您可能可以备份到已安装的 truecrypt 卷。

答案3

好吧,这就是为什么它行不通的原因。

您尝试做的是让 ntbackup 将备份数据传输到标准输出而不是文件。问题是 ntbackup 无法执行此操作。必须为 ntbackup 提供输出数据的文件名,但不幸的是,在 Windows 中没有与 /dev/stdin 或 /dev/stdout 等效的文件名。

为了使它工作,您需要让 ntbackup 将原始备份数据打印到屏幕上。据我所知(或通过搜索找到的)没有任何文档暗示这是可能的。它不是为此编写的。抱歉。

答案4

您可能可以使用 FIFO 文件作为管道。虽然我不太清楚如何在 Windows 上创建这样的文件。但这通常是它们的用途,因为您不能使用 STDOUT 进行管道传输。

相关内容