Полезные скрипты наструганные на коленке.

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-05 19:39:39

после ручного удаления ненужных вместо 254 стало 139 портов.
неплохо :)
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
proxy-man
лейтенант
Сообщения: 692
Зарегистрирован: 2006-04-05 12:06:13
Откуда: Odessa
Контактная информация:

Непрочитанное сообщение proxy-man » 2007-07-05 21:22:27

lissyara писал(а):после ручного удаления ненужных вместо 254 стало 139 портов.
неплохо :)
Это показатель для дэсктопа или для сервера?
Have trouble with Windows - reboot,
Have trouble with Unix - be root!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-05 21:36:49

можно сказать для ервера.
на десктопе меньше 500 не бывает...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Dog
лейтенант
Сообщения: 723
Зарегистрирован: 2006-09-21 10:34:36
Откуда: Kharkiv, Ukraine
Контактная информация:

Непрочитанное сообщение Dog » 2007-07-06 12:08:25

lissyara писал(а):не нашёл способа узнать - как получить список установленных портов, от которых не зависят другие (чтоб ненужные поудалять - нефиг им болтаться)
Вообще-то есть способ гораздо проще:

Код: Выделить всё

dog@dog:/usr/ports> make quicksearch name=pkg_cutleaves
Port:   pkg_cutleaves-20061113
Path:   /usr/ports/ports-mgmt/pkg_cutleaves
Info:   Interactive script for deinstalling 'leaf' packages
Хотя скриптом - это конечно более по-джедайски :)
Oh my God, they killed init! Bastards!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-06 22:30:35

Продолжаю баловаться траффиками - для домаашнего сервачка сделал.

Код: Выделить всё

#!/bin/sh

# Временный файл
tmp_file="/tmp/trafd.traffic.$$.tmp"
out_file="/usr/local/var/trafd/tmp_data.txt"
# внешний ip машины
#external_IP="`/sbin/ifconfig xl0 | grep inet | awk '{print $2}'`"
#internal_IP="`/sbin/ifconfig ep0 | grep inet | awk '{print $2}'`"
#wifi_IP="`/sbin/ifconfig ath0 | grep inet | awk '{print $2}'`"


# Сегодяшний день
day="`date +%Y-%m-%d`"
# Текущий год
year="`date +%Y`"
# Текущий месяц
month="`date +%m`"
# Текущее время (секунды специально сделаны 00 - иногда cron запускает скрипт не
# в 00 секунд а позже (максимум что я видел - в 13), если машина очень загружена -
# как итог в логах начинает фигурировать разное число секунд.
# Мне это непонравилось :)
curr_time="`date +%H:%M:00`"
# Директория в которой будут храниться текстовые файлы с логами trafd
NewDir="/var/traffic/${year}/${month}"
# Пытаемся создать эту самую директорию на случай если это первый запуск
# или произошла смена месяца (года)
mkdir -p ${NewDir}
# Ну и топаем туда
cd ${NewDir}

# Считываем все переменные из файла /etc/rc.conf с целью извлечь оттуда
# строчку с названиями интерфейсов по которым работает trafd
# (У меня три сетевых платы и lo0 - просто интереса ради)
. /etc/rc.conf

# Для всех интерфейсов выковырнутых из rc.conf (висят в ${trafd_ifaces})
# выполняем один и тот же набор действий по разбору логов и запихиванию
# их в базу данных
echo " Траффик за этот месяц:" > ${out_file}
echo " Интерфейс        Входящий        Исходящий" >> ${out_file}
for iface in ${trafd_ifaces}
do
        IP="`/sbin/ifconfig ${iface} | grep inet | awk '{print $2}' | head -1`"
        # Считаем траффик от нас. Считаем за весь месяц, кладём во временный
        # файл - из него будет выводиться при логине - когда su делаешь
        cat ${NewDir}/summary.${iface} | grep "^[0-9]" | grep "^${IP}"| awk '
                BEGIN { d=0 }
                        {
                                # Суммируем 6-й столбец на вводе - траффик
                                d=$6+d
                        }
                END {
                                print d/1048576
                } ' > ${tmp_file}
        read bytes_out < ${tmp_file}

        # Считаем траффик от нас. Считаем за весь месяц, кладём во временный
        # файл - из него будет выводиться при логине - когда su делаешь
        cat ${NewDir}/summary.${iface} | grep "^[0-9]" | grep -v "^${IP}"| awk '
                BEGIN { d=0 }
                        {
                                # Суммируем 6-й столбец на вводе - траффик
                                d=$6+d
                        }
                END     {
                                print d/1048576
                        } ' > ${tmp_file}
        read bytes_in < ${tmp_file}

        # заносим траффик во временный файл - будет выводиться на экран при логоне
        if [ "${bytes_in}" = "0" ]
        then
                # нету траффега
        else
                echo " ${iface}         ${bytes_in} Mb  ${bytes_out} Mb" >> ${out_file}
        fi
        # удаляем временный файл
        rm ${tmp_file}
