Nix

  • Unix
  • Linux
  • BSD
  • Unix-like
test

Добавляем Input(syslog с удаленной машины) в Graylog2

видим графики и записи логов. В прошлом материале мы установили Graylog2, теперь же настало время добавить удаленную машину.

Итак, добавим изначально логирование из Syslog.
В интерфейсе Graylog2 идем в меню System->Inputs
test

Ставим Graylog2(сервис централизованного сбора и хранения логов) на Debian 9

graylog2 login page Давно хотел сделать централизованный сбор логов и их просмотр. И вот вместе сошлись желание, возможность и время. Ставиться он в принципе 1 в 1 к оф. доке, но там на английском, а здесь на русском. Официальная дока

111.111.111.111 - этот IP адрес в настройках вы меняете на свой IP адрес сервера

Зачем ставить Graylog

В чем в общем-то смысл установки Graylog... Когда у вас больше чем 2-3 сервера то поиски и мониторинг этих серверов начинает занимать достаточно много времени. Тут то на выручку и приходят системы мониторинга(аля Zabbix) и централизованного хранения логов(аля Graylog). Zabbix достаточно мощная система и в даже базовой установке мониторит столько метрик серверов что существенно позволяет не заморачиваться на то, все ли в порядке с сервером. Но он наблюдает за метриками. Логи же вторая половина картины. Еще одной плюшкой централизированного хранения логов это то что даже взломам один из серверов и удалив логи, они будут удалены с атакованного сервера, но останутся доступными вам в централизованной системе. Не говоря уже об удобстве просмотра с одного интерфейса, а не кучи разрозненных файлов.
Итак, погнали...

Ставим Java и...
test

Debian + Samba + Windows 10 + Android(ES Проводник) + Fail2Ban(защита от перебора паролей)

В этом материале я покажу как настроить Samba на сервере Debian, а так же подключить клиенты в Windows 10 и Android. В конце материала мы так же настроим доп. защиту для Samba с помощью fail2ban от перебора паролей. добавление сетевого диска в Windows 10

Если на устройствах не всегда хватает памяти для хранения книг, видео, прочего или же нужен доступ с разных устройств, можно взять платный аккаунт на Google Drive или Dropbox. Множество других сервисов предоставляет свой кусочек места в интернете на 1Тб данных и больше начиная с 9.у.е. в месяц. Но если у Вас есть тестовый какой-нибудь сервер в интернете, как например у меня, то можно на нем разместить. Сервер можно взять например на Hetzner-е по достаточно дешевой цене. Это б/у сервера но их гораздо проще себе позволить и часто они стоят как средний VPS. Отзывы о них разные, но мне в принципе нравиться все. Но статья не о том.

Настраиваем Samba

Устанавливаем Samba apt-get install samba

Добавляем системного...
test

Linux SSH Jail и доступ к директориям

В общем встала задача дать доступ ограниченный через sftp, но только к двум определенным папкам.
Создаем пользователя и лочим его в домашней директории Об этом много где написано.
А вот теперь добавим в эту директорию пару папок к которым пользователь имеет доступ:
# mkdir newfolder
# mount --bind /folder/to/access/ newfolder

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

Повторение команды в Linux каждый n секунд

Маленькая заметка о полезной команде Watch

Когда-то мне понравилась команда multitail, которая позволяет отслеживать вывод команд и обновление логов в одном терминале разбивая его на несколько окон. Но есть вариант куда проще. Чтобы повторять команду постоянно каждых несколько секунд достаточно использовать команду watch, например статус gearman сервера:
watch -n 2 gearadmin --status

Или каждых 3 секунды просматривать последних 10 строк лога:
watch -n 3 tail -10 /var/log/php-cli.log
test

Bash-скрипты бекапа баз данных MariaDB и Bash-скрипт массового восстановления из бекапа.

Решил выложить пару скриптов с помощью которых работаю делаю бекап и восстановление из него. Все просто до безобразия, но мало ли, может кому пригодиться.

Скрипт создания бекапа

Создает папку с названием - текущей датой и все базы данных складывает в файл.
Изначально создадим файл mysqlbackup.sh с содержимым:
dbpass="pass"
DATE_DIR=$(date +%Y-%m-%d-%H)
mkdir /home/nelex/MySQL_BKP/${DATE_DIR}
for dbname in `echo show databases| mysql -u root -p$dbpass`; do
echo "Dump $dbname..."
mysqldump -u root -p$dbpass $dbname > "~/MySQL_BKP/${DATE_DIR}/$dbname.sql"
Создадим и папку в которую будет складываться бекап и делаем скрипт исполняемым::
mkdir ~/MySQL_BKP
chmod +x mysqlbackup.sh

Массовое создание баз данных из sql файлов и их импорт.

