В случаях, когда пользователи не имеют возможности залогинится на batch nodes в кластере под управлением одной из batch submission systems провести полноценную отладку и мониторинг становится невозможным, тк встроенные "куцие" возможности батчёвых систем по мониторингу заданий (обычно утилитой qstat) не дают полной информации о системе и процессах на нодах. Администратор системы для удобства может настроить ssh-аутентификацию по ключу без пароля, чем и можно воспользоваться для удалённого запуска утилит. Ниже описывается вся процедура: * генерим RSA ключ для ssh-аутентификацию по ключу: bash> ssh-keygen -t rsa # generate RSA keys for SSH protocol version 2 <Enter># enter empty passphrase (no passphrase) bash> ssh-keygen -t rsa # generate RSA keys for SSH protocol version 2 ... # enter empty passphrase (no passphrase) bash> PUB_KEY=`cat $HOME/.ssh/id_rsa.pub` bash> ssh sgeadmin@bn001 echo $PUB_KEY '>> $HOME/.ssh/authorized_keys2' sgeadmin@bn001's password: # enter remote host password bash> ssh sgeadmin@bn001 remotehost:bash> # voila! login without password если в настройках удалённого ssh-сервера была разрешена аутентификация по ключу, мы сможем залогиниться без ввода пароля, если нет, попробуйте запустить клиента в verbose mode и заодно посмотреть лог на удалённом хосте, ssh-сервер пишет в логах какие методы аутентификации были опробованы. Аналогично копируем public-key на остальные ноды. * создаём скрипт "туннелирующий" нужную утилиту и её вывод и запускаемый через sudo: bash> cat > /home/sgeadmin/bin/cluster_utility_starter.sh #!/bin/bash function usage() { echo "Usage: PROGRAM [OPTION]... [HOST] Run a program from list: ${util_nm[*]} on HOST from list: $batch_host_list Exit program by SIGINT/^C if a programm is looped. -h print help and exit -l List available hosts and exit" } # cluster work nodes readonly batch_host_list="@bn001 @bn002 @bn003" # batch nodes # util list for remote execution util_nm[0]="Qtop" util_cm[0]="/usr/bin/top b" util_nm[1]="Qps" util_cm[1]="/bin/ps" util_nm[2]="Qfree" util_cm[2]="/usr/bin/free" util_nm[3]="Qvmstat" util_cm[3]="/usr/bin/vmstat" util_nm[4]="Qstat" util_cm[4]="/usr/bin/stat" util_nm[5]="Qls" util_cm[5]="/bin/ls" util_nm[6]="Qcat" util_cm[6]="/bin/cat" util_nm[7]="Qpstree" util_cm[7]="/usr/bin/pstree" if test $# -le 1 then usage $0 exit 1 fi i=0 cmd_name="$1" shift util_name="" while :; do if test $i -ge ${#util_nm[*]}; then echo >&2 "$cmd_name: no such command" usage exit 1 fi if test "${util_nm[$i]}" == "$cmd_name"; then util_name="${util_cm[$i]}" break fi let $((++i)) done host_name="" options="" while test $# -gt 0 do case "$1" in -h) echo -e "Copyright (C) 2005 Alexey Filin\n" usage exit ;; -l) echo -n "Available batch hosts: " echo $batch_host_list exit ;; @*) if test -n "$host_name"; then usage exit fi for i in $batch_host_list; do if test "$i" == "$1"; then host_name="$1" break fi done if test -z "$host_name"; then echo "$1: no such host name" exit fi shift ;; *) options="$options $1" shift ;; esac done if test -n $host_name; then #echo ssh -x "sgeadmin$host_name" "sudo -u $SUDO_USER $util_name $options" ssh -x "sgeadmin$host_name" "sudo -u $SUDO_USER $util_name $options" else usage exit fi exit ^D bash> chmod +x /home/sgeadmin/bin/cluster_utility_starter.sh заметьте, что утилита на удалённом хосте запускается под пользователем запустившим скрипт-обёртку описываемый ниже.
Ответ на:
настраиваем удалённый запуск утилит (продолжение)
от filin
Ответ на:
добавление
от anonymous
Ответ на:
добавление
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Работающий скрипт для скачивания с rutube.ru (2011)
- Форум Запустить приложение от имени другого пользователя по ssh (2014)
- Форум скрипт помогите найти косяк (2007)
- Форум В bash цикл while останавливается, если в теле цикла есть выполнение ssh (2014)
- Форум Запуск через sudo графических приложений. (2020)
- Форум Скормить ключ и passphrase ssh-агенту с помощью expect (2016)
- Форум Передать параметр bash в ssh (2023)
- Форум ssh для root без пароля (2006)
- Форум SopCast (2012)
- Форум Не запускается pinentry в gpg-agent (2023)