Рубрика «linux» - 243

Недавно мне поставили такую задачу: Есть много коммивояжеров с ноутбуками которые разъезжают по стране и что-то кому-то впаривают продают.
Т.к. им нужны актуальные данные о наличии товара и ценах, время от времени они подключаются к центральному серверу через интернет и сливают себе обновленные данные.

Условия к задаче:
— Частота и периодичность выхода на связь коммивояжеров неизвестна, ровно как и дилтельность.
— Должно все работать максимально надежно, потому как коммивояжеры они такие «коммивояжеры».
— Решение должно быть на базе Mysql master-slave replication.

Выводы из условия:

— Для надежности, на стороне клиента(slave) минимум настроек, никаких скриптов по крону, все должно быть внутри mysql.
— Т.к. неизвестно когда и с какой периодичностью будут подключаться к master базе коммивояжеры, binlog на мастере нужно хранить так долго пока все slave не скачают его себе.

Решение:
— Информировать мастер, какие slave и сколько уже «скачали». А точнее в какой позиции самый «ленивый» slave.
— Все остальные binlog можно смело удалять.

Читать полностью »

История появления DualBoot (Windows 8+Linux Mint) на моём ноутбуке

Предыстория

В один прекрасный осенний вечер я решил обзавестись новым ноутбуком без предустановленной ОС чтобы начать всё (опять) с чистого листа. Немного побродив по просторам интернета нашёл себе вполне пристойную модель Toshiba SATELLITE C50-A-L2W в приемлемом ценовом диапазоне. Нашел магазин в своем городе в котором цена на эту модель была до ужаса низкой и взял себе 1 день чтобы ещё раз подумать и всё окончательно взвесить. Но на следующий день по приходу в этот магазин меня ждало разочарование — машинка ушла к другому. Видимо не судьба… Ну и погоревав немного (ноутбук-то нужен) приглядел себе HP Pavilion SleekBook 15-b050sr. Пусть с предустановленной Win8, пусть без дискретной видеокарты и прочих примочек. Понравился он мне.

Читать полностью »

Возникла необходимость быстро и качественно настроить доступ из домашней обстановки в трудовую среду рабочего помещения. Поскольку дома компьютер находится за линией фронта натизации от провайдера, да и на работе локальная подсеть спрятана за забор NAT, то в качестве решения для организации безопасного доступа для вечернего досуга на работе был выбран замечательный продукт OpenVPN, который хорошо справляется с такими препонами. Помимо этого довольно прост (относительно) в настройках и имеет клиентские решения под известные операционные системы и популярные мобильные платформы (отговорка что ты не за компом может быть не актуальной).
Читать полностью »

в 9:22, , рубрики: bash, linux, pipe, метки: , ,

Pipe — что это?

Pipe (конвеер) – это однонаправленный канал межпроцессного взаимодействия. Термин был придуман Дугласом Макилроем для командной оболочки Unix и назван по аналогии с трубопроводом. Конвейеры чаще всего используются в shell-скриптах для связи нескольких команд путем перенаправления вывода одной команды (stdout) на вход (stdin) последующей, используя символ конвеера ‘|’:

cmd1 | cmd2 | .... | cmdN

Например:

$ grep -i “error” ./log | wc -l
43

grep выполняет регистронезависимый поиск строки “error” в файле log, но результат поиска не выводится на экран, а перенаправляется на вход (stdin) команды wc, которая в свою очередь выполняет подсчет количества строк.

Логика

Конвеер обеспечивает асинхронное выполнение команд с использованием буферизации ввода/вывода. Таким образом все команды в конвейере работают параллельно, каждая в своем процессе.

Размер буфера начиная с ядра версии 2.6.11 составляет 65536 байт (64Кб) и равен странице памяти в более старых ядрах. При попытке чтения из пустого буфера процесс чтения блокируется до появления данных. Аналогично при попытке записи в заполненный буфер процесс записи будет заблокирован до освобождения необходимого места.
Важно, что несмотря на то, что конвейер оперирует файловыми дескрипторами потоков ввода/вывода, все операции выполняются в памяти, без нагрузки на диск.
Вся информация, приведенная ниже, касается оболочки bash-4.2 и ядра 3.10.10.

Простой дебаг

Утилита strace позволяет отследить системные вызовы в процессе выполнения программы:

$ strace -f bash -c ‘/bin/echo foo | grep bar’
....
getpid() = 13726                   <– PID основного процесса
...
pipe([3,  4])                       <– системный вызов для создания конвеера
....
clone(....) = 13727                <– подпроцесс для первой команды конвеера (echo)
...
[pid 13727] execve("/bin/echo",  ["/bin/echo",  "foo"],  [/* 61 vars */] 
.....
[pid 13726] clone(....) = 13728    <– подпроцесс для второй команды (grep) создается так же основным процессом
...
[pid 13728] stat("/home/aikikode/bin/grep",   
...

Видно, что для создания конвеера используется системный вызов pipe(), а также, что оба процесса выполняются параллельно в разных потоках.
Читать полностью »

От переводчика: в ближайшее время планирую перевести остальные две части данной трилогии, надеюсь, кому-нибудь она окажется полезной.

Если вы безопасник-аналитик, то математика является частью вашей повседневной деятельности. В данной серии статей я постараюсь показать вам практическое применение математики в деятельности вашего подразделения. Надеюсь, что данный прагматичный подход позволит расширить применение математики в вашей деятельности.

Часть 1: теория множеств, диаграмма Венна и IP-адреса

Сегодня безопасники осуществляют мониторинг с помощью различных индикаторов, размещенных в различных процессах. Хорошими примерами этих индикаторов являются списки или множества (то есть, уникальные наборы данных) IP-адресов, доменных имен, URL, сигнатур файлов и т.п. Поиск элементов данных множеств в лог-файлах, сетевом трафике, предупреждениях IDS, является очень распространенной задачей. Большинство этих действий являются простым набором операций, которые могут быть формализованы с помощью диаграмм Венна и выполнены с помощью программных средств. Наборы операций также могут быть эффективны при сравнении наборов данных, полученных в разные временные периоды для поиска соответствий или различий в этих наборах данных.

Читать полностью »

Вчера, 23 сентября, Энди Ритгер, лидер команды ответственной за разработку драйверов для Unix систем, в списке рассылки разработчиков nouveau, открытого драйвера для видеокарт NVIDIA, опубликовал часть документации по Device Control Block, таблице содержащей информацию о топологии и содержании видеокарт.

В сообщении говорится, что компания NVIDIA в будущем планирует продолжать публиковать документацию по своим видеокартам, а также что разработчики будут обращать внимание на список рассылки nouveau, и разъяснять непонятные места в документации.

Читать полностью »

Админы бывают двух видов: те кто…

  1. еще не делают бекапы
  2. уже делают

Итак, бекапы уже делаем, и не важно, свой ли опыт или чужой послужил тому причиной. И уже знаем, что один бекап нужно иметь под рукой, а другой — за тысячу километров. С бекапом который «под рукой» — в целом все понятно. С удаленным бекапом тоже все просто, если у вас есть желание и возможности оплачивать эти услуги. А если хотим «на шару»?

Читать полностью »

Не так давно тут проходила статья про LLD. Мне она показалась скучной т.к. описывает примерно то же, что есть и в документации. Я решил пойти дальше и с помощью LLD мониторить те параметры, которые раньше нельзя было мониторить автоматически, либо это было достаточно сложно. Разберем работу LLD на примере логических процессоров в Windows:
image

Изначально интересовал расширенный монтиринг помимо ядрер CPU и нагрузка на физические диски. До того как обнаружение было введено, эти задачи частично решались ручным добавлением. Я добавлял условные диски в файл конфигурации zabbix_agent и вообще по-разному извращался. В результате это было очень неудобно, добавлялось много неприятной ручной работы и вообще неправильно в общем как-то было :)
В итоге получается схема, которая автоматически определяет ядра в системе, а также физические диски, установленные в системе и добавляет необходимые элементы сбора данных. Для того, чтобы узнать как это реализовать у себя, добро пожаловать под кат. Я попытаюсь более-менее подробно расписать работу на примере CPU и то как сделать тоже самое, но для физических дисков.
Читать полностью »

Статья является пошаговым руководством по построению масштабируемого отказоустойчивого файлового хранилища, доступ к которому будет осуществлен по протоколам Samba, NFS. В качестве фаловой системы, которая будет непосредственно отвечать за сохранение и масштабирование файловой шары будем использовать GlusterFS, о котором было уже достаточно написано читателим. Так как GlusterFS — часть Red Hat Storage, туториал написан для RH — like систем.
Масштабируемый отказоустойчивый фаловый сервис на базе CTDB, GlusterFS
Читать полностью »

В рамках действия соглашения между Oracle и Microsoft подписанного в июне 2013 года для пользователей Windows Azure стали доступны официальные образы продуктов компании Oracle – WebLogic Server 11g/12c, Oracle Database 12c, Oracle Linux 6.4.0.0 и Java 6/7. При этом и Java, WebLogic и Oracle Database доступны как на базе виртуальных машин Windows Server 2012 так и на базе Oracle Linux.

image

Лицензирование этих продуктов производится по принципу “своя лицензия”, что подразумевает, что пользователи должны воспользоваться собственными лицензиями на продукты Oracle. Поддержка продуктов осуществляется компанией Oracle.

Подробное описание ценообразования и лицензирования продуктов Oracle можно найти на официальном портале Windows Azure. Там же можно найти ответы на наиболее часто задаваемые вопросы.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js