Решение ошибки «Another app is currently holding the xtables lock»

Недавно заметил на одном сервере с биллинговой системой ABillS, что при массовом выполнении скрипта /etc/ppp/ip-up возникает ошибка:

Another app is currently holding the xtables lock. Perhaps you want to use the -w option?

Посмотрев код скрипта обнаружил, что среди iptables правил есть два, которые могут тормозить работу, а именно выполнялся поиск ipoe интерфейсов двумя командами:

IPTABLES="/sbin/iptables"
EXIST=`${IPTABLES} -t nat -L PREROUTING -v | grep "${IFNAME} ";  ${IPTABLES} -L -v | grep DROP | grep "${IFNAME} "`

Для поднятия 3000 сессий, уходило более 30 минут и часть правил могла вовсе не добавится или не удалится скриптом.
По умолчанию если используется ключ -L то iptables резолвит IP адреса и пытается отобразить вместо них DNS имена, что занимает много времени, и чтобы это не происходило, нужно добавить еще ключ -n, а также на всякий случай я добавил ключ -w 20, который заставит отложить выполнение новых правил до 20 секунд если iptables уже занят выполнение другой команды:

IPTABLES="/sbin/iptables"
IPTABLES_WAIT="-w 20"
EXIST=`${IPTABLES} $IPTABLES_WAIT -t nat -n -L PREROUTING -v | grep "${IFNAME} ";  ${IPTABLES} $IPTABLES_WAIT -n -L -v | grep DROP | grep "${IFNAME} "`

После этого скрипт с iptables правилами начал отрабатывать мгновенно.
Так как старые правила не все выполнились, я проверил это посчитав некоторые командой:

iptables -n -L -t nat -v | grep DNAT | wc -l

И сверил с количеством сессий, правил явно было меньше, поэтому пришлось очистить все правила и перезапустить сессии чтобы скрипт /etc/ppp/ip-up отработал правильно, на этот раз при 3000 сессиях он сделал свою работу менее чем за минуту.
Замечу что в скриптах /etc/ppp/ лучше не использовать правила iptables.

Как я закрывал счет в польском Pecao банке

Однажды знакомая из Украины попросила меня помочь ей с закрытием счета в польском банке Pecao.
Она не собиралась ехать в Польшу и поэтому не могла посетить банк, поэтому я начал переписку с сотрудниками по email, который был указан в договоре, а также есть на официальном сайте.

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

Читать далее «Как я закрывал счет в польском Pecao банке»

Проблема с розовым искажением видео в Adobe Premiere

Однажды делал проект в Adobe Premiere и понадобилось вытащить видеокарту, после того как я ее вытащил, начал использовать интегрированную в процессор Intel HD Graphics 630 и у меня возникла проблема с изображением.

Читать далее «Проблема с розовым искажением видео в Adobe Premiere»

Как изменить hostname в Linux

Приведу пример смены hostname в Linux.

Сначала переключимся на root пользователя или добавим «sudo» перед командами.
Посмотрим текущий hostname:

Читать далее «Как изменить hostname в Linux»

Решение «Internal Server Error» при открытии Nextcloud

Недавно переносил Nextcloud с одного сервера на другой и при его открытии, заметил в браузере следующую ошибку:

Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

В моем случае ошибка возникла из-за поврежденной MySQL базы данных, поэтому я восстановил её из другой резервной копии и Nextcloud открылся.
Предполагаю что такая же ошибка может возникнуть когда база данных Nextcloud существует, но пуста.

Смотрите мою статью:
Установка Nextcloud в Ubuntu

Решение MySQL ERROR 1055 (42000)

Недавно выполнял необходимые SQL запросы и заметил следующую ошибку:

ERROR 1055 (42000): Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database_name.table_name.column_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Читать далее «Решение MySQL ERROR 1055 (42000)»

Как увидеть процесс импорта SQL файла?

Для того чтобы видеть процесс импорта SQL файлов я использую утилиту Pipe Viewer.
Pipe Viewer очень полезен особенно когда SQL файл большого размера, позволяет примерно оценить оставшееся время до завершения импорта файла, отображает процесс импорта в процентах и перешедшее время.

Читать далее «Как увидеть процесс импорта SQL файла?»

Настройка коммутаторов Huawei Quidway S3900

Для примера возьму коммутатор Huawei Quidway S3928P-EI, настройки по сути подходят ко всей серии Huawei Quidway S3900, но могут немного отличатся в зависимости от версии прошивки. Если что-то не получается прописать, то можно посмотреть варианты команд набрав знак вопроса через пробел после любой команды.

У меня при включении коммутатора, через консоль отобразились следующие характеристики:

Creation date: Aug 25 2006
CPU type: BCM4704
CPU Clock Speed: 200MHz
BUS Clock Speed: 33MHz
Memory Size: 64MB

Посмотрим текущую конфигурацию командой:

display current-configuration

Чтобы перейти в режим конфигурации наберем:

system-view

Читать далее «Настройка коммутаторов Huawei Quidway S3900»

Как решить «ERROR 1062 (23000) at line X: Duplicate entry ?????? for key X»

Импортировал недавно дамп в MySQL и обнаружил следующую ошибку:

ERROR 1062 (23000) at line 14096: Duplicate entry '????????' for key 'name'

Читать далее «Как решить «ERROR 1062 (23000) at line X: Duplicate entry ?????? for key X»»