The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Как сделать архив архивов? (crond, tar., tar.gz)?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Резервное копирование / Linux)
Изначальное сообщение [ Отслеживать ]

"Как сделать архив архивов? (crond, tar., tar.gz)?"  –1 +/
Сообщение от Ozymandis email(ok) on 13-Окт-17, 09:29 

Всем Привет!

Подскажите как грамотнее сделать такой скрипт:

Есть папка /Data, в ней папки с данными юзеров


/Data/user1,
/Data/user2,
/Data/user3
итд

Хочу сделать так, чтобы был один архив
Data.tar.gz и в нем архивы:


/user1.tar.gz
/user2.tar.gz
/user3.tar.gz

то есть получается архив архивов

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как сделать архив архивов? (crond, tar., tar.gz)?"  +/
Сообщение от qwertykma (ok) on 13-Окт-17, 09:58 
Не имея ответа на вопрос, хочу узнать причину, зачем вам это нужно? очень любопытно!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Как сделать архив архивов? (crond, tar., tar.gz)?"  +/
Сообщение от Ozymandis email(ok) on 13-Окт-17, 14:14 
> Не имея ответа на вопрос, хочу узнать причину, зачем вам это нужно?
> очень любопытно!

Для бэкапа, идея построения такого типа архива, возникла из-за большого объема данных, очень много мелких файлов в папках юзеров, в основном это письма.

Все папки в сумме имеют размер ~250 gb

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "Как сделать архив архивов? (crond, tar., tar.gz)?"  +/
Сообщение от ACCA (ok) on 13-Окт-17, 22:25 
> Для бэкапа, идея построения такого типа архива, возникла из-за большого объема данных,
> очень много мелких файлов в папках юзеров, в основном это письма.

Бэкап делают совсем не так. Подумай вот над какими задачами
  1. в приличных заведениях бэкап делают каждый день
  2. бэкап предполагает восстановление
  3. иногда всего одного файла
  4. иногда за позапрошлый год
  5. иногда неизвестно, за какой день, так что нужны все известные версии

Поставь нормальный софт для бэкапа, настрой и проверь результаты.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Как сделать архив архивов? (crond, tar., tar.gz)?"  +/
Сообщение от PavelR (??) on 13-Окт-17, 22:50 
>> Не имея ответа на вопрос, хочу узнать причину, зачем вам это нужно?
>> очень любопытно!
> Для бэкапа, идея построения такого типа архива, возникла из-за большого объема данных,
> очень много мелких файлов в папках юзеров, в основном это письма.
> Все папки в сумме имеют размер ~250 gb

И сколько резервных копий вы планируете хранить, сколько за какой период?

Вероятно, подсказка: бывает например такая схема:

7 ежедневных за последнюю неделю
4 недельных за последний месяц
12 помесячных за последний год

~25 штук по 250Гб = 6.5Тб, ну пусть сархивируем немного....

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

2. "Как сделать архив архивов? (crond, tar., tar.gz)?"  +1 +/
Сообщение от Dr. Manhattan on 13-Окт-17, 11:57 
>[оверквотинг удален]
> итд
>
> Хочу сделать так, чтобы был один архив
> Data.tar.gz и в нем архивы:
>
 
> /user1.tar.gz
> /user2.tar.gz
> /user3.tar.gz
>

> то есть получается архив архивов

Какая коварная коварность.. Вы хотите сжать данные юзеров дважды..чтоб им было больнее...
скрипт на шелле Вам поможет. сперва в цикле проходите по каталогам сжимая их.. потом сжимаете то что получилось...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Как сделать архив архивов? (crond, tar., tar.gz)?"  +/
Сообщение от Ozymandis email(ok) on 13-Окт-17, 14:14 
>[оверквотинг удален]
>> Data.tar.gz и в нем архивы:
>>
 
>> /user1.tar.gz
>> /user2.tar.gz
>> /user3.tar.gz
>>

>> то есть получается архив архивов
> Какая коварная коварность.. Вы хотите сжать данные юзеров дважды..чтоб им было больнее...
> скрипт на шелле Вам поможет. сперва в цикле проходите по каталогам сжимая
> их.. потом сжимаете то что получилось...

Это для бэкапов, никакой боли для юзеров))

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Как сделать архив архивов? (crond, tar., tar.gz)?"  +/
Сообщение от Andrey (??) on 13-Окт-17, 15:02 
>[оверквотинг удален]
>>>
 
>>> /user1.tar.gz
>>> /user2.tar.gz
>>> /user3.tar.gz
>>>

>>> то есть получается архив архивов
>> Какая коварная коварность.. Вы хотите сжать данные юзеров дважды..чтоб им было больнее...
>> скрипт на шелле Вам поможет. сперва в цикле проходите по каталогам сжимая
>> их.. потом сжимаете то что получилось...
> Это для бэкапов, никакой боли для юзеров))

Сначала tar-ить всех оптом, потом gzip-ить не подойдет? Чего-ж gzip на gzip накладывать.
Если есть свободные мощности и средства - пустите их на благотворительность или на майнинг биткойнов.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Как сделать архив архивов? (crond, tar., tar.gz)?"  +/
Сообщение от Pahanivo (ok) on 13-Окт-17, 22:23 
> Сначала tar-ить всех оптом, потом gzip-ить не подойдет? Чего-ж gzip на gzip
> накладывать.
> Если есть свободные мощности и средства - пустите их на благотворительность или
> на майнинг биткойнов.

тогда уж сначала зипить, потом тарить. по крайней мере профит по объему I/O.
а еще лучше потом сверху закриптить и пасс прое....терять.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

11. "Как сделать архив архивов? (crond, tar., tar.gz)?"  +/
Сообщение от Аноним (??) on 15-Окт-17, 14:42 
Все проблемы от технической безграмотности. Она в том числе мешает правильно задать вопрос.

Вы уже делаете полный бэкап данных юзеров и вам требуется иметь возможность без проблем отдать каждому юзеру его папку в виде архива. Угадал?

При этом вы похоже не знаете, что тар умеет распаковывать только нужные вам файлы, а не все сразу.

Решение 1:

У вас уже есть архив, в котором лежат папки с данными юзеров.

Когда вам надо отдать архив с данными юзеру user1, вы делаете следующую вещь

tar -xzf all.tar.gz /Data/user1 | tar -czf user1.tar.gz

Это долго, но терпимо, если редко надо.

Решение 2:

Вы делаете бэкап каждого юзера в отдельный файл и не имеете общего архива вообще.

find /home -type d -maxdepth 0 | grep user | xargs -l -I{} tar -czf /backups/{}.tar.gz -C /home {}

Для восстановления всех юзеров будет достаточно сделать
for f in /backups/*.tar.gz ; do tar -xf "$f" -C /home ; done

PS команды не проверял

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру