Я использую RARLABS RAR.exe для архивирования / резервного копирования данных моего сервера. Я знаком с использованием RAR для создания архива и добавления файлов из папки, но как насчет потоковой передачи данных непосредственно в архив?
Например, при резервном копировании баз данных MySQL я использую команду mysqldump, которая включает команду конвейера в текстовый файл. Было бы неплохо пропустить этап файла и перейти непосредственно к файлу архива, используя что-то вроде следующего синтаксиса:
mysqldump -uUserName -pPassword --all-databases > rar.exe newarchivename.rar
Кто-нибудь знает, возможно ли то, что я описал, или что-то подобное?
Я связался со службой поддержки 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)