nixp.ru v3.0

23 октября 2017,
понедельник,
01:45:46 MSK

DevOps с компанией «Флант»
muirdok написал 16 июля 2008 года в 18:36 (1501 просмотр) Ведет себя неопределенно; открыл 3 темы в форуме, оставил 8 комментариев на сайте.

Суть скрипта в следующем раз в сутки выкидывать юзеров из терминала и очищать их процессыю. Юзеров много все о них храницца в ldap.

Ну собственно с помощью команды ldapsearch и дальнейшей обработки awk я получаю список пользователей примерно в вот таком формате

Vasya

Sveta

Dima

….

Т.е. в «столбик» Вопрос как мне форматировать весь этот «столбик» в строку или как поотдельности получить имя юзера чтоб потом запихнуть все в массив и передать pkill ? код чуть позже приведу (нету под рукой).

Curu3MyHg
muirdok
Вопрос как мне форматировать весь этот «столбик» в строку



STOLBIK=`echo vasya; echo sveta ; echo dima`
echo $STOLBIK


muirdok
или как поотдельности получить имя юзера чтоб потом запихнуть все в массив



STOLBIK=`echo vasya; echo sveta ; echo dima`
for NAME in $STOLBIK
  do
    echo "тут будем что-то делать с $NAME"
  done
muirdok

Блин а где теги форматирования ?! Как код выделить???

немного не то :)

STOLBIK=`echo vasya; echo sveta ; echo dima` -

здесь надо имена всех юзеров вручную указывать, а их несколько десятков :)

Этой коммандой

ldapsearch -b «ou=People,dc=domen,dc=ru» «(objectClass=posixAccount)» -x uid | awk '/uid/ {print$2}'

получаю список юзеров …..

requesting:

nikolay

buhgalter

mazunin

krupenikov

tihonenko

ivanova

fokin

voronova

rumyancev

finogenova

kirichek

galina

maxim

salangin

kovalenko

olga

nexai

yashnikova

bidulin

antivirus

muirdok

base1c

vorotnikov

gergalova

nadto4i

kolot

и этот список надо передать команде pkill и nxserver и еще прочим

есть идея обьявить массив и запихнуть все имена юзеров в отдельные элементы массива потом все просто :) … НО блин чето совсем не могу придумать как разделить список на элементы…..может искать символ \n ???

Curu3MyHg

Ну так вместо

STOLBIK=`echo vasya; echo sveta ; echo dima`

сделай

STOLBIK=`ldapsearch -b "ou=People,dc=domen,dc=ru" "(objectClass=posixAccount)" -x uid |  awk '/uid/ {print$2}'`
muirdok

!!!!!!!  спасибо :)! все норм +1 все отлично в строку с пробелами

DreamWalker

Вопрос не в тему, но чтобы не создавать новую.

Какую роль играет символ двоеточия в данном выражении?

: ${HOSTNAME?} ${USER?} ${MAIL?}

metal

Привел бы полный контекст, скорее всего тебе: man bash, раздел «Parameter Expansion».

count
DreamWalker
Вопрос не в тему, но чтобы не создавать новую.

Какую роль играет символ двоеточия в данном выражении?

: ${HOSTNAME?} ${USER?} ${MAIL?}

не даёт выполняться значениям переменных

[guest@localhost ~]$ a=«some_value»

[guest@localhost ~]$ ${a?no_value}

bash: some_value: команда не найдена

[guest@localhost ~]$ : ${a?no_value}

[guest@localhost ~]$ # тут бэш не получил команду из a, т.к. : пустое действие

[guest@localhost ~]$ ${b?no_value}

bash: b: no_value

[guest@localhost ~]$ : ${b?no_value}

bash: b: no_value

[guest@localhost ~]$ # эта видимо имеет выше приоритет, чем :

count
muirdok
!!!!!!! спасибо :)! все норм +1 все отлично в строку с пробелами

надёжнее будет сохранять пользователей в файл и читать их потом оттуда, т.к. в бэше переменные небольшие

промежуточный «$(cat …)» такого файла будет работать так же эффективно