Понадобилось мне залить сразу несколько баз данных, и чтобы не делать это все руками я написал этот небольшой скрипт.
Скрипт берет указанную в первом параметре папку и из нее проходит по каждому SQL файлу, создает базу с названием файла без ".sql" и загоняет файл в нее. Все просто:
#!/bin/bash
indir=$1
dblogin="root"
dbpass="pass"
postfix=".sql"
prefix="./"
cd $indir
for file in `find ./ -type f -name "*$postfix"`
do
    table_tmp=${file%$postfix}
    table_tmp=${table_tmp#$prefix}
    table=${table_tmp,,}
    mysql -u$dblogin -p$dbpass -e "create database $table default charset utf8"
    mysql -u$dblogin -p$dbpass $table < $file
Делаем файл исполняемым:
chmod +x mysqlbackup.sh
Не забываем что наш скрипт бекапа создает и таблицы используемые самой СуБД, так что если вам они не нужны, удалите/переместите их.
Таким образом запускаем файл:
import_from_dir.sh ~/MySQL_BKP/2015-06-02-14

Вот и все.
test

Ошибки установки пакетов в Debian "missing final newline" и "bash: /usr/bin/apt-get: cannot execute binary file: Exec format error"

Жизнь на частично экспериментальной версии дистрибутива привносит свои приключения. И снова ошибка. На этот раз вида:
dpkg: unrecoverable fatal error, aborting:
files list file for package 'imagemagick-6.q16' is missing final newline

И таких ошибок было несколько, появлявшиеся одна за другой. Решение достаточно простое. Нужно найти файл с соответствующим названием и переместить в временную директорию. Не знаю стоит ли его возвращать на место, но переместить с места куда-нибудь уж точно стоит.
# mkdir /var/lib/dpkg/info/old
#mv /var/lib/dpkg/info/imagemagick-6.q16.* \  /var/lib/dpkg/info/old/
У меня таких файлов было несколько, перемещал их все, после этого dpkg заработал.
Следующая ошибка в у меня выглядела при запуске команд apt так:
bash: /usr/bin/apt-get: cannot execute binary file: Exec format error

Чтобы ее поправить нам и нужен был рабочий dpkg, печально было бы если бы тот в свою очередь тоже умер.
На этой странице выбираем нужный нам дистрибутив и ищем более свежую версию apt, в нашем случае в категории "Administration Utilities". Качаем и ставим командой:
dpkg -i apt.deb

Вероятно что выдаст сообщение о проблеме с зависимостями, точнее их версиями. В моем случае:
Unpacking libapt-pkg-dev:amd64 (1.0.9.10) over (1.0.9.7) ...
dpkg: dependency problems prevent configuration of libapt-pkg-dev:amd64:
libapt-pkg-dev:amd64 depends on libapt-pkg4.12 (= 1.0.9.10); however:
  Version of libapt-pkg4.12:amd64 on system is 1.0.9.7.
libapt-pkg-dev:amd64 depends on libapt-inst1.5 (= 1.0.9.10); however:
  Version of libapt-inst1.5:amd64 on system is 1.0.9.7.

dpkg: error processing package libapt-pkg-dev:amd64 (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
libapt-pkg-dev:amd64
Это значит что указанные пакеты так же нужно скачать нужной версии и поставить до установки этого пакета.
На этом все.
test

Рекурсивно задать права доступа для всех папок и для всех файлов

В очередной раз копируя шаблон админ-панели в новый проект, получил неправильные права доступа. Чтобы все махом поправить, нужно всем директориям дать доступ на чтение и открытие, а всем файлам права на чтение для всех.
Выполнить это можно всего-лишь двумя командами:
chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)


Найдено на superuser.com
test

AwesomeWM: виджет индикатор раскладки своими руками

Надоело без виджета раскладки клавиатуры, да и хотелось сделать свой виджет для Awesome WM. Версия Awesome WM 3.5.

Немного о самом виджете

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

Создаем виджет

Качаем иконки
Распаковываем сами картинки(размером 48 пикселей), нужные для наших раскладок в ~/.config/awesome/keyboard/flags, предварительно создав нужные папки keyboard/flags.

В общем, если в двух словах, нам нужно создать виджет до добавления всех виджетов на панель, а потом разместить в нужном месте вместе с другими виджетами.
Код размещения виджетов выглядит приблизительно так:
test

Ошибка при импорте дампа базы в MariaDB

При импорте дампа базы через консоль получил следующую ошибку:
# mysql -pmypass mydm < mydb.sql
ERROR 1064 (42000) at line 3597: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '*/' at line 1


Вся беда начиная со строки 3597 оказалась из-за комментариев разделенной символом новой строки на несколько строк.
К слову сказать, комментарии вида:
/*!50003 */
Представляют из себя инструкцию MySQL и MariaDB произвести некоторые действия. Но такой вот перенос разрывает по всей видимости такую инструкцию.
Так как файл достаточно большой, открыть его удобнее всего vim-ом. Можно конечно составить регулярку для sed, но у меня всего пару комментариев, по этому проще и удобнее удалить вручную
#vim mydb.sql

Переходим на нужную строку:
:3597

Совмещаем текущую строку со следующей зажав Shift+j Когда отредактировали переносы, сохраняем и выходим.
:wq

Ну и дальше у нас импорт проходит все достаточно просто
mysql -pmypass mydm < mydb.sql

P.S. Может есть варианты получше, поудобнее, если знаете напишите.
test

Ошибка при обновлении Debian GNU\Linux dpkg: error processing procps (--configure)

Возникла проблема при апгрейде, выглядит так:
dpkg: error processing procps (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
procps
E: Sub-process /usr/bin/dpkg returned an error code (1)


Моя версия Debian GNU\Linux:
# lsb_release -rd
Description: Debian GNU/Linux 8.0 (jessie)
Release: 8.0


Вся беда оказалась всего-лишь в измененном вручную /etc/sysctl.conf. Я добавлял туда две строчки для выгрузки драйвера который мешает другим драйверам.
Делаем бекап
cp /etc/sysctl.conf /etc/sysctl.conf_bkp


И удаляю те строки что сам добавлял. После чего апгрейд проходит успешно.
test

Работа над ошибками 2 или неприятности линуксоидов

Pre: Тем кто столкнется с подобным...


Внутри:
  • Загрузка в частично слетевший Grub2 и его восстановление
  • wicd не подключается к Wi-Fi роутеру
  • W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168h-1.fw for module r8169
  • Нет Awesome в GDM
  • Awesome WM не применяются настройки из ~/.config/awesome/
test

Debian GNU\Linux: работа над ошибками

В здоровом теле, здоровый дух. Как-то так и с компьютерами и софтом.

Итак, решил я прошерстить свою систему на предмет возникающих ошибок и разобраться хотя бы с частью из них. Для того чтобы увидеть какие ошибки сыпятся можно смотреть логи, а можно в дополнение ко всему запускать софт из терминала, как то делаю я:
#chromium&


При этом весь поток всякой чепухи будет литься в консоль. Можно сделать перенаправление вывода в файл в виде:
#chromium >/tmp/chomium.log&


Смотрим.

Ошибка 1.

Fontconfig error: Cannot load default config file


test

Debian GNU\Linux 8 + broadcom wi-fi + ядро 3.18

С каждым годом мои заметки про Wi-Fi под линуксом становятся все короче. И вот вам очередная.
Решил я собрать ядро Zen-Kernel 3.18 себе, прошлое 3.15 было. И не велико дело собрать сейчас ядро, вопрос с дровами на wi-fi. Попробовал собрать из исходников под 3.15 что были, патчи накладывал, качал более свежую версию дров, но все никак Wi-Fi не заводился. Работать нужно, забил на пару недель. И вот снова...
В итоге все очень просто оказалось.

Дрова Broadcom разбиты по разным пакетам в Debian репозитории.
К примеру BCM43 поддерживает чипсеты: BCM4301, BCM4306, BCM4311, BCM4312, BCM4318, BCM4321 and BCM4322
Мой же чипсет в пакете brcm80211: BCM4313,BCM43224,BCM43225 Установка описана прямо на странице. Единственное что оставалось сделать, переинициализировать модуль с дровами в системе, именно из-за этого и не завелся wi-fi сразу, не смотря на то что пакет сам у меня стоял и дрова подхватились, но устройство в iwconfig -a так и не появлялось. Итак, заветные строчки:
modprobe -r brcmsmac
modprobe brcmsmac


Теперь iwconfig -a показывает:
-a        No such device


А нифига он нормально не показывает. Показывает что нет устройства. Но это уже после подключения к точке доступа, до этого показало мое устройство :-D . Сеть появилась, а это главное, по принципу занятого Zen-линуксоида, остальное пока меня мало волнует. Работает - не трогай. Пока не поломалось.

К слову сказать, зато ifconfig -a выдает наш wlan0:
wlan0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx 
          inet addr:192.168.1.105  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:134 errors:0 dropped:0 overruns:0 frame:0
          TX packets:167 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:50
          RX bytes:26716 (26.0 KiB)  TX bytes:39745 (38.8 KiB)


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

DBF в MySQL: Как я конвертировал ФИАС.

Добрый день, уважаемый читатель!

Вот, как всегда мне достаются весьма увлекательные задачи. В этот раз нужна была база улиц Челябинска и Казани. Те кто с подобным сталкиваются наверняка слышали о КЛАДР-е. Это такой себе список городов, улиц и т.д. Но он к 2011 году успел устареть морально и в плане разработки его забросили. К слову, тот же самый разработчик решил начать с чистого листа и в 2011г, и по текущее время разрабатывает базу ФИАС. База большая, архив 2ГБ, в распаковке около 10Гб. И вот я решил загнать всю эту базу в MySQL. Заодно скилы подтянуть. В дополнение ко всему единственный нормальный конвертер dbf2mysql для линукса поддерживает кодировку только latin1.

Выкладывают эту базу на сайте Федеральной Налоговой Службы(ФНС)
Выкладывают ее там в формате DBF и XML. Мы будем работать с DBF.

Итого, имеем платформу Debian GNU\Linux на 8-ядерном сервере, 12Гб ОЗУ и базу данных разбитую файликами на 10Гб в формате DBF.

Сам скрипт конвертации вышел таким вот:

Страницы

Subscribe to RSS - Nix