URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5490
[ Назад ]

Исходное сообщение
"скрипт на bash sed"

Отправлено vasilich , 10-Июн-06 15:37 
Не могу догадаться как сделать

Формат users.stats
192.168.0.2/255.255.255.255
192.168.0.55/255.255.255.255
192.168.0.21/255.255.255.255
и т.д.

При подключении пользователя срабатывает Скрипт1

Скрипт1
#!/bin/bash
IP=$1
echo "$IP/255.255.255.255" >> /etc/users.stats

При отключении срабатывает Скрипт2
который должен убирать соответстующего $IP пользователя из users.stats

Скрипт2
IP=$1
sed '/$IP.*\n/d' > /etc/users.stats

А он вытерает всех.
Как сделать что б только соответствующего $IP?


Содержание

Сообщения в этом обсуждении
"скрипт на bash sed"
Отправлено guest , 10-Июн-06 20:25 
>Скрипт2
>IP=$1
>sed '/$IP.*\n/d' > /etc/users.stats
>
>А он вытерает всех.
>Как сделать что б только соответствующего $IP?


sed -i '/$IP.*/d' /etc/users.stats


"скрипт на bash sed"
Отправлено vasilich , 10-Июн-06 21:02 
>>Скрипт2
>>IP=$1
>
>sed -i '/$IP.*/d' /etc/users.stats

ни чего не происходит, Скрипт1 продолжает писать $IP в users.stats, Скрипт2 не удаляет ничего.


"скрипт на bash sed"
Отправлено guest , 11-Июн-06 03:29 
>>>Скрипт2
>>>IP=$1
>>
>>sed -i '/$IP.*/d' /etc/users.stats
>
>ни чего не происходит, Скрипт1 продолжает писать $IP в users.stats, Скрипт2 не
>удаляет ничего.

а, ну дык есессно, надо пользовать " вместо '


"скрипт на bash sed"
Отправлено vasilich , 11-Июн-06 08:23 
>а, ну дык есессно, надо пользовать " вместо '
>>>>Скрипт2
>>>>IP=$1
>>>
>>>sed -i '/$IP.*/d' /etc/users.stats - ни чего не происходит
sed -i "/$IP.*/d" /etc/users.stats - очищает весь файл
sed -i "/$IP.*/d" > /etc/users.stats - очищает весь файл
sed -i '/$IP.*/d' > /etc/users.stats - очищает весь файл
sed -i '/$IP.*/D' /etc/users.stats - ни чего не происходит
sed -i "/$IP.*/D" /etc/users.stats - очищает весь файл
sed -i "/$IP.*/D" > /etc/users.stats - очищает весь файл
sed -i '/$IP.*/D' > /etc/users.stats - очищает весь файл
ЁПРСТ ни че не работает...

"скрипт на bash sed"
Отправлено smb , 11-Июн-06 10:57 
grep -v "$IP" /etc/users.stats > /etc/users.result

"скрипт на bash sed"
Отправлено vasilich , 11-Июн-06 12:06 
>grep -v "$IP" /etc/users.stats > /etc/users.result
Не пойму зачем это?
Но все же...
grep -v "$IP" /etc/users.stats > /etc/users.result - файл users.result пуст
grep -v '$IP' /etc/users.stats > /etc/users.result - в файл users.result поподают $IP, только к чему бы это?

"скрипт на bash sed"
Отправлено vasilich , 11-Июн-06 14:26 
Лекарство найдено:
while [ -a /var/tmp/stgusers.tmp ];
    do {
     sleep 1 && continue
    };
done
cat /var/stargazer/online.users | grep -v $2/255.255.255.255 >> /var/tmp/stgusers.tmp
rm -f /var/stargazer/online.users >/dev/null 2>/dev/null
mv /var/tmp/stgusers.tmp /var/stargazer/online.users >/dev/null 2>/dev/null
Всем огромное спасибо!