Перейти к содержимому

DeepNet

ASP24.com.ua - Вся линейка моделей Ubiquiti для создания идеальной сети. Звоните! 050-225-7770
Фото

Скрипты onConnect/onDisconnect


  • Чтобы отвечать, сперва войдите на форум
92 ответов в теме

#41 vlad5503

vlad5503

    Точу Зубы

  • Сitizens
  • ФишкаФишкаФишка
  • 120 Сообщений:
  • Пол:Мужчина

Опубликовано 01 Июль 2008 - 12:43

Уважемые спецы.
Прошу Вашей помощи.
Есть FreeBSD 6.2 используется штатный IPFW, на ней установлено Squid прозрачный, Apache, Stargazer 2.402.9.7, Sarg.
Суть проблемы получлась в следующем:
у Stargazera есь скрипты общие для включения и выключения клиента.
Так вот если я включаю клиента у него инет пропадает и наоборот если выключу - появляется.

OnConnect:
LOGIN=$1
IP=$2
CASH=$3
ID=$4
# SPEED=`cat /var/stargazer/users/$LOGIN/conf | grep 'Note=' | cut -d "=" -f2`
fwcmd="/sbin/ipfw -q"
cur_date=`date \+\%Y.\%m.\%d`
cur_time=`date \+\%H:\%M:\%S`

#${fwcmd} pipe `expr $ID + 101` config bw $SPEED
#${fwcmd} add `expr $ID + 501` pipe `expr $ID + 101` tcp from any to $IP via em1
${fwcmd} add `expr $ID '*' 10 + 1001` allow icmp from $IP to any via em1 keep-state
${fwcmd} add `expr $ID '*' 10 + 1002` allow all from $IP to any keep-state
${fwcmd} add `expr $ID '*' 10 + 1003` allow all from any to $IP keep-state

echo "C `date +%Y.%m.%d-%H.%M.%S` $ID $IP $CASH" >> /var/stargazer/users/
echo "C `date +%Y.%m.%d-%H.%M.%S` $ID $LOGIN $IP $CASH" >> /var/stargaze
echo "<=;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/connect.log


здесь я пока не использую ограничение скорости.

OnDisconnect:
LOGIN=$1
IP=$2
CASH=$3
ID=$4

fwcmd="/sbin/ipfw"
cur_date=`date \+\%Y.\%m.\%d`
cur_time=`date \+\%H:\%M:\%S`


#${fwcmd} delete `expr $ID + 501`
#${fwcmd} delete `expr $ID '*' 10 + 1000`
${fwcmd} delete `expr $ID '*' 10 + 1001`
${fwcmd} delete `expr $ID '*' 10 + 1002`
${fwcmd} delete `expr $ID '*' 10 + 1003`

echo "D `date +%Y.%m.%d-%H.%M.%S` $ID $IP $CASH" >> /var/stargazer/users/
echo "D `date +%Y.%m.%d-%H.%M.%S` $ID $LOGIN $IP $CASH" >> /var/stargaze
echo "=>;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/connect.log


IPFW:
#!/bin/sh

fwcmd="/sbin/ipfw -q"
natcmd="/sbin/natd"

#Set providera
oif="em0"
onet="1.2.3.3"
omask="255.255.255.252"
oip="1.2.3.4"

#Lokalna set
iif="em1"
inet="192.168.0.0"
imask="255.255.255.0"
iip="192.168.0.1"

#Admins
admip="192.168.0.2"

${fwcmd} -f flush

${natcmd} -s -m -u -a 1.2.3.4
#Proverka ranee ustanovlenich soedineni
${fwcmd} add 100 check-state
#Razreshim vse na lo0
${fwcmd} add 200 allow ip from any to any via lo0
${fwcmd} add 210 deny ip from any to 127.0.0.0/8

#Propustim admina na em0
${fwcmd} add 300 allow log ip from ${admip} to any via ${iif}
${fwcmd} add 310 allow log ip from any to ${admip} via ${iif}
#Rubim hastie seti
${fwcmd} add 400 deny ip from any to 10.0.0.0/8 in via ${oif}
${fwcmd} add 410 deny ip from any to 127.16.0.0/12 in via ${oif}
${fwcmd} add 420 deny ip from any to 192.168.0.0/16 in via ${oif}
${fwcmd} add 430 deny ip from any to 0.0.0.0/8 in via ${oif}
#
${fwcmd} add 440 deny ip from any to 169.254.0.0/16 in via ${oif}
#
${fwcmd} add 450 deny ip from any to 240.0.0.0/4 in via ${oif}
#
${fwcmd} add 455 allow icmp from any to any via ${oif} icmptype 0,8,12
${fwcmd} add 460 deny icmp from any to any frag
#
${fwcmd} add 470 deny log icmp from any to 255.255.255.255 in via ${oif}
${fwcmd} add 480 deny log icmp from any to 255.255.255.255 out via ${oif}
#Otpravim vsech na squid
${fwcmd} add 500 fwd 127.0.0.1,3128 tcp from ${inet}:${imask} to any 80 via ${iif}
#Razreshim NAT
${fwcmd} add 510 divert natd all from any to any via ${oif}
#Rubim hastie seti naoborot
${fwcmd} add 540 deny ip from 10.0.0.0/8 to any out via ${oif}
${fwcmd} add 550 deny ip from 127.16.0.0/12 to any out via ${oif}
${fwcmd} add 560 deny ip from 192.168.0.0/16 to any out via ${oif}
${fwcmd} add 570 deny ip from 0.0.0.0/8 to any out via ${oif}
#
${fwcmd} add 580 deny ip from 169.254.0.0/16 to any out via ${oif}
#
${fwcmd} add 590 deny ip from 224.0.0.0/4 to any out via ${oif}
#
${fwcmd} add 595 deny ip from 240.0.0.0/4 to any out via ${oif}
#
#${fwcmd} add 600 allow tcp from any to any established
${fwcmd} add 610 allow ip from ${oip} to any out xmit ${oif}
#Razreshim iz ineta dostup
#${fwcmd} add 600 allow ip from any to any via ${oif}
${fwcmd} add 700 allow tcp from any 53 to any via ${oif}
${fwcmd} add 705 allow tcp from any 25 to any via ${oif}
${fwcmd} add 710 allow tcp from any 80 to any via ${oif}
${fwcmd} add 720 allow udp from any 53 to any via ${oif}
${fwcmd} add 725 allow udp from any 25 to any via ${oif}
${fwcmd} add 730 allow udp from any 80 to any via ${oif}
${fwcmd} add 740 allow tcp from any to any 110,143,443,495,587 via ${oif}
${fwcmd} add 760 allow udp from any to any 110,143,443,495,587 via ${oif}
${fwcmd} add 780 deny tcp from any to any 3306,3307 via ${oif}
${fwcmd} add 790 deny tcp from any to any 3128,3130 via ${oif}
${fwcmd} add 800 deny tcp from any to any 1-1024 via ${oif}
${fwcmd} add 810 deny udp from any to any 1-1024 via ${oif}
${fwcmd} add 820 allow tcp from any to any 1025-65535 via ${oif}
${fwcmd} add 830 allow udp from any to any 1025-65535 via ${oif}

#Zapretim paketi na em1 s adresami providera
${fwcmd} add 1010 deny log all from ${onet}:${omask} to any via ${iif}

#Autorizator Ztargazer
${fwcmd} add 2000 allow udp from ${inet}:${imask} to ${iip} 5555 via ${iif}
${fwcmd} add 2010 allow udp from ${iip} to ${inet}:${imask} via ${iif}
#Configurator Stargazer
${fwcmd} add 2020 allow tcp from ${admip} to ${iip} 5555 via ${iif}
${fwcmd} add 2030 allow log tcp from ${admip} to ${iip} 4444 via ${iif}
${fwcmd} add 2040 allow log tcp from ${iip} to ${admip} via ${iif}

