Коварный UNION..

Иной раз не знаешь где затупишь. Казалось бы простой запрос с использованием UNION, а потратил кучу времени, чтобы выяснить, почему он иногда не корректно отрабатывает.

Было:

Стало:

В чем соль? Оператор UNION без опции ALL оказывается обладает свойствами группировки одинаковых значений в запросе. Например у меня, при одинаковых одновременных значениях даты и суммы происходила группировка этих строчек в одну…

Генерируем случайные файлы в консоли Linux

Автоматическая «прибивка» пользователей к портам устройств в LanBilling 2 путем опроса MAC свичей

Дано:

1) LanBilling в которой ведется журнал авторизации пользователей по логину с указанием MAC адреса устройства с которого прошла авторизация.

2) В LanBilling нет привязки пользователя ни к порту, ни к сетевому устройству.

Задача: опросить все сетевые устройства, узнать все MAC адреса и порты свичей на которых «висят» пользователи

Решение:

— получаем у свичей информацию о MAC адресах на портах
— ищем этот MAC  в истории авторизации LanBilling — получаем учетку
— «прибиваем» эту учетку в LanBilling к конкретному устройству, к конкретному порту.

Вуаля! Теперь когда пользователь звонит «ничего не работает», мы знаем на каком свиче и на каком порту он сидит. Ура товарищи!

» Читать далее

Быстрый доступ к основным командам в Linux

Я человек ленивый. А потому часто используя одни и те-же команды в консоли Linux, сделал себе диалоговое окошко с меню, отображаемое при помощи bash, которое помогает мне сократить время на вспоминание что где когда и зачем. А помогла мне в этом утилита dialog.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/sh
DIALOG=${DIALOG=dialog}
tempfile=`mktemp 2>/dev/null` || tempfile=/tmp/test$$
trap "rm -f $tempfile" 0 1 2 5 15
 
$DIALOG --clear --title "Выбор терминала для работы" \
        --menu "Выберите терминал:" 40 51 40 \
        "This"  "Остаться дома" \
        "Chaos"  "billing.wedwedq.ru" \
        "Athena"  "billing.yefwerfe.ru" \
        "Ares"  "billing.wefdwe.tv" \
"---------" "------"\
        "Eros" "Сервер доступа Шексна,Хохлово(Ш)" \
        "Helios" "Сервер доступа Чагода (Ш)" \
        "Nike" "Сервер доступа Кадуй (Ш)" \
        "Artemis" "Сервер доступа Лоста (Ш)" \
        "Poseidon" "Сервер доступа Вытегра (Ш)"  2> $tempfile
 
retval=$?
 
choice=`cat $tempfile`
 
case $retval in
  0)
    if [ $choice = "This" ]; then
     clear
     exit
    fi
 
    if [ $choice = "Ares" ]; then
     ssh billing.qwefqwe.tv -l логин
    fi
 
    if [ $choice = "Helios" ]; then
     ssh 121.237.158.1 -l логин
    fi
 
    if [ $choice = "Nike" ]; then
     ssh 127.27.138.1 -l логин
    fi
 
    if [ $choice = "Artemis" ]; then
     ssh 122.144.337.120 -l логин
    fi;;
  1)
    echo "Отказ от ввода.";;
  255)
    echo "Нажата клавиша ESC.";;