Такой вот ребус: Есть сервер под BSD 6.1. На нем висит стриммер Sun'овский (HP по паспорту). Делаем: /usr/bin/tar -cvpf /dev/sa0 --directory / --exclude=var/spool/ etc usr/home root usr/local var/spool var/cron/tabs и нужные каталоги на ленте. Все рОвно, все хорошо, все сбэкаплено. А теперь преобразим задачу: Есть сервер А и сервер В. Стриммер висит на сервере В, который является backup-сервером. На него никто не может ходить по сети, может ходить только он (политика безопасности). На сервере А либо BSD либо Linux (на самом деле это несколько серверов). На В пока BSD, но можно поставить что угодно (только не Win). Задача в том, чтобы сервер В пошел на сервер А и слил нужные разделы-папки сразу на ленту минуя кеширования на своем диске. Еще раз акцентирую внимание на слово сразу. Желательно использовать, конечно, SSH доступ бэкапсервера к остальным. Видимо по открытому ключу. Вопрос собственно в следующем: как это более правильно и красиво реализовать?
Мысли крутятся только в направлении NFS. Но возникает вопрос секурности. Как вы думаете, насколько безопастно у около 10 боевых серверов открывать NIS в RO только для одного сервера (правда находящегося за NAT и недоступного "с улицы")?
М.б. на HOST_B пускать что-то типа: ssh HOST_A "tar cvpf - --directory / --exclude=var/spool/ etc usr/home root usr/local var/spool var/cron/tabs" > /dev/sa0 Ну и ключи сгенерить c пустой пассфразой и на HOST_A заранее положить. Или dump посмотри. Его ключик -f.
У меня кстати не получилось с открытыми ключами. Т.е. я все сгенерил, как описано на просторах инета, положил куда надо, но когда В идет на А, ему отвечают, что авторизация не прошла. Есть гденибудь нормальное описание как делать? я делал по опеннету, но видимо что-то не срослось. просто по паролю ходится, а по ключу нет. Есть гденибудь пошаговое руководство для "одаренных"?
firefly, Да там, вроде, ничего хитрого. Генеришь ключи там, откуда ходишь (на HOST_B, user_1) Там, куда ходишь (HOST_A) добавляешь (юзеру user_2) пуб.ключи >> ~/.ssh/authorized_keys. И все. Если имена user_1 и user_2 разные, тогда указываешь юзера явно: ssh -l user_2 HOST_A ...
Получилось. Только неподумал я о другом. Вот зашел я из HOST_B на HOST_A под юзером USER_1. И естесственно USER_1 не имеет прав читать ВСЕ. Ибо бэкапить надо все. Куда пнуть? Не рутом же заходить ))) Видится вариант паковать на HOST_A все в один архив, а потом под USER_1 его вытягивать, но не на всех серверах есть место, чтобы хранить локальные копии.
М.б. ssh -l user_2 HOST_A "sudo /usr/bin/tar -cvpf /dev/sa0 --directory ... А на НОСТ_А в sudoers (через visudo, естественно): Host_Alias HERE=HOST_A, localhost User_Alias BACKUP_ADMIN=user_2 Cmnd_Alias FULL_BACKUP=/usr/bin/tar -cvpf /dev/sa0 --directory ... BACKUP_ADMIN HERE=NOPASSWD: FULL_BACKUP