Есть ли возможность потокового ввода в RAR
Я использую RARLABS RAR.exe для архивирования / резервного копирования данных моего сервера. Я знаком с использованием RAR для создания архива и добавления файлов из папки, но как насчет потоковой передачи данных непосредственно в архив?
Например, при резервном копировании баз данных MySQL я использую команду mysqldump, которая включает команду pipe в текстовый файл. Было бы неплохо пропустить шаг файла и перейти непосредственно в архивный файл, используя что-то вроде следующего синтаксиса:
mysqldump -uUserName -pPassword --all-databases > rar.exe newarchivename.rar
Кто-нибудь знает, возможно ли то, что я описал, или что-то подобное?
2 ответа
Я связался с поддержкой 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
Довольно круто...
Спасибо, именно то, что я ищу, это делает rar намного более полезным.
хорошо, не знал, что это могло бы сделать это (ни одна из моих версий rar не поддерживает опцию -si.. время для обновления) - Джеймс 24 февраля в 19:07
Эта функция по крайней мере доступна, начиная с v3.71
По какой-то причине этой функции нет в руководстве.
Вы можете найти эту информацию и многое другое в файле rar.txt.
(* nix) Обычно в /usr/share/doc/rar (rar.txt или rar.txt.gz)