The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Скрипт проверки пользователя, !*! 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.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

    • Скрипт проверки пользователя, !*! 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




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

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