Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Проверил, работает 18.08.04 14:35 Число просмотров: 2077
Автор: VEK Статус: Незарегистрированный пользователь
|
IMHO все просто. На одной машине руками или кроном запускаешь
ssh hostN /path/to/dnetc -hide
утром - ssh hostN /path/to/dnetc -shutdown
Не обязательно рутом, клиент запускается любым пользователем. Сейчас проверил все работает. Единственый момент, где могут быть трудности, это настройка запуска без запроса пароля или парольной фразы из крона.
|
<dnet>
|
скрипт для запуска вручную на freebsd с удаленной тачки 17.08.04 21:07
Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
|
Итак, имеем несколько машин, работающих под управлением FreeBSD. По ночам они практически простаивают.
Нужно запускать на них всех клиента каждую ночь и вырубать его поутру.
cron не предлагать - как раз смысл в том, чтобы клиента не особо светить.
Идеальным был бы такой вариант: налабать скрипт, который ручками (или уж по крону) запускался бы на одной машине и запускал бы клиентов на остальных.
Не подойдет вариант с "pause flagfile" - клиента желательно без надобности в процессах не светить.
А теперь скажите мне: такое вообще возможно? Или я занимаюсь дурней?
Если возможно, то с какой стороны к скрипту подходить? как вообще можно запустить какой-либо скрипт на удаленной машине? Я так понимаю, что ssh не пойдет - нужно ведь запускать демонов. А рутом по ssh нельзя (точнее можно, но я открывать это дело не хочу по своим соображениям).
В общем, скажите хоть что-то...
|
|
Проверил, работает 18.08.04 14:35
Автор: VEK Статус: Незарегистрированный пользователь
|
IMHO все просто. На одной машине руками или кроном запускаешь
ssh hostN /path/to/dnetc -hide
утром - ssh hostN /path/to/dnetc -shutdown
Не обязательно рутом, клиент запускается любым пользователем. Сейчас проверил все работает. Единственый момент, где могут быть трудности, это настройка запуска без запроса пароля или парольной фразы из крона.
|
|
А чем не устраивает dnetc -hide / -shutdown? Ну и sh-скрипт... 18.08.04 14:02
Автор: ddmitry Статус: Незарегистрированный пользователь
|
А чем не устраивает dnetc -hide / -shutdown? Ну и sh-скрипт соответствующий. Скриптик лезет на сервер по ssh (авторизация по ключам), запускает клиента, отключается. И так по-очереди. А утром то же самое с -shutdown. Можно попробовать screen. Хотя как не засветить в процессах софтину, съедающую всё процессорное время, не знаю... Может быть какой-нибудь руткит.
|
| |
Все, спасибо. 21.08.04 13:01
Автор: J'JF <Dmytro Volhushyn> Статус: Elderman Отредактировано 21.08.04 13:05 Количество правок: 1
|
Просто не знал, в каком направлении рыть (по причине малого опыта с *nix думал, что по ssh на автомате залететь нельзя :-) - только через пароль).
В общем, вот рецепт - может, кому еще пригодится:
1. Создаем одинаковых юзеров на клиенте (та машина, с которой будут запускаться все остальные) и на серверах (те тачки, на которых нужно будет запускать клиентов).
2. На клиенте генерируем пару ключей при помощи
ssh-keygen -d
Эта команда создаст в папке $HOME/.ssh 2 файла:
id_dsa и id_dsa.pub
Файл id_dsa.pub необходимо положить на каждый из серверов в соотв. папку ($HOME/.ssh), однако переименовав его в authorized_keys (в этот файл при необходимости можно после добавлять еще ключи для других хостов)
3.На тачке-клиенте ваяем скрипт по следующему образцу:
#!/bin/sh
dnetc=/home/user/dnetc/dnetc
hosts="host1 host2 host3"
if [ "$1" = "start" ]; then
for host in ${hosts}; do
ssh $host $dnetc" -hide"
done
elif [ "$1" = "stop" ]; then
for host in ${hosts}; do
ssh $host $dnetc" -shutdown"
done
else
echo "Unknown command $1"
fi
В общем, вместо переменной $dnetc подставляем свое значение.
Ну и в массив hosts пишем через пробел названия хостов или их IP-адреса.
После этого скрипт, запущенный с параметром start запустит клиентов на всех Нужных хостах, а с параметром stop - остановит их.
Можно еще вместо
ssh $host $dnetc
прописать
ssh "user@"$host $dnetc
я так понимаю, что это даст возможность запускать скрипт от имени любого пользователя (хотя и не проверял). В крон его засовывать не хочу - буду стартовать ручками, так что вопрос пользователя неактуален пока.
Если есть какие-то замечания/дополнения - буду рад и признателен!
Единственное, что меня смутило в бздевом клиенте - так это то, что если запускать его с -hide а потом останавливать с -shutdown, то слышна ругань вроде:
dnetc: No distributed.net clients were found. None shutdown.
хотя клиент на самом деле останавливается вполне корректно.
> Хотя как не засветить в процессах > софтину, съедающую всё процессорное время, не знаю...
Да нет, ночью пусть себе светится :-)
главное, чтобы днем все тип-топ было ;-)
|
|
|