#SSH
${fwcmd} add 2100 allow tcp from ${admip} to ${iip} 22 via ${iif}
${fwcmd} add 2110 allow tcp from ${iip} to ${admip} via ${iif}
#
${fwcmd} add 2120 allow tcp from any to any via ${iif}
${fwcmd} add 2130 allow udp from any to any via ${iif}
${fwcmd} add 2140 allow icmp from any to any via ${iif}
#Razreshim NAT
#${fwcmd} add 51000 divert natd all from any to any via ${oif}
#
${fwcmd} add 51029 allow tcp from any to any out via ${oif} setup
${fwcmd} add 51030 allow tcp from any to any via ${oif} established
#
${fwcmd} add 65534 deny ip from any to any



Что не так сделал? Где "сидит" ошибка?
  • 0

DEPS

#42 vlad5503

vlad5503

    Точу Зубы

  • Сitizens
  • ФишкаФишкаФишка
  • 120 Сообщений:
  • Пол:Мужчина

Опубликовано 04 Июль 2008 - 11:17

И что никто не знает ? :)
странно...
надеялся и верил..
жаль.
пойду к другим спрашивать.
  • 0

#43 fedus

fedus

    Точу Зубы

  • Сitizens
  • ФишкаФишкаФишка
  • 175 Сообщений:

Опубликовано 16 Июль 2008 - 11:30

Таке питання: як в скриптах Онконект витягувати інформацію про тариф користувача з бази мускл і дальше вже відповідно різати швидкість?
FreeBSD - ipfw
Можливо в когось є приклади таких скриптів?
Дякую!
  • 0

NG Optics

#44 fedus

fedus

    Точу Зубы

  • Сitizens
  • ФишкаФишкаФишка
  • 175 Сообщений:

Опубликовано 17 Июль 2008 - 07:36

up
  • 0

#45 fedus

fedus

    Точу Зубы

  • Сitizens
  • ФишкаФишкаФишка
  • 175 Сообщений:

Опубликовано 17 Июль 2008 - 09:22

похоже ніхто не знає. :)
А взагалі є можливість хоть шось витягнути з бази приконекті?????
  • 0

#46 zulu_Radist

zulu_Radist

    Дьявол

  • Сitizens
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 4 291 Сообщений:
  • Пол:Мужчина

Опубликовано 17 Июль 2008 - 10:11

похоже ніхто не знає. :)
А взагалі є можливість хоть шось витягнути з бази приконекті?????

Например вызвать сторонний скрипт на php
Внутри написать что-то типа:

mysql_connect('localhost', 'admin', 'password'); //
mysql_select_db('stg_billing') or
die("Could not connect: " . mysql_error());
$q=mysql_query("SELECT `Tariff`, `IP` FROM `users` ");


Или сам скрипт онконнект написать на php и там уже дерзать.

А вобще я скорость режу не при коннекте а отдельным скриптом по крону.
  • 0

#47 madf

madf

    Дьявол

  • Сitizens
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 4 075 Сообщений:
  • Пол:Мужчина
  • Город:Дніпро

Опубликовано 17 Июль 2008 - 10:58

Можно написать на bash, используя клиент mysql
man mysql
  • 0

#48 Колян

Колян

    Вампир

  • Сitizens
  • ФишкаФишкаФишкаФишкаФишкаФишка
  • 1 556 Сообщений:

Опубликовано 17 Июль 2008 - 11:11

Посмотрите тему скрипты онконнект и дисконнект, я там пхп-шные выкладывал
  • 0
Админ без пива, что сервак без проца!

#49 Richman

Richman

    Первая Кровь

  • Маглы
  • ФишкаФишка
  • 93 Сообщений:

Опубликовано 18 Июль 2008 - 20:15

Скрипт запуска STG в качестве демона на Linux

#!/bin/bash
. /etc/rc.d/init.d/functions
RETVAL=0
start()
{
echo -n $&#34;Запускаю биллинговую систему (Stargazer).....&#34;
( /usr/sbin/stargazer &)
    daemon true
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/stargaser
return $RETVAL
}

stop()
{
echo -n &#34;Останавливаю биллинговую систему (Stargazer).....&#34;
killproc stargazer
rm -f /var/lock/subsys/stargazer
echo
return $RETVAL
sleep 1
        }

case &#34;$1&#34; in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 2
start
;;
*)
echo &#34;Используй: `basename $0` { start | stop | restart }&#34;
exit
;;
esac

На Ubuntu Server 8.04 не заработало

root@coresrv:/etc/init.d# ./stargazer restart
./stargazer: line 2: /etc/rc.d/init.d/functions: No such file or directory
Останавливаю биллинговую систему (Stargazer)....../stargazer: line 18: killproc: command not found

Запускаю биллинговую систему (Stargazer)....../stargazer: line 8: daemon: command not found

  • 0

#50 hub00

hub00

    Пролетал Мимо

  • Маглы
  • Фишка
  • 12 Сообщений:

Опубликовано 09 Сентябрь 2008 - 10:21

Здравствуйте.
Вот такой вопрос.
Поставил stargazer-2.4. В /etc/stargazer лежат OnConnect и OnDisconnect.
В старых версиях биллинговой системы эти скрипты можно положить каждому пользователю в его каталог и они выполнялись там.
В 2.4 они не выполняются из каталога пользователей, а только в /etc/stargazer.
У меня завязано все на этом.
Как передать значение переменных из /etc/stargazer/OnConnect и /etc/stargazer/OnDisconnect в /var/stargazer/users/"$user_name"/OnConnect и /var/stargazer/users/"$user_name"/OnDisconnect.

Т.е я запускаю в /etc/stargazer/OnConnect из него запускается /var/stargazer/users/"$user_name"/OnConnect во втором скрипте нужно использовать переменные которые есть в первом (LOGIN=$1 IP=$2 CASH=$3 ID=$4) аналогично и с /etc/stargazer/OnDisconnect > /var/stargazer/users/user_name/OnDisconnect.

Я думал что-то типа такого из $a > ./s.sh.

Спасибо.
  • 0

#51 madf

madf

    Дьявол

  • Сitizens
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 4 075 Сообщений:
  • Пол:Мужчина
  • Город:Дніпро

Опубликовано 12 Сентябрь 2008 - 08:05

Неправильно думал. Это не stdin, это командная строка - просто указывай параметры после имени сркипта.
  • 0

#52 Dim-on-yga

Dim-on-yga

    Пролетал Мимо

  • Маглы
  • Фишка
  • 4 Сообщений:

Опубликовано 21 Сентябрь 2008 - 13:21

Мои скрипты, всё в куче, и Squid и HTB на линюхе с Iptables.
Squid собран из сырцов с поддержкой транспарент и в нестандартном каталоге.
Часть идей отсюда, часть идей своих.
squid.conf

acl client src "/utils/squid/users"
http_access allow client

OnConnect

