LINUX.ORG.RU

Сообщения zolden

 

Оптимизация скрипта разбора логов

Пишу скрипт (zsh) для разбора логов по кодам ошибок и количество байт прошедшему по этому коду. Логи в *.gz, поэтому предварительно вывожу их на stdout через zcat и читаю построчно.

...
{for logfile in *.gz;zcat $logfile} | while read line;do
error_code=$(echo $line | cut -d'|' -f41)
volume=$(echo $line | cut -d'|' -f67)
...
done

скрипт простой и короткий, но работает не сказать чтоб очень быстро, а логов несколько гигабайт каждый день. Грешу на способ вычленения нужных полей и тройной вывод каждой строки.
Если ли варианты оптимизации?

zolden
()

Мониторинг (SMTP->SNMP)

Здравствуйте.
Ситуация следующая: я пытаюсь сделать мониторинг VCS кластера в централизованной системе мониторинга. По независящим от меня причине в систему мониторинга хосты можно добавить только как SNMPv1. А VCS может слать трапы только в SNMPv2. Вариантов как это обойти я не смог придумать, поэтому решил подойти с другой стороны: VCS может слать уведомления об авариях по почте. Сервера не имеют доступа вовне, поэтому я выставил отправку на root@localhost. По понятным причинам я не могу заходить на хост каждую минуту, поэтому задумался о каких-нибудь костылях, чтобы локальную почту с нужной темой всё-таки каким-то образом передавать по SNMP в централизованную систему мониторинга.
Вопрос, собственно, в том как это можно реализовать. Первое, что приходит в голову это проверять почту по крону на предмет ключевых слов, а вот что и как делать дальше придумать пока не могу. Возможно есть принципиально другие способы решить мою задачу, буду благодарен за любые варианты.

zolden
()

Откуда взялся /dev/sdb?

SLES10, два идентичный диска в RAID 1+0
Вижу в логах кучу ошибок по устройству, но не пойму откуда растут ноги в этом случае.

# grep 'I/O error' /var/log/messages
Dec 28 22:00:47 host kernel: end_request: I/O error, dev sdb, sector 0
Dec 28 22:00:47 host kernel: Buffer I/O error on device sdb, logical block 0
Dec 28 22:00:47 host kernel: Buffer I/O error on device sdb, logical block 1
Dec 28 22:00:47 host kernel: Buffer I/O error on device sdb, logical block 2
Dec 28 22:00:47 host kernel: Buffer I/O error on device sdb, logical block 3
Dec 28 22:00:48 host kernel: end_request: I/O error, dev sdb, sector 0
Dec 28 22:00:48 host kernel: Buffer I/O error on device sdb, logical block 0
Dec 28 22:00:48 host kernel: end_request: I/O error, dev sdb, sector 750346112
Dec 28 22:00:49 host kernel: end_request: I/O error, dev sdb, sector 0
Dec 28 22:00:49 host kernel: end_request: I/O error, dev sdb, sector 0
Dec 28 22:01:47 host kernel: end_request: I/O error, dev sdb, sector 0
Dec 28 22:01:47 host kernel: Buffer I/O error on device sdb, logical block 0
Dec 28 22:01:47 host kernel: Buffer I/O error on device sdb, logical block 1
Dec 28 22:01:47 host kernel: Buffer I/O error on device sdb, logical block 2
Dec 28 22:01:47 host kernel: Buffer I/O error on device sdb, logical block 3
Dec 28 22:01:48 host kernel: end_request: I/O error, dev sdb, sector 0
Dec 28 22:01:48 host kernel: Buffer I/O error on device sdb, logical block 0
Dec 28 22:01:48 host kernel: end_request: I/O error, dev sdb, sector 750346112
Dec 28 22:01:49 host kernel: end_request: I/O error, dev sdb, sector 0
Dec 28 22:01:50 host kernel: end_request: I/O error, dev sdb, sector 0
[root@host]-[/root]
# fdisk -l
Disk /dev/sda: 146.6 GB, 146693685248 bytes
255 heads, 63 sectors/track, 17834 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 1045 8393931 82 Linux swap / Solaris
/dev/sda2 * 1046 6267 41945715 83 Linux
/dev/sda3 6268 17834 92911927+ f W95 Ext'd (LBA)
/dev/sda5 6268 12795 52436128+ 83 Linux
/dev/sda6 12796 16712 31463271 83 Linux
Disk /dev/sdc: 384.1 GB, 384177274880 bytes
255 heads, 63 sectors/track, 46706 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 46706 375165913+ 8e Linux LVM

zolden
()

LARTC: опции ядра

В LARTC есть пункт «убедитесь что ядро собрано с поддержкой „IP: advanced router“ и „IP: policy routing“»

Очень специфичный/нестандартный линукс без исходников, как узнать есть ли поддержка этих функций? Интересует прежде всего маршрутизация в зависимости от in интерфейса (iif)

zolden
()

Убить сокет в состоянии CLOSE-WAIT

SLES 10. Как в консоли можно убить такой «зависший» сокет стандартными средствами? Нагуглил только tcpkill но в системе такого нет

zolden
()

перенаправления в zsh и bash

В поисках вменяемого способа распаковки множественных tar (в связи с тем что tar не может распаковывать по маскам)пришёл к наиболее мне симпатичному варианту

tar -xvi < *.tar
что короче и красивее вариантов с cat и циклом

cat *.tar | tar -xvi

for a in *.tar; tar -xfv $a

но как оказалось этот вариант работает только в zsh, в баше же выдаёт

$tar -xvi < *.tar
bash: *.tar: неоднозначное перенаправление
есть ли волшебные опции шелла, чтобы мой вариант работал и в баше, а то чего то вот хочется универсальности, а копания в направлении глоббинга результата не дали

zolden
()

Shell функция с неизвестным количеством аргументов

Для упрощения рутинной и частой операции по поиску в логах пытаюсь сделать функцию. В идеале вызов будет выглядеть примерно так:

logsearch logfile location string
для простого варианта
logsearch 2010807.log /log_folder1 error
всё понятно, но не совсем понимаю как сделать поддержку wildcards, которые шелл разворачивает. Т.е. вариант
logsearch 201080*.log /log_folder{1,2,{8..12}} error
уже не прокатит

Shell - zsh, но вариант для баша тоже пригодится

zolden
()

SSH туннель без шифрования

Использую ssh (SLES10, OpenSSH4.2) чисто для проброски порта. Шифрование для этой задачи избыточно, бесполезно и, не смотря на то, что железо позволяет, не хотелось бы чтобы шифрование влияло на производительность - в идеале трафик должен проходить прозрачно. Есть ли какие-то варианты отключить полностью шифрование?

zolden
()

Загрузочный USB из нескольких CD

Есть дистрибутив SUSE на 4х CD. Ставить надо на ~10 серверов. На них ничего не предустановлено, сети нет, развёртывание централизованной системы установки не будет стоить затраченных усилий, но 40 раз диски переставлять тоже не хочется. Как мне видится - самый оптимальный вариант загрузка и установка с USB, но всё было бы тривиально если бы дистрибутив был на 1 DVD. Существует ли способ с минимумом ручных действий переделать 4CD->загрузочный USB?

zolden
()

RSS подписка на новые темы