Архив рубрики: Linux

Несколько алиасов из одной подсети

При настраивании разного рода сервисов приходится сталкиваться с тем, что на одном интерфейсе, находится несколько алиасов. Всё бы ничего, но возникают вопросы: с каким src address будет уходить пакет?

Если алиасы из разных подсетей, то ответ сразу ясен. А если нет?

Читать далее

Обновление Ubuntu/Kubuntu AMD64 с установленными пакетами i386.

Я обновлялся с 12.10 до 14.04.

Что бы нормально обновить и без ругани, сначала нужно удалить все i386 пакеты (лучше сохранить их список куда-то в файл, что бы потом заново проинсталлить). Удаляем такой командой:

# for i in `dpkg -l | grep i386 | grep -v amd64 | awk '{print $2}'`; do dpkg -P $i; done

Причём это нужно будет делать не 1 раз, так как будут зависимости и не всё удалится с первого раза. Мне пришлось запустить команду раз 6.

Читать далее

Отслеживание изменений в RealTime

Для отслеживания изменений в реальном времени будем использовать встроенные механизмы каждой ОС, где это возможно.

Linux

DirNotify (dnotify), Inotify

FreeBSD/OpenBSD

Kqueue

Solaris

FAM, FEN

Разное

А вот и ПО, которое построено на базе вышеперечисленных механизмов, которое позволяет синхронизировать контент в реальном времени:

lsyncd

Мониторинг изменений конфигурационных файлов системы

Для отслеживания изменения конфигурационных файлов, можно использовать разного рода инструменты. Можно использовать inotify, но оно не всегда удобно.

Linux

Это называется  Linux audit trails. Как это настроить и использовать — описано здесь

FreeBSD

К сожалению, нормального аналога нет, но зато энтузиасты написали что-то похоже. Так же рекомендую прочесть другую заметку

Подключение к asterisk’у через VPN тунель

Схема работы следующая:

клиент —— (external ip=1.1.1.1) SRV (openvpn ip=10.8.0.1) —- [openvpn tunnel] —— (openvpn ip=10.8.0.6) Asterisk (NO external IP)

То есть, клиент в настройках SIP-аккаунта телефона указывает ip=1.1.1.1 и совершает звонки через сервер астериска, у которого вообще нет внешнего IP («спрятан» в офисе)

Разделим задачу на несколько.

Читать далее

Автоустановка java на debian/ubuntu

Собственно эта длинная команда, запускаемая от root’a выполнит установку java без лишних вопросов и поставит самую последнюю версию java8.

# echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list ; echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list ; apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886 ; apt-get update ; echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections ; echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections ;apt-get install -y oracle-java8-installer

Не работает WiFi на чипе bcm43142

Почему-то поддержка этой карты реализована ТОЛЬКО в пропиетарном драйвере broadcom-sta, который доступен для загрузки как с официального сайта производителя сетевой карты. Забегая наперёд, скажу, что нужный модуль (wl.ko) всё-таки есть в пакетах в репозитории Ubuntu, но установка не совсем очевидна.

Читать далее

Тюнинг mysql/postgresql on zfs/ext4

Ниже будет описан тюнинг самой mysql + OS-специфический. Тюнинг будет рассмотрен только для движка InnoDB.

mysql

Обязательно разнести базу и логи (innodb_log_group_home_dir) по разным датасетам (дискам). В идеале вынести на отдельный датасет и tmp_dir для mysql.

Читать далее

Фильтрация по MAC-адресу в различных файерволах

ipfw

add allow all from any to 192.168.2.0/24 via ${natd_interface} mac aa:bb:cc:dd:ee:ff any

pf

(только OpenBSD)

в консоли:

# ifconfig bridge0 rule pass in on fxp0 src 0:de:ad:be:ef:0 tag USER1

в pf.conf:

pass in on fxp0 tagged USER1

ipf

Нельзя сделать

iptables

/sbin/iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP

Меняем RPATH

Что такое RPATH? Wikipedia:

rpath is a term in programming which refers to a run-time search path hard-coded in an executable file or library, used during dynamic linking to find the libraries the executable or library requires.

Иными словами это жёстко зашито в заголовке бинарника. Можно попробовать поменять в момент запуска:

LD_LIBRARY_PATH=/var/other myprog &

Но это не всегда возможно и не всегда работает. Для постоянного изменения существует специальные утилиты, которые правят сам бинарник.

Читать далее