#!/bin/sh
IPTABLES="/sbin/iptables"
LOGIN=$1
IP=$2
CASH=$3
ID=$4
DIRS=$5
USERCFG="/var/stargazer/users/$LOGIN/conf"
MAC=`cat "$USERCFG" | grep "Userdata0=" | cut -d"=" -f2`
ANLIM_KEY="forsage_"
TARIFFNAME=`cat "$USERCFG" | grep "Tariff=" | cut -d"=" -f2`
if [ "${TARIFFNAME}" != "no_inet" ]; then
if [ "${TARIFFNAME}" != "freeze" ]; then
LIMIT_VALUE=${TARIFFNAME#${ANLIM_KEY}}
if [ "${LIMIT_VALUE}" != "${TARIFFNAME}" ]; then
echo "$IP # $LOGIN
" >> /utils/squid/users
/utils/squid/sbin/tsquid -k reconfigure
tc class add dev eth0 parent 1:1 classid 1:1${ID}0 htb rate ${LIMIT_VALUE}kbps
tc filter add dev eth0 parent 1: protocol ip prio 1${ID}0 u32 match ip dst $IP flowid 1:1${ID}0
$IPTABLES -t nat -A PREROUTING -s $IP -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080
fi
if [ -z "$MAC"]; then
$IPTABLES -A FORWARD -s $IP -j ACCEPT
$IPTABLES -A FORWARD -d $IP -j ACCEPT
else
$IPTABLES -A FORWARD -s $IP -m mac --mac-source $MAC -j ACCEPT
$IPTABLES -A FORWARD -d $IP -j ACCEPT
fi
fi
fi

OnDisconnect

#!/bin/sh
IPTABLES = "/sbin/iptables"
LOGIN=$1
IP=$2
CASH=$3
ID=$4
DIRS=$5
IPTABLES="/sbin/iptables"
ANLIM_KEY="forsage_"
USERCFG="/var/stargazer/users/$LOGIN/conf"
MAC=`cat "$USERCFG" | grep "Userdata0=" | cut -d"=" -f2`
TARIFFNAME=`cat "$USERCFG" | grep "Tariff=" | cut -d"=" -f2`
LIMIT_VALUE=${TARIFFNAME#${ANLIM_KEY}}
LIMIT="-m limit --limit ${LIMIT_VALUE}/s --limit-burst ${LIMIT_VALUE}0"
$IPTABLES -D FORWARD -s $IP -j ACCEPT
$IPTABLES -D FORWARD -s $IP -m mac --mac-source $MAC -j ACCEPT
$IPTABLES -D FORWARD -d $IP -j ACCEPT
$IPTABLES -D INPUT -s $IP -p tcp --dport 8080 -j ACCEPT
tc filter del dev eth0 parent 1: protocol ip prio 1${ID}0 u32 match ip dst ${IP} flowid 1:1${ID}0
if [ "${LIMIT_VALUE}" != "${TARIFFNAME}" ]; then
ON=`cat /utils/squid/users | grep -v "$IP # $LOGIN"`
echo "$ON" > /utils/squid/users
/utils/squid/sbin/tsquid -k reconfigure
fi
tc class del dev eth0 parent 1:1 classid 1:1${ID}0 htb rate ${LIMIT_VALUE}kbps
$IPTABLES -t nat -D PREROUTING -i eth0 -s $IP -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080

/etc/rc.d/ipt

#!/bin/bash
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X
iptables -P FORWARD DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.14.0/24 -o tun66 -j SNAT --to-source 10.85.210.2
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t nat -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

/etc/rc.d/rc.local

#!/bin/sh
> /utils/squid/users
/utils/squid/sbin/tsquid
/etc/rc.d/ipt
/etc/rc.d/cutspeed
/usr/sbin/stargazer

/etc/rc.d/cutspeed

#!/bin/sh
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
tc filter add dev eth0 parent 1: prio 2 protocol ip u32 match ip src 192.168.14.252 flowid 1:1

\
Безлимитчики ходят через Squid а те что по трафику ходят напрямую.
  • 0

#53 Ziki

Ziki

    Точу Зубы

  • Сitizens
  • ФишкаФишкаФишка
  • 183 Сообщений:

Опубликовано 02 Ноябрь 2008 - 14:12

Можете подсказать как сделать авторизацию с проверкой мак? просто в баше не очень силен, бы л бы очень благодарен если бы кинули огрызок такого кода, и обяснили что нужно создавать, и в каких файлах. ОСь у меня ubuntu server, использую iptables.
  • 0
Хорошо не просто там, где нас нет, а где нас никогда и не было!

#54 madf

madf

    Дьявол

  • Сitizens
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 4 075 Сообщений:
  • Пол:Мужчина
  • Город:Дніпро

Опубликовано 03 Ноябрь 2008 - 11:02

Можете подсказать как сделать авторизацию с проверкой мак? просто в баше не очень силен, бы л бы очень благодарен если бы кинули огрызок такого кода, и обяснили что нужно создавать, и в каких файлах. ОСь у меня ubuntu server, использую iptables.

При авторизации MAC не проверяется. Но можно сделать дополнительную проверку в OnConnect. Описываем MAC, например, в в одном из полей UserData. При вызове скрипта получаем реальный MAC с помощью arp -n $IP (ну там еще tail'ом и cut'ом немножко поработать), и вычитываем соответствующий UserData из БД (файловой или SQL'ной). Если совпадает - разрешаем юзера в файрволле.
  • 0

#55 Dim-on-yga

Dim-on-yga

    Пролетал Мимо

  • Маглы
  • Фишка
  • 4 Сообщений:

Опубликовано 23 Ноябрь 2008 - 06:26

При авторизации MAC не проверяется. Но можно сделать дополнительную проверку в OnConnect. Описываем MAC, например, в в одном из полей UserData. При вызове скрипта получаем реальный MAC с помощью arp -n $IP (ну там еще tail'ом и cut'ом немножко поработать), и вычитываем соответствующий UserData из БД (файловой или SQL'ной). Если совпадает - разрешаем юзера в файрволле.

зачем всё так сложно.
можно мак адрес просто добавлять в Iptables , вот мой обновлённый OnConnect с мак адресами, он лежит в UserData0.

#!/bin/sh
IPTABLES="/sbin/iptables"
LOGIN=$1
IP=$2
CASH=$3
ID=$4
DIRS=$5
USERCFG="/var/stargazer/users/$LOGIN/conf"
MAC=`cat "$USERCFG" | grep "Userdata0=" | cut -d"=" -f2`
ANLIM_KEY="forsage_"
TARIFFNAME=`cat "$USERCFG" | grep "Tariff=" | cut -d"=" -f2`
if [ "${TARIFFNAME}" != "no_inet" ]; then
if [ "${TARIFFNAME}" != "freeze" ]; then
LIMIT_VALUE=${TARIFFNAME#${ANLIM_KEY}}
if [ "${LIMIT_VALUE}" != "${TARIFFNAME}" ]; then
echo "$IP # $LOGIN
" >> /utils/squid/users
/utils/squid/sbin/tsquid -k reconfigure
tc class add dev eth0 parent 1:1 classid 1:1${ID}0 htb rate ${LIMIT_VALUE}kbps
tc filter add dev eth0 parent 1: protocol ip prio 1${ID}0 u32 match ip dst $IP flowid 1:1${ID}0
tc filter add dev eth0 parent 1: protocol ip prio 1${ID}0 u32 match ip src $IP flowid 1:1${ID}0
if [ -z "$MAC"]; then
$IPTABLES -t nat -A PREROUTING -s $IP -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080
else
$IPTABLES -t nat -A PREROUTING -s $IP -m mac --mac-source $MAC -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080
fi
fi
if [ -z "$MAC"]; then
$IPTABLES -A FORWARD -s $IP -j ACCEPT
$IPTABLES -A FORWARD -d $IP -j ACCEPT
else
$IPTABLES -A FORWARD -s $IP -m mac --mac-source $MAC -j ACCEPT
$IPTABLES -A FORWARD -d $IP -j ACCEPT
fi
fi
fi


  • 0

#56 Paganel

Paganel

    Пролетал Мимо

  • Маглы
  • Фишка
  • 47 Сообщений:

Опубликовано 05 Февраль 2009 - 02:48

Подыму вопрос, прозвучавший выше.
Надо на баше вытащить из мускуля данные для онконнект (тариф и/или юзердату)

Можно написать на bash, используя клиент mysql
man mysql


А можно примерчик? а то не могу сообразить как правильно это написать.

Или может вызывать другой скрипт, написанный на php (пример коннекта в мускуль я видел, под себя переделаю). Тогда как передать переменные туда и обратно?
К сожалению я не программист, посему прошу помощи.
  • 0

#57 madf

madf

    Дьявол

  • Сitizens
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 4 075 Сообщений:
  • Пол:Мужчина
  • Город:Дніпро

Опубликовано 05 Февраль 2009 - 12:28

$ mysql -u stg -p abstract_catalogue -e 'SELECT name, title FROM tb_pages'
Enter password:
+-----------+----------------+
| name | title |
+-----------+----------------+
| lightness | Свет |
| darkness | Темнота |
+-----------+----------------+

$ mysql -sN -u stg -p abstract_catalogue -e 'SELECT name, title FROM tb_pages'
Enter password:
lightness Свет
darkness Темнота
  • 0

#58 madf

madf

    Дьявол

  • Сitizens
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 4 075 Сообщений:
  • Пол:Мужчина
  • Город:Дніпро

Опубликовано 05 Февраль 2009 - 12:30

Вот без запроса пароля:
$ mysql -Ns -u stg --password=123456 abstract_catalogue -e 'SELECT name, title FROM tb_pages'
lightness Свет
darkness Темнота
  • 0

#59 Paganel

Paganel

    Пролетал Мимо

  • Маглы
  • Фишка
  • 47 Сообщений:

Опубликовано 23 Февраль 2009 - 21:58

Вот без запроса пароля:
$ mysql -Ns -u stg --password=123456 abstract_catalogue -e 'SELECT name, title FROM tb_pages'
lightness Свет
darkness Темнота

Спасибо!!!!
Сделал так (может кому пригодится, у меня работает):

set `mysql -Ns -u stg_user --password=123456 db_stg -e 'SELECT Tariff, Userdata0 FROM users WHERE login="'$LOGIN'"'`
tar=$1
mac=$2
  • 0

#60 Shtorm

Shtorm

    Первая Кровь

  • Маглы
  • ФишкаФишка
  • 52 Сообщений:

Опубликовано 02 Март 2009 - 15:05

Вот мой простенький скрипт для создания пользователей автоматом
( замахался по штуке создавать )
кидаем в папку пустой conf (c пустыми IP и PASSWORD ) - IP= - вот так
и пустой stat

запускаем users_creator №подсети начало конец диапазона
пример users_creator 6 20 30
создает 10 штук пользователей 6020-6030 с IP 192.168.6.20-192.168.6.30
( если другие адреса исправьте в скрипте )

users_creator

#!/bin/bash
#3 октета
subnetwork=$1
#user IP
start_adress=$2
end_adress=$3
stg_folder=/var/stargazer/users/
for i in $(seq $start_adress $end_adress);.
do
if [ $i -lt 100 ]
then usr_folder="$subnetwork"0"$i"
else usr_folder="$subnetwork""$i"
fi
## создать папку.
mkdir $stg_folder$usr_folder
## создать файлы
conf=$stg_folder$usr_folder/conf
##
cp ./conf $conf
####
stat=$stg_folder$usr_folder/stat
####
cp ./stat $stat
## изменить ip
ip=192.168.$1.$i
#cat $conf | sed -e 's/IP=/IP='$ip'/'> $conf
## изменить пароль
MATRIX="0123456789"
LENGTH="8"
# ==> 'LENGTH' можно увеличить, для генерации более длинных паролей.
n=1
PASS=
while [ "${n:=1}" -le "$LENGTH" ]
do
PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1 # ==> Увеличить 'n' перед началом следующей итерации.
done
sed -i -e 's/IP=/IP='$ip'/' $conf.
sed -i -e 's/Password=/Password='$PASS'/' $conf.
conf_size=cat $conf | wc $conf | awk '{print $3}'
done

+ чтение всех паролей в файл , вызов по аналогии

read_users_pass

#!/bin/bash
#3 октета
subnetwork=$1
#user IP
start_adress=$2
end_adress=$3
stg_folder=/var/stargazer/users/
echo >users.
for i in $(seq $start_adress $end_adress);.
do
if [ $i -lt 100 ]
then usr_folder="$subnetwork"0"$i"
else usr_folder="$subnetwork""$i"
fi
ip=192.168.$1.$i
conf=$stg_folder$usr_folder/conf
##
pass=`cat "$conf" | grep "Password=" | cut -d"=" -f2`
echo $ip = $pass >> users
done


PS теги не работают
  • 0




2 пользователей читают эту тему

0 members, 2 guests, 0 anonymous users

Local.blog МЕТА - Украина