Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


среда, 13 июня 2018 г.

И снова о просмотре логов squid и выводе полей в awk.

Очередной способ получить человеко-читаемое время в логах прокси-сервера.

awk '{print strftime("%Y-%m-%d %H:%M:%S",$1) " " substr($0, index($0,$2))}' FILENAME

Основная идея: по умолчанию поля в этом логе отделяются пробелами. Awk преобразует первое поле (дата и время в юникс-формате) в читаемый вид и выводит его. Далее печатается пробел, после которого печатается всё от начала второго поля до конца строки.

Как выяснилось, это самый быстрый способ заставить awk вывести "всё остальное", не перебирая поля последовательно в цикле.

Решение найдено здесь.

воскресенье, 10 июня 2018 г.

bash: поиск и замена

Sed, awk, grep - всё это здорово. Но это внешние программы, а что же по части встроенных? Их есть у меня!

${переменная/что/на что} - меняем первое вхождение "что" на "на что"
${переменная//что/на что} - меняем все вхождения "что" на "на что"

Например, есть переменная, в которой хранится путь:

filNam="sambas/samba201/shares.conf"

но из этого пути мне надо сформировать имя файла. Не выделить собственно имя из пути, а просто как-то изменить путь. Легко! Заменим все слэши на дефисы.

$ echo ${filNam/\//-}
sambas-samba201/shares.conf

$ echo ${filNam//\//-}
sambas-samba201-shares.conf

суббота, 9 июня 2018 г.

bash: сравнение строк без учета регистра

Понадобилось сравнить строки, конкретно - атрибуты CN и SAMAccountName в AD. Только не спрашивайте, на кой чёрт мне в баше надо сравнивать виндовые данные. Просто удобнее, чем километровые команды в PS.

Можно, конечно, сначала эти строки преобразовать к верхнему или нижнему регистру с помощью tr [:upper:] [:lower:], но это лишние команды и лишнее время выполнения скрипта, особенно если надо сравнивать много таких строк.
Чтобы избежать вызова этих лишних команд, воспользуемся встроенными возможностями:

${переменная,,} - (две запятых) привести переменную к нижнему регистру
${переменная^^} - (два циркумфлекса) привести переменную к верхнему регистру

Найдено здесь.

p.s. для вытаскивания нужных атрибутов из AD я пользуюсь как самбовской net, так и adtool, про которую уже рассказывал.

среда, 25 апреля 2018 г.

Zimbra: место на диске и протухшие сообщения

Я уже упоминал о проблемах с зимброй: в каталогах хранилища скапливаются древние файлы сообщений, которые давным давно удалены. До поры до времени я чистил их вручную, не зная, не аукнется ли это мне проблемами с доступом к п/я и т.п.
Оказалось, не всё так плохо. Хотя и не очень хорошо. Совершенно случайно выяснил, что это задокументированный баг, который нельзя устранить, но с последствиями которого можно бороться штатными средствами.
Итак, информация в зимбре хранится в более чем сотне БД MySQL. То есть, есть 100 штук баз mailboxgroupXXX, где XXX от 1 до 100, и несколько вспомогательных. Блобы, то есть, файлы почтовых сообщений, хранятся отдельно в "кластеризованном хранилище", и они-то и вызывают головную боль: движок MySQL не освобождает место, занятое ими.
В статье рассмотрено несколько вариантов, надо будет попробовать, а то совсем уже тоскливо.

Под катом текст статьи.

Теперь по месту на диске.
Обнаружил, что пропала или очень неактуальна статистика по использованию дискового пространства. Оказалось, что сам виноват: раньше она обновлялась с интервалом в 10 минут и заваливала меня сообщениями об исчерпании места, после чего я увеличил интервал до 5.5 часов. За что и поплатился.
В рабочем порядке уменьшил тот интервал до 3600 секунд, посмотрим, не полегчает ли сборщику статистики


среда, 4 апреля 2018 г.

WMIC в Ubuntu: продолжение

Продолжая начатую ранее тему опроса виндовых компов по WMI из-под линукса.

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

In the interest of knowledge sharing here is how to get wmic working on Ubuntu 16.04 LTS, the issue was the limit of the number of open files
ulimit -n 100000
cd /tmp
mkdir wmic
cd wmic

apt install autoconf gcc libdatetime-perl make build-essential g++ python-dev
wget http://www.opsview.com/sites/default/files/wmi-1.3.16.tar_.bz2
bunzip2 wmi-1.3.16.tar_.bz2
tar -xvf wmi-1.3.16.tar_
cd wmi-1.3.16/

vim Samba/source/pidl/pidl
:583 (to jump to line 583)
remove the word defined before @$pidl
:wq 

export ZENHOME=/usr
make "CPP=gcc -E -ffreestanding"
cp Samba/source/bin/wmic /bin
Should now be working.

Проверим...

понедельник, 19 февраля 2018 г.

Zimbra: частота предупреждений о заполненности диска

По умолчанию стоит 10 минут и это задалбывает - в ящике скапливают тонны бесполезных сообщений. Уменьшаем интервал:

zmlocalconfig -e zmstat_disk_interval=19800

19800 секунд составляет 5.5 часов

Zimbra: статистика по размерам почтовых ящиков

Статистику по размерам почтовых ящиков можно смотреть через веб-интерфейс. Но это не всегда удобно, а иногда и невозможно.

Но это ж линукс, детка!

zimbra@server:$ zmprov gqu имя_сервера|sort -k 3 -n|column -t

и получаем красивую ровную табличку, отсортированную по правому столбцу, где указан, собственно, размер занятого места. (в первом столбце адрес учётки, во втором - квота для нее)

gqu -- GetQuoteUsage

-k 3 -- сортировать по третьему столбцу
-n -- сортировать числа как числа, чтобы 20 шло после 19, а не после 10

-t -- подобрать подходящие для красивой таблички ширины столбцов