是否可以将输入流传输到 RAR

是否可以将输入流传输到 RAR

我正在使用 RARLABS RAR.exe 来存档/备份我的服务器数据。我熟悉使用 RAR 创建存档并从文件夹中添加文件,但是如何将数据直接传输到存档中呢?

例如,在备份我的 MySQL 数据库时,我使用包含管道命令的 mysqldump 命令进入文本文件。最好跳过文件步骤,直接进入存档文件,使用类似以下语法:

mysqldump -uUserName -pPassword --all-databases > rar.exe newarchivename.rar

有人知道我所描述的或类似的事情是否有可能吗?

答案1

我联系了 RARLabs 支持并收到了回复。结果发现 RAR.EXE处理流式输入的方式与 gzip 的工作方式类似。您只需指定 -si 选项:

   -si[name]
     Read data from stdin (standard input), when creating
     an archive. Optional 'name' parameter allows to specify
     a file name of compressed stdin data in the created
     archive. If this parameter is missing, the name will be
     set to 'stdin'. This switch cannot be used with -v.

我为什么要使用 RAR 而不是 GZIP?GZIP 不具备在文件名上自动包含日期戳的功能。

因此,这里有一个关于我如何备份 MySQL 数据库信息的示例:

mysqldump --all-databases | rar a -siWordPressDB.sql -ag_MMMDDYYYY-HHMM WordPressDB.sql.rar

这将创建一个类似于以下名称的存档文件:

WordPressDB.sql_Feb242010-0938.rar

并包含一个文件:

WordPressDB.sql

很酷……

答案2

谢谢,这正是我所寻找的,这使得 rar 更加有用。

很好,我不知道它可以做到这一点(我的 rar 版本都不支持 -si 选项。是时候升级了) – James 2 月 24 日 19:07

该功能至少从 v3.71 开始可用

由于某种原因,该函数不在手册中。
您可以在 rar.txt 文件中找到此信息和更多信息。
(*nix)通常在 /usr/share/doc/rar(rar.txt 或 rar.txt.gz)中

相关内容