The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"named сменил дирректорию а оно ругается..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"named сменил дирректорию а оно ругается..."  
Сообщение от mg (??) on 14-Ноя-06, 00:27 
Господа знатоки файловых систем
Кто объяснит мне такое явление
Была диреткория /var/named в котрой named писал какие-то свои файлы и прочую фигню
Я скопировал всё что у него там было в директорию /usr/local/var/named
Затем создал линк на  /usr/local/var/named в /var/named , т.е. теперь набрав
cd /var/named попадаем в /usr/local/var/named

Теперь запускаю named и получаю такое
devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
В трёх экземплярах! При этом named прекрансо стартует и работает.
Я конечно понимаю у него была директория /var/named/ расположенная на устройстве типа devfs, но посути какая ему разница куда и что писать?
Кроме того я заметил что он раньше монтировал в свою диреткорию /var/named/dev что-то типа devfs т.е. моунт выдавал такое
devfs on /var/named/dev (devfs, local)
теперь при хапуске named он уже такое не монтирует но при этом прекрасно работает!
Кто может объснить что с ним ?
И вообще реально ли заставиьт его монтировать devfs в директорию по ссылке т.е. в /usr/local/var/named/dev доступ к кторой осущемствляется через ссылку /var/named ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

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


1. "named сменил дирректорию а оно ругается..."  
Сообщение от mg (??) on 14-Ноя-06, 02:35 
Ладно, каюсь, сделал глупость, после того как перенёс файлы из /var/named в /usr/local/var/named хотел удалить всё в /var/named но там не удалялась директория /var/named/dev
Проверив по mount и уведив что она смантирована как devfs я её отмантировал обычной командой umount /var/named/dev после чего я саму директорию удалил. (ну не подумал просто :) ) Теперь при старте named пытается сделать такое
devfs -m /var/named/dev rule ...
devfs -m /var/named/dev rule ...
devfs -m /var/named/dev rule ...
ну и соответственно выкидывает трираза на каждую из этих команд сообщение
devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device

Я так понимаю что остались какие-то правила ни за чем не закреплённые но из-за которых не могут быть добавлены новые, так ил нет?
И вопрос как теперь удалить эти правила?

пробовал такое
devfs rule show
devfs rule showsets
но они ничего не выводят на экран...

Можно ли как-то решить эту проблему не перезагружая компьютер?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "named сменил дирректорию а оно ругается..."  
Сообщение от Skif (ok) on 14-Ноя-06, 03:39 
>Ладно, каюсь, сделал глупость, после того как перенёс файлы из /var/named в
>/usr/local/var/named хотел удалить всё в /var/named но там не удалялась директория
>/var/named/dev
>Проверив по mount и уведив что она смантирована как devfs я её
>отмантировал обычной командой umount /var/named/dev после чего я саму директорию удалил.
>(ну не подумал просто :) ) Теперь при старте named пытается
>сделать такое
>devfs -m /var/named/dev rule ...
>devfs -m /var/named/dev rule ...
>devfs -m /var/named/dev rule ...
>ну и соответственно выкидывает трираза на каждую из этих команд сообщение
>devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
>devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
>devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
>
>Я так понимаю что остались какие-то правила ни за чем не закреплённые
>но из-за которых не могут быть добавлены новые, так ил нет?
>
>И вопрос как теперь удалить эти правила?
>
>пробовал такое
>devfs rule show
>devfs rule showsets
>но они ничего не выводят на экран...
>
>Можно ли как-то решить эту проблему не перезагружая компьютер?

Смотрим /etc/rc.d/named и вникаем:

chroot_autoupdate()
{
        # Create (or update) the chroot directory structure
        #
        if [ -f /etc/mtree/BIND.chroot.dist ]; then
                mtree -deU -f /etc/mtree/BIND.chroot.dist \
                    -p ${named_chrootdir}
        else
                warn "/etc/mtree/BIND.chroot.dist missing,"
                warn "chroot directory structure not updated"
        fi

        # Create /etc/namedb symlink
        #
        if [ ! -L /etc/namedb ]; then
                if [ -d /etc/namedb ]; then
                        warn "named chroot: /etc/namedb is a directory!"
                elif [ -e /etc/namedb ]; then
                        warn "named chroot: /etc/namedb exists!"
                else
                        ln -s ${named_chrootdir}/etc/namedb /etc/namedb
                fi
        else
                # Make sure it points to the right place.
                ln -shf ${named_chrootdir}/etc/namedb /etc/namedb

        fi

        # Mount a devfs in the chroot directory if needed
        #
        if [ ! -c ${named_chrootdir}/dev/random -o \
            ! -c ${named_chrootdir}/dev/null ]; then
                umount ${named_chrootdir}/dev 2>/dev/null
                mount_devfs devfs ${named_chrootdir}/dev
        fi
        devfs -m ${named_chrootdir}/dev rule apply hide
        devfs -m ${named_chrootdir}/dev rule apply path null unhide
        devfs -m ${named_chrootdir}/dev rule apply path random unhide


А для простоты - лучше смените chroot окружение для bind и не мучте его и себя. все это элементарно прописывется в /etc/rc.conf детальнее смотрите ?etc/defaults/rc.conf

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "named сменил дирректорию а оно ругается..."  
Сообщение от mg (??) on 14-Ноя-06, 04:43 
>
>Смотрим /etc/rc.d/named и вникаем:
>
>chroot_autoupdate()
>{
>        # Create (or update)
>the chroot directory structure
>        #
>        if [ -f /etc/mtree/BIND.chroot.dist
>]; then
>            
>    mtree -deU -f /etc/mtree/BIND.chroot.dist \
>            
>        -p ${named_chrootdir}
>        else
>            
>    warn "/etc/mtree/BIND.chroot.dist missing,"
>            
>    warn "chroot directory structure not updated"
>        fi
>
>        # Create /etc/namedb symlink
>
>        #
>        if [ ! -L
>/etc/namedb ]; then
>            
>    if [ -d /etc/namedb ]; then
>            
>          
> warn "named chroot: /etc/namedb is a directory!"
>            
>    elif [ -e /etc/namedb ]; then
>            
>          
> warn "named chroot: /etc/namedb exists!"
>            
>    else
>            
>          
> ln -s ${named_chrootdir}/etc/namedb /etc/namedb
>            
>    fi
>        else
>            
>    # Make sure it points to the
>right place.
>            
>    ln -shf ${named_chrootdir}/etc/namedb /etc/namedb
>
>        fi
>
>        # Mount a devfs
>in the chroot directory if needed
>        #
>        if [ ! -c
>${named_chrootdir}/dev/random -o \
>            
>! -c ${named_chrootdir}/dev/null ]; then
>                umount ${named_chrootdir}/dev 2>/dev/null
>            
>    mount_devfs devfs ${named_chrootdir}/dev
>        fi
>        devfs -m ${named_chrootdir}/dev rule
>apply hide
>        devfs -m ${named_chrootdir}/dev rule
>apply path null unhide
>        devfs -m ${named_chrootdir}/dev rule
>apply path random unhide
>
>
>А для простоты - лучше смените chroot окружение для bind и не
>мучте его и себя. все это элементарно прописывется в /etc/rc.conf детальнее
>смотрите ?etc/defaults/rc.conf

Ну, файл я этот уже смотрел, а вот за /etc/defaults/rc.conf спасибо, я думал там какие-то примитивные настройки, а там оказывается почти все возможные настройки :) .
Я прописал в rc.conf
named_chrootdir="/usr/local/var/named"
named_chroot_autoupdate="YES"
т.е. по идее должен был сработать кусок скрипта по апдейту chroot, и он отработал, так как в логах нету ругательств, но есть всё те же старые ругательства при запуске
devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
devfs rule: ioctl DEVFSIO_RAPPLY: Inappropriate ioctl for device
Это ругается на строки
        devfs -m ${named_chrootdir}/dev rule apply hide
        devfs -m ${named_chrootdir}/dev rule apply path null unhide
        devfs -m ${named_chrootdir}/dev rule apply path random unhide
Т.е. не сработала команда в /etc/rc.d/named
mount_devfs devfs ${named_chrootdir}/dev
а не сработала она потому что не выполнилось условие
        if [ ! -c ${named_chrootdir}/dev/random -o \
            ! -c ${named_chrootdir}/dev/null ]; then
А условие не сработало потому что существуют файлы устройств в ${named_chrootdir}/dev  т.е. в /usr/local/var/named/dev ,  проверяю, реально существуют :) Оказывается когда я переносил файлы из /var/named в /usr/local/var/named я скопировал и устройства :), поэтому named проверял что такие устройства уже есть в директории ${named_chrootdir}/dev и ничего не монтировал, а раз ничего не смонтировано то строчки
        devfs -m ${named_chrootdir}/dev rule apply hide
        devfs -m ${named_chrootdir}/dev rule apply path null unhide
        devfs -m ${named_chrootdir}/dev rule apply path random unhide
работатть не будут :) так как ${named_chrootdir}/dev - не является devfs :) потму что в него ничего не смонтировано :)

Вообщем спасибо  Skif натолкнул на правильно решение :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "named сменил дирректорию а оно ругается..."  
Сообщение от mg (??) on 14-Ноя-06, 05:04 
И ещё, всё же скрипт не совсем верно написан, зачем выполнять строки
        devfs -m ${named_chrootdir}/dev rule apply hide
        devfs -m ${named_chrootdir}/dev rule apply path null unhide
        devfs -m ${named_chrootdir}/dev rule apply path random unhide
если ничего не смонтировано?
Я бы его подправил так

if [ ! -c ${named_chrootdir}/dev/random -o \
            ! -c ${named_chrootdir}/dev/null ]; then
umount ${named_chrootdir}/dev 2>/dev/null
mount_devfs devfs ${named_chrootdir}/dev
        devfs -m ${named_chrootdir}/dev rule apply hide
        devfs -m ${named_chrootdir}/dev rule apply path null unhide
        devfs -m ${named_chrootdir}/dev rule apply path random unhide
fi


Или ещё лучше, более универсально, так

mount | grep "${named_chrootdir}/dev"
if [ $? -eq 0 ]; then
     mount_devfs devfs ${named_chrootdir}/dev
     if [ $? -eq 0 ]; then
        devfs -m ${named_chrootdir}/dev rule apply hide
        devfs -m ${named_chrootdir}/dev rule apply path null unhide
        devfs -m ${named_chrootdir}/dev rule apply path random unhide
     else
        warn "named chroot: Cann't mount_devfs ${named_chrootdir}/dev !"
     fi
fi

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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