done

echo " Подсчитан `date +%Y-%m-%d` в `date +%H:%M:%S` MSK" >> ${out_file}
удивили цифры:

Код: Выделить всё

more /usr/local/var/trafd/tmp_data.txt
 Траффик за этот месяц:
 Интерфейс      Входящий        Исходящий
 xl0            706,019 Mb      367348 Mb
 ep0            1358,88 Mb      2259,12 Mb
 ath0           36,7791 Mb      0,10037 Mb
 Подсчитан 2007-07-06 в 23:19:19 MSK
и это с начала месяца... бедный старенький пенёк :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-07-06 22:50:00

Ха! целерончик 600 256 рам и 40 гб винт(старый заводской рутер) > 95Гб общего трафа. (по статистике из ipacctd)
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-06 22:51:47

что ха. за 6 дней 367G набежало...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-07-06 22:59:45

повторяю. мы провинциалы... у нас траф дорогой...но, если поднапрячься, то бесплатного трафа гиг терабайт будет... но кому это надо... мы юзерей воспитываем... а че ты не спишь?
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-06 23:02:25

глюк словил - толи стека сетевого толи дров nve - сидел страницу дебага - буквы цифры переписывал на бамажку потом набивал чтоб отправить...
========
блин - пожалел что на ноуте КОМ-порта нет - можно было бы туда направить вывод отладочной консоли....
если полный дебаг попросят - пойду в понедельник на работе искать ноут с ком-портом или PCMCI порт...
там страниц пять такого бреда будет...
Убей их всех! Бог потом рассортирует...

Andy
ст. лейтенант
Сообщения: 1117
Зарегистрирован: 2007-03-04 7:48:58
Откуда: Mytischi

Непрочитанное сообщение Andy » 2007-07-07 7:26:19

Лис, а чем у тебя сервак дома занимается?
Jul 16 19:37:15 freebsd sshd[4152]: Invalid user idiot from 210.75.200.104

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-07 11:46:37

сайт валяется - когда програмлю,
а вообще - софт да кино-музыка лежит - кино музыка по ftp расшарена..
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-07 11:54:41

сайт валяется - когда програмлю,
а вообще - софт да кино-музыка лежит - кино музыка по ftp расшарены
Убей их всех! Бог потом рассортирует...

Andy
ст. лейтенант
Сообщения: 1117
Зарегистрирован: 2007-03-04 7:48:58
Откуда: Mytischi

Непрочитанное сообщение Andy » 2007-07-07 16:56:11

lissyara писал(а):а вообще - софт да кино-музыка лежит - кино музыка по ftp расшарена..
Доступна из внешнего мира?
Jul 16 19:37:15 freebsd sshd[4152]: Invalid user idiot from 210.75.200.104

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-07 17:02:34

неа. была бы доступна - там бы сайт лежал :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
o2x
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-01-31 17:46:54

Непрочитанное сообщение o2x » 2007-07-07 20:58:04

Обновил скрипт ститистики, отсутствия интернета:

Код: Выделить всё

#! /bin/sh
ping="/sbin/ping"
# время
date_time="`date +%H:%M:%S`"
# дата
date="`date +%d-%m-%Y`"
date="`date | awk '{print $1,$2,$3,$4,$5}'`"
# часы минуты
date_hour="`date +%H`"
date_minute="`date +%M`"

# Пингуемые хосты
ISP="***.***.***.***"

# Создание файлов если их нет
if [ ! -f hour.txt ]; then
echo "$date_hour" > hour.txt
echo "$date_minute" > minute.txt
echo "запуск 1-й раз" > interval.txt
exit 0;
fi

# Пингуем провайдера
$ping -q -c 4 ${ISP} >/dev/null 2>&1

# если результат true 
if [ $? -eq 0 ]; then
        echo "Провайдер Lecos - $ISP доступен."
        echo "isp" > hour.txt;
        echo "isp" > minute.txt;
    exit 0;
