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

Наработки и статьи по работе с Linux

Не запускается MySQL. Исправляем ))

Сначала смотрим логи mysql. Вдумчиво. Возможно что-то удастся понять и устранить (может банально кончилось место на диске).

Если не помогает, то в файле my.cnf добавляем строчку:

innodb_force_recovery=1

И далее пытаемся запустить mysql:

sudo service mysql start

Если запустилось — проверяем таблицы:

mysqlcheck -uroot -pукацука --auto-repair --all-databases

Далее убираем из my.cnf строчку innodb_force_recovery=1 иперезапускам сервис:

sudo service mysql start

Есть шанс что всё заработает 😉

Проверка доступности IP адресов по списку

Озадачил тут  Роскомнадзор: а проверьте, доступно 65321 IP адрес в вашей сети? И предоставило текстовый файлик. А нам что? 5 минут и скрипт готов:

#!/usr/local/bin/python3
# coding=utf-8
import socket
import threading
import time 
import sys
import os

vr="1.0"
thread_count=100
info="Сей дивный скрипт пробегает список IP и смотрит доступен он или нет"
copyleft="by Pavel Gribov, http://грибовы.рф";

#выводим имя ПК и версию скрипта                
hostname = socket.gethostname()
print ("Server: ",hostname)
print ("Version: ",vr)
print ("info: ",info)
print ("Copyright: ",copyleft)

def worker(ip):     
    response = os.system("fping " + ip+" >/dev/null")
    if response == 0:
        print ("Test:"+ip+" -ok");
  
if len(sys.argv)>=2: 
    fname=sys.argv[1]
else:
    print ("Параметры запуска:")
    print ("<filename>  - текстовый файл со списком IP")
    exit(0)
        
    
with open(fname, 'r') as f:
  ips= f.read().splitlines()    
   
for ip in ips:   
  thread = threading.Thread(target=worker, args=(ip,)).start()	
  while threading.active_count() >thread_count:
     time.sleep(1)

while threading.active_count() >1:
     time.sleep(1)

Настройка FreeRadius для авторизации по DCHP Option 82 через Mikrotick

На микротике должен быть поднят DHCP сервер, который обращается к Radius клиенту, который обращается к Radius серверу.

queries.conf :

sql_user_name = "%{%{Agent-Remote-Id}:-%{%{User-Name}:-DEFAULT}}"

authorize_check_query = "\
    SELECT id, username, attribute, value, op \
    FROM ${authcheck_table} \
    WHERE REPLACE(mac,':','') = REPLACE(REPLACE('%{SQL-User-Name}','0x',''),':','') and sw_port=''\
    UNION ALL select id,username,attribute,value,op from radcheck where upper(sw_mac)=upper(REPLACE('%{Agent-Remote-Id}','0x','')) and upper(sw_port)=upper(RIGHT('%{Agent-Circuit-Id}',2))"

authorize_reply_query = "\
    SELECT id, username, attribute, value, op \
    FROM ${authreply_table} \
    WHERE REPLACE(mac,':','') = REPLACE(REPLACE('%{SQL-User-Name}','0x',''),':','') and sw_port=''\
    UNION ALL select id,username,attribute,value,op from radreply where upper(sw_mac)=upper(REPLACE('%{Agent-Remote-Id}','0x','')) and upper(sw_port)=upper(RIGHT('%{Agent-Circuit-Id}',2))"

В sites-enabled/default :

authorize {

    update control {
    Auth-Type := Accept
    }
...

Локализация консоли в UTF-8 FreeBSD 10.x, 11.x

Добавляем в файл /boot/loader.conf

kern.vty=vt

Добавляем в файл /etc/rc.conf способ переключения раскладки в консоли клавишами CTRL+SHIFT
keymap=»ru.win»

Проверяем тип консоли в файле /etc/ttys, должно быть xterm

ttyv0 "/usr/libexec/getty Pc" xterm on secure

Редактируем класс «russian» в файле /etc/login.conf, должно получиться следующее:

russian|Russian Users Accounts:\
:charset=UTF-8:\
:lang=ru_RU.UTF-8:\
:tc=default:

Обновляем /etc/login.conf.db командой:

cap_mkdb /etc/login.conf

Локализуем shell, в  ~/.cshrc, добавив строки:

setenv LANG ru_RU.UTF-8
setenv MM_CHARSET UTF-8

Пользователю необходимо прописать класс russian, командой:

pw user mod user_name -L russian

Где user_name — имя пользователя
При создании нового пользователя можно сразу прописать нужный нам класс командой

pw useradd user_name -L russian

После перазагрузки консоль станет UTF-8, по ssh нужно перезайти.

Распознавание автомобильных номеров при помощи opencv и iANPR SDK

ОС: Ubuntu 16.4, под Ubuntu 18.4 пока не удалось заставить работать.

Подготавливаем среду:

sudo apt install build-essential cmake git pkg-config libgtk-3-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
sudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr
sudo apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

Ставим opencv:

wget https://codeload.github.com/opencv/opencv/zip/3.4.5
unzip 3.4.5
cd 3.4.5
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install

Скачиваем iANPR SDK , бесплатную версию (для тестов достаточно) :

wget http://ianpr.org/downloads/iANPRLinux1.6.zip
unzip iANPRLinux1.6.zip

цвцув