Недавно пришлось повторять эту процедуру (домашние директории переехали ещё раз), поэтому некоторые дополнения.
Во-первых, спасибо всем высказавшим своё мнение, особенно - Владимиру Косинову, советом которого я и пользовался оба раза. (NDS Import-Export я запускал из ConsoleOne с лабораторного сервера NetWare6SP3, поэтому дальнейшие замечания относятся именно к этой версии)
Во-вторых, обнаружился небольшой глюк (в первый раз он мне показался случайностью, со второго раза найдена закономерность). Действительно, в экспорт-файле домашние директории имеют вид:
cn=SEREVR1_HOME,ou=Servers,o=MMM#0#Home\Pupkin
Однако, если имя самой директории начинается с двух букв, каждая из которых в диапазоне от
A до
F, то при последующем импорте они вместе с предшествующим им символом обратной косой черты воспринимаются как HEX-цифры, в результате чего после импорта эти имена оказываются "покорёженными" (причём ещё и с какими-то "хвостами" в конце). Обойти это мне так и не удалось: описанное в стандарте (RFC2253) экранирование путём удвоения обратной косой черты приводит к тому, что и импортируется именно удвоенная косая, а прочие манипуляции (вроде "\5C") косую черту импортируют правильно, но "хвост" в конце добавляется всё равно.
Пришлось после импорта потом просто некоторых пользователей поправить вручную.
В-третьих, сэкпортировать только то, что надо, мне тоже не удалось. Поскольку меня интересовали только пользователи, у которых домашняя директория прописана, причём эта домашняя директория находится именно в указанном месте, то все остальные мне не были нужны. Однако составленный по всем правилам (RFC2254) фильтр
(&(objectclass=user)(homeDirectory=cn=SEREVR1_HOME,ou=Servers,o=MMM#0#Home*))
не возвращал ни одной записи. Зато отлично работал фильтр
(&(objectclass=user)(homeDirectory=*))
который перечислял только тех пользователей, у которых домашняя директория вообще определена. Но, поскольку из таковых у нас большинство было именно на "передвигаемом" сервере, то вырезать ненужных вручную оказалось несложно.
В-четвёртых, сам "переезд" информации на другой сервер с перераздачей прав/атрибутов/владельцев/квот был выполнен следующим образом. Сначала при помощи ArcServe (функция "Copy") была скопирована сама информация. А затем всё остальное было переназначено с помощью утилиты TRUSTEE.NLM: на старом сервере
load trustee SAVE OLDVOLUME:\HOME OLDVOLUME:\HOME.XML
а затем на новом сервере -
load trustee RESTORE NEWVOLUME:\HOME.XML
В самом файле HOME.XML через контекстный поиск/замену надо было лишь поменять имя тома. Во избежание проблем с теми редкими пользователями, у кого могли остаться явные ссылки именно на конкретный сервер (например, Permanent MAP средствами клиента), на старом сервере были убраны права той же утилиткой, командой
load trustee REMOVE OLDVOLUME:\HOME
Причём для выполнения двух последних действий мне даже не понадобилось ждать завершения копирования самих файлов: засунул эти команды в SYS:\ETC\CRONTAB, и они отработали в заданное время сами. Вот это мне понравилось!
К утилите TRUSTEE.NLM у меня пока претензий нет, только положительные эмоции. Даже в процессе работы (порядка 7-8 минут на обработку свыше 250 тыс. файлов) она грузила сервер совсем не сильно: утилизация процессора дежалась на уровне 10-15%.