Реклама на сайте Advertise with us

TAR и симлинки

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 12/08/15 в 00:10       Ответить с цитатойцитата 

Пытаюсь прикрутить к проекту бэкап, одна из директорий вынесена на SSD и симлинкой ln -s прикручена внутри доменной диреткории. Надо как-то заархивировать в tar.gz всё, включая содержимое этой директории, на корторую ведёт симлинка.
Ключи -H, -h(-L) делают какую-то хрень, они архивируют симлинку как файл, коотрый потом при обратном разархивировании тупо не кладёт все файлы на места.
Подскажите, как можно заархивировать содержимое симлинки, как буд-то это оычная дира, чтоб потом обратная разархиация на том же месте просто распихивала обратно в симлинке дерево файлов, на которое смотрит оная.

Последний раз редактировалось: S_Flash (12/08/15 в 11:16), всего редактировалось 1 раз

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 12/08/15 в 00:48       Ответить с цитатойцитата 

симлинк - это ссылка. Соответственно в архив ссылка и уходит. Добавь в бакап нужную директорию отдельно, это наиболее правильное решение.
Сколько бакапов видел, ни один не сохраняет содержимое симлинка.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

0
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 12/08/15 в 06:01       Ответить с цитатойцитата 

Stek писал:
Добавь в бакап нужную директорию отдельно

Узнать директорию можно только зная куда ведёт симлинк..


Stek писал:
симлинк - это ссылка. Соответственно в архив ссылка и уходит

Но по всем внешним признакам он снаружи может вести себя просто как директория.
Плавает как утка, крякакет как утка, значит это утка..


Stek писал:
Сколько бакапов видел, ни один не сохраняет содержимое симлинка.

tar поддерживает следование симлинку, но там какой-то секрет с тем, как он следует.. Вот с этим и не могу разобраться. + разные версии tar подкидывают проблем.

0
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 12/08/15 в 06:40       Ответить с цитатойцитата 

Вариант1. Поскольку имя директории, которая может быть симлинкой или дирой, есть в конфиге проекта, то я могу, теретически, заархивировать только её содержимое. Архивирую не весть проект целиком, а выборочно:
Код:
tar -czf archive.t.gz ./dir/*.* ./остальные_директории_проекта/

в данном случае, по идее, уже не важно dir - это симлинка или директория. Но теперь проблема, как соблюсти нужную иерархию директорий. Всё содержимое dir пойдёт в корень архива. Получится каша. Если только нет возможности как-то на лету создать внутри создаваемого архива диреткорию и указать укладывать всё в неё!

Вариант2. Перед архивацией копировать содержимое "проблемной" диретктории во временную папку, используя cp. Но, помимо геморности, которая сопутствует всем решениям с временными папками, в данном варианте так же искажается дерево иерархия директорий, ведь временная дира в силу совпадения имени с симлинкой будет создана и заархивирована с временным же путём.

Нарушая иерархию директорий при создании бэкапа, усложняю экстраткт при восстановлении.

0
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 12/08/15 в 11:07       Ответить с цитатойцитата 

пакуешь с параметром "-h". так в архив загоняется то, на что указывают симлинки

распаковываешь тоже с параметром "-h". так при распаковке существующие симлинки-каталоги не удаляются.

при распаковке бекапа соотв симлинк должен существовать!!

например у тебя тот самый симлинк лежит внутри проекта по пути a/b/c/ssddir и заспаковать архив хочешь в каталог xxx. внутри xxx создаешь путь a/b/c и в "c" создаешь симлинк ssddir. после этого распаковываешь архив поверх xxx с параметом "-h".

apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only

9
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »