LINUX.ORG.RU

Вопрос по команде ln. Что пропустил?


0

0
Необходимо создать жесткую ссылку с директории /var/log/ на /mailstorage/mailarchive/

Пишу: ln -d /var/log/ /mailstorage/mailarchive/

выдает Следующее: ln: creating hard link `/mailstorage/mailarchive/log' => `/var/log/': Invalid cross-device link

Директории находятся в разделах на разных жестких дисках...

Что я и где пропустил?

★☆
Ответ на: комментарий от delilen
жёсткие только на одном разделе
anonymous
()
Ответ на: комментарий от delilen
И если я правилно понимаю, то файлы будут писаться и туда и туда... а это не есть то, что нужно... просто на варе место закончилось...
delilen ★☆
() автор топика
Ответ на: комментарий от delilen
файлы будут писаться туда куда ссылка символическая указывает :) в саму ссылку не будут :)
anonymous
()
Ответ на: комментарий от anonymous
ага. то есть ситуация.

Надо: перенести /var/log/ на другой раздел (не перегружая комп) на другой раздел. Для этого:

1. переместить (mv) /var/log на другой раздел. 2. Создать ссылку из другого раздела на /var/log (ln -sd /mailstorage/mailarhive/log /var)

Все правильно?

delilen ★☆
() автор топика
Ответ на: комментарий от delilen
А что у тебя в /var/log только логи почты?:)
Вообще я так понимаю, что примерно так:

init 1
rsync -a /var/log/ /other/path/log
rm -fr /var/log/
ln -s /other/path/log /var/log

или

mv /var/log/biglogfiles /other/path/
ln -s /other/path/biglogfile1 /var/log
ln -s /other/path/biglogfile2 /var/log
anonymous
()
Ответ на: комментарий от anonymous
>А что у тебя в /var/log только логи почты?:)

нет есть еще немного, но в основном, да.. почта...

на файлы я думал ссылки сделать, но там еще старые логи идут ежедневно в архив... в итоге выходит log.file log.file.1 log.file.1.gz log.file.2.gz ..... и т.д. все это делает хитрожопый скрипт, в котором разбираться желания нет. итак что, имхо легче и быстрее дернуть всю директорию.

delilen ★☆
() автор топика
#cp /var/log/ /mailstorage/mailarchive/
#mv /var/log/ /var/log1
#ln -ds /mailstorage/mailarchive/log/ /var
#rm -rf /var/log1

В общем сделал так... надеюсь сработает...
delilen ★☆
() автор топика
Ответ на: комментарий от anonymous
> init 1
> ...

> rm -fr /var/log/


Лучше не удалять, а переименовать, или переместить куда-нибудь в /tmp, если он находится на одном разделе с /var/log. Тогда можно избежать init 1, ограничившись просто поочерёдным перезапуском демонов, пишущих в /var/log.

Lumi ★★★★★
()
Ответ на: комментарий от delilen
> В общем сделал так... надеюсь сработает...

Посмотри права в /mailstorage/mailarchive/log/
Lumi ★★★★★
()

Жесткие ссылки

Жесткие ссылки живут строго в пределах одного раздела. Нормальное объяснение есть в книжке по юниксу.

Краткое объяснение таково: данные о файле (права, флаги, размещение секторов на диске) хранятся в структуре, называемой inode. Директория -- таблица вида (номер inode, имя). Хардлинк -- это просто другое имя с тем же inode (убедитесь при помощи ls -i). Нумерация inode на каждом разделе своя. Номер устройства в директории не предусмотрен, ибо возникает слишком много головной боли (например, при монтировании/отмонтировании).
lodin ★★★★
()
Права проверил. Syslog перезапустил... Вроде все работает.
delilen ★☆
() автор топика
> Директории находятся в разделах на разных жестких дисках...

Да... Вы хотите угробить файловую систему? Мало того, что вообще категорически не рекомендуются hard links на каталоги, так еще и на разных файловых системах... POSIX, кстати, это вообще запрещает. Чем soft link не устраивает?

anonymous
()
Ответ на: комментарий от delilen
Учите матчасть :) Жёсткие ссылки это просто другие имена для тех же файлов (то есть два инода для одного файла). Поэтому бессмысленно говорить о жёсткой ссылке на файл в другом разделе.
lv ★★
()
Ответ на: комментарий от lv
> Учите матчасть :) Жёсткие ссылки это просто другие имена для тех же файлов (то есть два инода для одного файла).

Два инода? Учите матчасть :) Инод у файла всегда один.

bigbit ★★★★★
()
Ответ на: комментарий от bigbit
> Два инода? Учите матчасть :) Инод у файла всегда один.

Эбм.. пошёл убиваться апстену.. а потом спать :) - ну конечно же инод один, имён несколько, а в иноде - количество имён, когда убивается последнее - файл считается удалённым.
lv ★★
()
Ответ на: комментарий от lv
>Жёсткие ссылки это просто другие имена для тех же файлов

ну и? знаю, просто думал что можно кинуть на другой раздел...

delilen ★☆
() автор топика
Ответ на: комментарий от delilen
> ну и? знаю, просто думал что можно кинуть на другой раздел...

Ну просто когда инод один, то как вы представляете "кинуть на другой" раздел? Инод ведь может указывать на файл только в этом разделе..
lv ★★
()
Ответ на: комментарий от lv
.. а вообще, это был ответ на "что и где я пропустил" в вашем первом посте. :)
lv ★★
()
Ответ на: комментарий от lv
Да я понял уже. Просто недостаточно знал принцип работы команды. Да дурак был, осознал, исправился =)
delilen ★☆
() автор топика
Ответ на: комментарий от anonymous
Кстати, есть ещё такая хохма как mount --bind -- это если например в чрут нужно каталог засунуть. В качестве замены hard link вполне сойдет.

man mount
lodin ★★★★
()
Сами себе ответили:

> Вопрос по команде ln. Что пропустил?

> Директории находятся в разделах на разных жестких дисках...

Жесткие ссылки создаются только в пределах одного раздела. Это по сути второе имя для того же инода.

учим матчасть ;)

papay ★★★
()
Ответ на: комментарий от papay
Пардон, что повторил уже сказанное. Был занят по работе, а когда дошли руки ответить, тут трэйд уже другой,,,, :)
papay ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.