else
                echo "Ошибка связи. Провайдер Lecos - $ISP не доступен" 2>/dev/null
        # Проверка данных txt файла. Если есть запись "true isp"
                # Значит перед этим был инет. Сохраняем значения времени
                # отсутствия Инета и выходим
                result_txt="`cat minute.txt`"
                if [ $result_txt = "isp" ]
                then
          echo "$date_hour" > hour.txt
          echo "$date_minute" > minute.txt
                  exit 0;
                fi
                # Последнее время проверки(предыдущий раз)
            old_hour="`cat hour.txt`"
            old_minute="`cat minute.txt`"

            # Текущая разница времени
            end_hour="`expr $date_hour - $old_hour`"
            end_minute="`expr $date_minute - $old_minute`"

                # Если разница времени(минут) меньше 0
                # 15.45-16.10  rez_m=60-45+10 rez_h=0
                if [ $end_minute -lt 0 ]
                then
                        end_hour="0";
                        end_minute="` 60 - $old_minute + $date_minute`";
                fi
                # Если разница времени равна 0.Выход
                if [ $end_hour -eq 0 -a $end_minute -eq 0 ]
                then exit 0;
                fi

echo "-------------------------------
Дата:  $date
Время: $date_time
Время отсутствия: ${old_hour}:${old_minute} - ${date_hour}:${date_minute}
Всего $end_hour часов $end_minute минут.
-------------------------------" >> interval.txt
                # Интервалы отсутствия времени
                    interval="`cat interval.txt`"
                        echo "$date_hour" > hour.txt
                    echo "$date_minute" > minute.txt
                    echo
                    echo "Интервалы времени отсутствия Интернета:                "
                    echo "$interval"
exit 1;

fi
Примерный вывод в файл:

Код: Выделить всё

20:57 [p0]root#mail:/root/scripts/ping_internet>cat interval.txt
запуск 1-й раз
-------------------------------
Дата:  суббота, 7 июля 2007 г.
Время: 20:35:32
Время отсутствия: 20:34 - 20:35
Всего 0 часов 1 минут.
-------------------------------
-------------------------------
Дата:  суббота, 7 июля 2007 г.
Время: 20:56:04
Время отсутствия: 20:49 - 20:56
Всего 0 часов 7 минут.
-------------------------------

gyurza2000
лейтенант
Сообщения: 856
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Непрочитанное сообщение gyurza2000 » 2007-07-10 7:19:50

а нет ли у кого скрипта, обрубающего трафик у всех юзеров кроме одного по достижении цифры 2Гб?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-10 8:30:04

примеров уже накидано - выше крыши.
сиди и пиши.
Убей их всех! Бог потом рассортирует...

gyurza2000
лейтенант
Сообщения: 856
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Непрочитанное сообщение gyurza2000 » 2007-07-10 9:26:41

lissyara писал(а):примеров уже накидано - выше крыши.
сиди и пиши.
просмотрел я все примеры в этой ветке - ткни пож. носом, о чём ты говоришь

мне надо квотировать не юзеров по отдельности, а ОБЩИЙ трафик

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-10 9:31:52

какая разница?
Такие вещи в любом случае -пишутся под конкретную конфигурацию.
==========
начинай писать, создавай отдельную тему - поможем.
для начала пошлём в документацию :)
http://www.lissyara.su/?id=1067
Убей их всех! Бог потом рассортирует...

gyurza2000
лейтенант
Сообщения: 856
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Непрочитанное сообщение gyurza2000 » 2007-07-10 9:42:56

ну блин, комрады, я ж агрохимик, а не программист, боюсь не справлюсь, не представляю даже как скрипты пишутся :(

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Непрочитанное сообщение schizoid » 2007-07-10 9:44:36

гы, хател дать ссылку на ФАК, аж http://www.opennet.ru - лежить....
ядерный взрыв...смертельно красиво...жаль, что не вечно...

gyurza2000
лейтенант
Сообщения: 856
Зарегистрирован: 2007-07-08 23:53:20
Откуда: SPb
Контактная информация:

Непрочитанное сообщение gyurza2000 » 2007-07-10 9:46:42

лежить лежить opennet, сутра проверял :(, но линк жду :)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-10 9:49:01

gyurza2000 писал(а):ну блин, комрады, я ж агрохимик, а не программист, боюсь не справлюсь, не представляю даже как скрипты пишутся :(
а я химик-технолог по переработке нефти и природных энергоносителей.
и что? Сижу и пишу.
Когда учиться перестанешь - в обезьяну начнёшь превращаться.
я не хочу :)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Непрочитанное сообщение schizoid » 2007-07-10 10:28:50

http://www.opennet.ru/docs/HOWTO-RU/Bas ... Intro.html
это типа основы
ну и выше подняться http://www.opennet.ru/docs/
тут многа чего есть [/code]
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35191
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-07-10 10:30:22

не советуйте человеку плохого.
Пусть пишет на шелле - гораздо универсальней и кроссплатформенней.
У меня баш тока на десктопе, какое-то уродское приложение притащило, автор которого написал configure на нём.
Убей их всех! Бог потом рассортирует...