Скрипт проверки пользователя, tmw, 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, поставить гдето символы $, то это можно изменить. Просто я не знаю синтаксис команд, так бы я сам написал скрипт, принцип я знаю. Заранее благодарен!!!
|
- Скрипт проверки пользователя, Arpo, 09:49 , 09-Янв-09 (1)
>[оверквотинг удален] >деал. В моём случае надо выполнить такую команду если условие совпадает: > >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 Это первое что приходит в голову, но я думаю эту задачу можно решить даже каким нить перловым однострочником.
- Скрипт проверки пользователя, phpcoder, 21:07 , 09-Янв-09 (6)
[...] >Если возможно изменить синтаксис фаила, то тут делать нечего. Не надо менять синтаксис файла! KISS. Нужно просто за'source'ить этот файл в скрипт и пользоваться переменными $user и $ip как душе вашей будет угодно.
- ужос! враги -- круоооом! B-], Andrey Mitrofanov, 23:09 , 09-Янв-09 (7)
>синтаксис файла! 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 ! -- -- ! $ _
- Скрипт проверки пользователя, Chainik, 12:20 , 09-Янв-09 (2)
А если в исходном файле разделителями пробелы или табуляцию использовать, то еще проще > admin.lictadmin 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
- Скрипт проверки пользователя, tmw, 13:05 , 09-Янв-09 (3)
Спасибо! Работает, но не совсем. Скрипт сделал, вручную запускаю всё нормально, работает. Но когда он запускается по вызову, то ни чего не происходит. Я думаю, что надо запускать с правами root. Как запустить скрипт с правами root? Заранее благодарен!!!
- Скрипт проверки пользователя, Arpo, 13:09 , 09-Янв-09 (5)
>Спасибо! Работает, но не совсем. >Скрипт сделал, вручную запускаю всё нормально, работает. >Но когда он запускается по вызову, то ни чего не происходит. Я >думаю, что надо запускать с правами root. >Как запустить скрипт с правами root? >Заранее благодарен!!! Что есть по вызову? Из Cron-а ???
- Скрипт проверки пользователя, Andrey Mitrofanov, 13:08 , 09-Янв-09 (4)
>Здравствуйте! >Не силён в скриптах на 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
- Скрипт проверки пользователя, tmw, 06:28 , 10-Янв-09 (8)
Большое всем спасибо!!!! Всё сделал, работает!!! Не работало, потому что надо было указать полный путь к файлу user!
|