The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Скрипт проверки пользователя"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Скрипт проверки пользователя"  
Сообщение от tmw email(ok) on 09-Янв-09, 08:36 
Здравствуйте!
Не силён в скриптах на UNIX.
Есть файл user
Его содержание:
---------------------
user=admin
ip=192.168.0.4
---------------------
Он постоянно обновляется.

Нужно написать скрипт, который считывал бы из этого файла имя пользователя и ip адрес.
Потом проверял, если имя пользователя к примеру admin и ip 192.168.0.4, то выполнял бы какоето действие, если не соответсвует, то ни чего не деал. В моём случае надо выполнить такую команду если условие совпадает:
kill -9 `ps -ax | grep "papcuaa0" | awk '{ print }'`
Если нужно изменить синтаксис файла user, поставить гдето символы $, то это можно изменить.
Просто я не знаю синтаксис команд, так бы я сам написал скрипт, принцип я знаю.

Заранее благодарен!!!

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Скрипт проверки пользователя"  
Сообщение от Arpo email(ok) on 09-Янв-09, 09:49 
>[оверквотинг удален]
>деал. В моём случае надо выполнить такую команду если условие совпадает:
>
>kill -9 `ps -ax | grep "papcuaa0" | awk '{ print }'`
>
>Если нужно изменить синтаксис файла user, поставить гдето символы $, то это
>можно изменить.
>Просто я не знаю синтаксис команд, так бы я сам написал скрипт,
>принцип я знаю.
>
>Заранее благодарен!!!

Если возможно изменить синтаксис фаила, то тут делать нечего.

Например если будет так
user.list
--------------
admin,192.168.0.4
vasya,192.168.0.15
kolya,192.168.0.55
...
admin,192.168.0.4
-------------------

то можно написать так

script.sh
---------
#!/bin/sh

cat user.list|while read LINE
do
       UR=`echo $LINE|awk -F, '{print $1}'`
       IP=`echo $LINE|awk -F, '{print $2}'`
       if [ $UR = "admin" ] && [ $IP = "192.168.0.4" ]
       then
             echo "URA"  #здесь любая комманда которую нужно выполнить
       fi
done

Это первое что приходит в голову, но я думаю эту задачу можно решить даже каким нить перловым однострочником.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Скрипт проверки пользователя"  
Сообщение от phpcoder email(??) on 09-Янв-09, 21:07 
[...]
>Если возможно изменить синтаксис фаила, то тут делать нечего.

Не надо менять синтаксис файла! KISS. Нужно просто за'source'ить этот файл в скрипт и пользоваться переменными $user и $ip как душе вашей будет угодно.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "ужос! враги  --  круоооом! B-]"  
Сообщение от Andrey Mitrofanov on 09-Янв-09, 23:09 
>синтаксис файла! KISS. Нужно просто за'source'ить этот файл в скрипт

Не. Секурно. Ма-а-аксимум:

#!/bin/bash

eval `egrep '^(user=[a-z]+|ip=[0-9.]+)$' <./user `

echo "!$user -- $ip -- $wsk!"

...а вот так не работает... почему?...

#!/bin/bash

. <( egrep '^(user=[a-z]+|ip=[0-9.]+)$' <./user )

echo "!$user -- $ip -- $wsk!"

............................
$cat ./user
ip=1.1.1.1
user=admin
wsk=mammamia
$ ./in-source001
!admin -- 1.1.1.1 -- !
$ ./in-source002
! --  -- !
$ _

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Скрипт проверки пользователя"  
Сообщение от Chainik (??) on 09-Янв-09, 12:20 
А если в исходном файле разделителями пробелы или табуляцию использовать, то еще проще
> admin.lict

admin 192.168.0.4
masha    192.168.7.1

cat user.list | while read UR IP; do
       [ $UR = "admin" ] && [ $IP = "192.168.0.4" ] || continue
       echo "URA"  #здесь любая комманда которую нужно выполнить
done

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Скрипт проверки пользователя"  
Сообщение от tmw email(ok) on 09-Янв-09, 13:05 
Спасибо! Работает, но не совсем.
Скрипт сделал, вручную запускаю всё нормально, работает.
Но когда он запускается по вызову, то ни чего не происходит. Я думаю, что надо запускать с правами root.
Как запустить скрипт с правами root?
Заранее благодарен!!!
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Скрипт проверки пользователя"  
Сообщение от Arpo email(ok) on 09-Янв-09, 13:09 
>Спасибо! Работает, но не совсем.
>Скрипт сделал, вручную запускаю всё нормально, работает.
>Но когда он запускается по вызову, то ни чего не происходит. Я
>думаю, что надо запускать с правами root.
>Как запустить скрипт с правами root?
>Заранее благодарен!!!

Что есть по вызову? Из Cron-а ???

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Скрипт проверки пользователя"  
Сообщение от Andrey Mitrofanov on 09-Янв-09, 13:08 
>Здравствуйте!
>Не силён в скриптах на UNIX.

Читайте man bash (или любой другой/подходящий/предпочитаемый шел), ABS http:/docs/RUS/bash_scripting_guide/ , изучайте... эээ... принципы "unix shell IPC", инструментарий coreutils/grep/awk/sed. Если "очень надо".

Ж) http:/search.shtml?words=bash_scripting_guide&sort=score&exc...

Может быть, даже perl.

>Есть файл user
>---------------------
>user=admin
>ip=192.168.0.4
>---------------------
>Если нужно изменить синтаксис файла user

if gawk </path/to/user.file -v FS='=' '$1=="user"{u=$2}$1=="ip"{i=$2}u&&i{exit}
END{exit ( u=="admin"&&i=="192.168.0.4" ? 0 : 1)}'; then

> kill -9 `ps -ax | grep "papcuaa0" | awk '{ print }'`

fi

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Скрипт проверки пользователя"  
Сообщение от tmw email(??) on 10-Янв-09, 06:28 
Большое всем спасибо!!!! Всё сделал, работает!!!
Не работало, потому что надо было указать полный путь к файлу user!
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру