LINUX.ORG.RU

Сообщения gobot

 

Как сделать 1 строкой массив массивов

Форум — Development

Как можно упростить код?


const sids = [];
const sidsRemote = [[1,2,3], [1,2,3], [1,2,4]]
const sidsLocal = [1,2,3]

sidsRemote.forEach((serv)=>{
    serv.forEach(sid=>{
        sids.push(sid)
    })

})

sidsLocal.forEach((sid)=>{
    sids.push(sid)
})

//result sids = [1,2,3,1,2,3,1,2,3,1,2,3]

 ,

gobot
()

ВОПРОС: как в редис добавить в лист ключ

Форум — Development

Делаю так

rpush myList '{«id»: «a»}'
rpush myList '{«id»: «b»}'
rpush myList '{«id»: «c»}'

Мне нужно хранить упорядоченный списочек

Потом хочу удалить по id=«a» Но, вопрос, как? Тупо приходит на ум запросить весь список, прогнать через JSON.parse(), найти индекс элемента и удалить через индекс. Но тут очевидно куча проблем.

1) В промежутке моего поиска, может добавиться новый элемент и найденный индекс будет не актуален (удалится другой элемент!).

2) Время на разбор json, 3) Время на загрузку всего списочка

Просмотрел все типы и ничего нужного не нашел. hSet не сортирует.

ЧТО ДЕЛАТЬ БРАТЬЯ?

Пока ждал, нашел LREM - решает задачу на 78% (по моим ощущениям). А вообще я ждал от редиса чего то большего. Вообще можно было бы hash использовать, но он (падла), как то коряво сортирует ключи. Если бы добавлял нормально просто в конец, а то ведь не понятно как ключи сортируются или как в память лягут или что. Недоработки Redis явные, не хватает Sorted Hash

 

gobot
()

Как быстро искать в journalctl

Форум — Admin

journalctl -u http -S -12h --no-pager | grep «blabla»

Ооочень долго ищет. Раньше я использовал обычные логи /var/log/* там быстро было, а через journalctl капец как долго. Как это вообще используется правильно? Или что я не так делаю?

 ,

gobot
()

Вопросик по конфигурации certbot

Форум — Admin

certbot --nginx добавляет в конфиг nginx редирект на https на все сайты. Нигде это не редактируется? Мне нужно чтобы сайт по http\https тоже был доступен. Спрашивается: на кой х..р такая медвежья услуга?! Просто бесит! Просто нелюди делали, какие-то мутанты!

 ,

gobot
()

Подскажите регексу

Форум — Admin

Нужно из лога вытянуть продолжительность сессий

[2025-06-12 10:32:15.142][INFO][1][xxx] Session UP
...bla
...bla
...bla...
[2025-06-12 10:40:15.142][INFO][1][xxx] Session Down by KAPEC

[2025-06-12 12:32:15.142][INFO][1][yyy] Session UP
...kukuku...
[2025-06-12 12:40:15.142][INFO][1][yyy] Session Down by KABZDEC

[2025-06-12 13:32:15.142][INFO][1][zzz] Session UP
...phphph...
[2025-06-12 13:40:15.142][INFO][1][zzz] Session Down by PIPEC

xxx|yyy|zzz - идентификатор сессии

Что я пытаюсь сделать и ни к чему пока не приводит (.+ сжирает все до конца строки)

journalctl --no-pager  | grep "Session UP" | grep -oEi "[0-9]{2}:[0-9]{2}:[0-9]{2}.*[0-9a-z]{8}"


Нужно в конце получить лог
Идентификатор / Время старта / Продолжительность (сек) / Причина (PIPEC|KAPEC|PIPEC)

Понимаю, что выглядит как целая работа, но может гений решит по быстрому

 ,

gobot
()

Инструмент для тестирования 1 000 000 конектов

Форум — Admin

Если апп на сервере, который лежит на сокете и обрабатывает (udp/tcp) по разным протоколам. Хочу проверить работу. Запускал тесты на локалхосте, норм., держит соединения норм, не отваливаются, сам апп живой. Запускал тесты через свой комп, но проблема в том, что мой роутер начинает гнать и отваливается сеть(видимо из за pps).

Как проверить (benchmark) на хотя бы 1000 устройств с реальными адресами, сетями, типа бот фермы ддос? Какой сервис есть? Ну и желательно в РФ, ибо платить картой сейчас нереал

 , , ,

gobot
()

Вопросик#2

Форум — Admin

Почему docker перезагружает контейнер? В логах самого контейнера «thread is interrupted». Как я понимаю (подсказал ИИ от гугла) это процессу запущенному в докере присылается сигнал (SIGTERM, SIGINT). Но вот так и не понял отчего может такое случиться. Перезапускается внезапно, бывает через 3 часа или 6... Лимитов никаких не ставил. Что может быть?

В логах самого докера

journalctl -xu docker.service --no-pager | grep "34:32"

Jun 13 12:34:32 dockerd[877179]: time="2025-06-13T12:34:32.777749732+03:00" level=info msg="ignoring event" container=220983e9f5563eccd3635f02d53bcb18a5c2ff37f2d98171a5b0faae9e5403c6 module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"


В логах контейрера
[2025-06-13 09:34:32.282][ERROR][1][3a2c8709][0] serve error code=1070(ST thread is interrupted)
...ещё строк 5 всякой лабуды (закрытие ресурсов и т.д., не ошибок)....
...дальше стартует снова сервис в докере...


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

 , ,

gobot
()

Вопросик

Форум — Admin

journalctl --since «1 hour ago»

Неужели нельзя было как-то по человечески сделать, например "-s 1h"? Запаришься ведь вспоминать эту лабуду постоянно

journalctl --no-pager

По умолчанию идет разбивка на страницы как в man... И постоянно приходится эту лабуду дописывать. Неужели нельзя было по дефолту не разбивать? Все равно ведь логи грепаешь, а не читаешь как книжку какую-то...

Или может я чего-то не так делаю?

 ,

gobot
()

Сервер прерывает соединение https

Форум — Admin

Сервер начал внезапно сбрасывать соединение, если начинаешь что-то загружать больше чем 10 байтов. Если клиенту отдать например «hello world», то нормально, если что-то больше (точно не проверял, но где то по ощущениям килобайт) - соединение висит и приходит RST пакет. Работал годами в этой конфигурации, ничего не менял.

Когда 15kb скачает, когда 40kb и отваливается

tcpdump -n -i eth0 host client and port not 22

05:54:43.180201 IP client.16239 > server.443: Flags [S], seq 4116473154, win 8760, options [mss 1390,nop,wscale 8,nop,nop,sackOK], length 0
05:54:43.180240 IP server.443 > client.16239: Flags [S.], seq 4168317543, ack 4116473155, win 64240, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
05:54:43.321936 IP client.16239 > server.443: Flags [.], ack 1, win 34, length 0
05:54:43.327251 IP client.16239 > server.443: Flags [P.], seq 1:366, ack 1, win 34, length 365
05:54:43.327283 IP server.443 > client.16239: Flags [.], ack 366, win 501, length 0
05:54:43.327604 IP server.443 > client.16239: Flags [P.], seq 1:110, ack 366, win 501, length 109
05:54:43.471964 IP client.16239 > server.443: Flags [P.], seq 366:417, ack 110, win 33, length 51
05:54:43.473029 IP client.16239 > server.443: Flags [P.], seq 417:515, ack 110, win 33, length 98
05:54:43.473133 IP server.443 > client.16239: Flags [.], ack 515, win 501, length 0
05:54:43.473292 IP server.443 > client.16239: Flags [P.], seq 110:2890, ack 515, win 501, length 2780
05:54:43.473301 IP server.443 > client.16239: Flags [P.], seq 2890:5670, ack 515, win 501, length 2780
05:54:43.473315 IP server.443 > client.16239: Flags [P.], seq 5670:8450, ack 515, win 501, length 2780
05:54:43.614711 IP client.16239 > server.443: Flags [.], ack 2890, win 34, length 0
05:54:43.614748 IP server.443 > client.16239: Flags [P.], seq 8450:11230, ack 515, win 501, length 2780
05:54:43.616821 IP client.16239 > server.443: Flags [.], ack 5670, win 34, length 0
05:54:43.616852 IP server.443 > client.16239: Flags [P.], seq 11230:12620, ack 515, win 501, length 1390
05:54:43.618953 IP client.16239 > server.443: Flags [.], ack 8450, win 34, length 0
05:54:43.618987 IP server.443 > client.16239: Flags [P.], seq 12620:15400, ack 515, win 501, length 2780
05:54:43.618994 IP server.443 > client.16239: Flags [.], seq 15400:16790, ack 515, win 501, length 1390
05:54:43.776733 IP client.16239 > server.443: Flags [.], ack 11230, win 34, length 0
05:54:43.776767 IP server.443 > client.16239: Flags [P.], seq 16790:19570, ack 515, win 501, length 2780
05:54:43.779979 IP client.16239 > server.443: Flags [.], ack 14010, win 34, length 0
05:54:43.780007 IP server.443 > client.16239: Flags [P.], seq 19570:20960, ack 515, win 501, length 1390
05:54:43.805039 IP client.16239 > server.443: Flags [.], ack 16790, win 70, length 0
05:54:43.805071 IP server.443 > client.16239: Flags [P.], seq 20960:23740, ack 515, win 501, length 2780
05:54:43.805079 IP server.443 > client.16239: Flags [.], seq 23740:25130, ack 515, win 501, length 1390
05:54:43.805083 IP server.443 > client.16239: Flags [P.], seq 25130:27910, ack 515, win 501, length 2780
05:54:43.805242 IP server.443 > client.16239: Flags [P.], seq 27910:29300, ack 515, win 501, length 1390
05:54:43.805253 IP server.443 > client.16239: Flags [P.], seq 29300:32080, ack 515, win 501, length 2780
05:54:43.805283 IP server.443 > client.16239: Flags [.], seq 32080:33470, ack 515, win 501, length 1390
05:54:44.121039 IP server.443 > client.16239: Flags [.], seq 32080:33470, ack 515, win 501, length 1390
05:54:44.537009 IP server.443 > client.16239: Flags [.], seq 16790:18180, ack 515, win 501, length 1390
05:54:45.369055 IP server.443 > client.16239: Flags [.], seq 16790:18180, ack 515, win 501, length 1390
05:54:47.001053 IP server.443 > client.16239: Flags [.], seq 16790:18180, ack 515, win 501, length 1390
05:54:50.361047 IP server.443 > client.16239: Flags [.], seq 16790:18180, ack 515, win 501, length 1390
05:54:53.779507 IP server.443 > client.16239: Flags [R.], seq 33470, ack 515, win 501, length 0

 

gobot
()

Как добавить второй адрес на сервер?

Форум — Admin

ip a add 1.1.1.1/32 dev eno1:0

Что=то добавляет, но это не работает

ifconfig eno1:0
eno1:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 14:18:77:6e:2d:b8 txqueuelen 1000 (Ethernet)
device interrupt 16


ifconfig eno1:0 up
SIOCSIFFLAGS: Cannot assign requested address

Debian 5.10.149-2 (2022-10-21) x86_64 GNU/Linux

 ,

gobot
()

DTLS

Форум — Development

Столкнулся с проблемой, dtls сессии отваливаются. Ошибка, точнее иногда это норм, если завершаешь сеанс сам, а иногда само по себе: close notify. Отчего и кто может генерировать такие уведомления? Точно не сервер(ему они приходят, он их видит и говорит что все пипец, закрываю сессию). Значит клиент? Но клиент (chrome), тоже никаким образом принудительно не закрывается. Шлет трафик по udp, а потом отваливается (connectionState=disconnect). Грешу на вмешательство 3 лица(точеее рыла!)

Что это вообще, кто их умеет готовить, эти dtls?

 , , ,

gobot
()

Вопросик

Форум — Development

Заметил что на XHR запросы (мои api) браузер посылает заголовок Connection: keep-alive. Посмотрел например на ютубе АПИ (пример https://www.youtube.com/youtubei/v1) такой заголовок браузер не посылает. Вообще от чего зависит это? Нужно ли закрывать соединения, которые идут на API?

 , , ,

gobot
()

Лимиты соединений

Форум — Admin

Что-то ограничивает кол-во соединений на tcp сокете, конкретно websocket, схема такова: client -> cloudflare -> nginx -> node

Где то затык. Доходит примерно до 200 соединений и начинают виснуть.

Пользователи таковы:
Nginx - www-data
node - gobot

/etc/security/limits.conf
root      hard    nofile      500000
root      soft    nofile      500000

www-data      hard    nofile      500000
www-data      soft    nofile      500000

gobot      hard    nofile      500000
gobot      soft    nofile      500000


/etc/sysctl.conf
fs.file-max = 999999
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 10000
net.core.netdev_budget = 600
net.netfilter.nf_conntrack_max=1048576
net.netfilter.nf_conntrack_tcp_loose = 0
net.ipv4.tcp_max_syn_backlog = 4096

/etc/nginx/nginx.conf
user www-data;
worker_processes auto;
worker_rlimit_nofile 9999;
events {
   worker_connections 2000;
}




Вроде все лимиты прописал. Что ещё может быть?

ss -l | grep 8091 порт websocket

Recv-Q           Send-Q
76 511


Я как понимаю тут есть ожидающие соединения (76)?

 , , ,

gobot
()

Насколько хватит и куда пойдет развитие

Форум — Development

Просто интересно услышать мнения, чисто теория. Концепция отображения (html), доставки (http), интерактивности (DOM) - три кита, которые объединяет браузер. Уже лет 30 наверное как активно развивается и никаких предпосылок нет для изменений. Расширяют функционал, но концепция сама не меняется вообще никак. Раньше был кошмар сейчас стандарт все унифицировал и выдрессировал даже капризных MS и Apple и по факту все свелось к 2 движкам Хрому и Мозиле. Все обрасло системами сборки, фреймворками, webstormами и можно сказать наступил рай в вебе.

Сейчас браузер позволяет создать ^почти% ничем не уступающее десктоп приложение классическим. Из минусов возможно в некоторых случаях это скорость, невозможность реализации некоторых специфичных для ОС функций(и то это пока не стандартизировали/реализовали), но большинство потребностей можно удовлетворить браузером+сервером.

Сейчас уже много всяких онлайн сервисов, качать как раньше софт уже не камильфо. Просто вбиваешь в поиск «онлайн ... что то там» и в 99% ьудет браузерный,аналог. Шареварщики походу вымерли от этого.

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

Короче, что ждать от веба, куда его занесет, что его заменит и через сколько времени?

 , , ,

gobot
()

Геомаршрутизаторы

Форум — Admin

Географический маршрутизатор (Geo Router) вычисляет свою зону обслуживания и аппроксимирует её многоугольником. Геомаршрутизаторы, обмениваясь многоугольниками зон обслуживания, строят таблицы маршрутизации.

Есть ли в реале такие или sofrware?

 

gobot
()

ip6

Форум — Admin

Посмотрел тут cloudflare сайт по ip6 доступен

IPv6 Compatibility
Enable IPv6 support and gateway.

This setting was last changed 5 years ago


и никак (вроде только через API) не отключить. На сервере самом есть ip6. Вот думаю замарачиваться ли с этим гребаным ip6 или убрать. Вообще сайт изначально не был рассчитан на ip6, то есть все парсеры, либы, проверки только ip4. В принципе их немного и можно заточить. Во думаю стоит ли оно того? Адреса там уродские, длинные какие-то и не запоминающиеся. Да и вообще подвижек особых не вижу, даже мой пров не выдает ip6. Да, используют его ВПН, всякие ФЛЮДЕРЫ ДУСЕРЫ и прочие поганцы. Вот и думаю, не прибавиться ли ботов, стоил ли вообще его поддерживать, больше проблем будет от него или нет? Там же и почта всякая и прочее вылезит.

Кто использует реально ip6 и какие от него реальные плюсы для владельцев сайтов? Ну кроме впнщиков и... кто там ещё я даже не знаю

 ,

gobot
()

journalctl не умеет фильтровать ошибки?

Форум — Admin

Решил тут перейти с supervisord на systemd unit... И...решил посмотреть логи ошибок

Судя по
https://github.com/systemd/systemd/pull/6599

Если так, то я в шоке. Как такое может быть?? Как я могу ошибки смотреть? По сути это самое насущное что требуется в основном... Грепать? Заводить для каждой блохи свои логи?

 ,

gobot
()

Как можно изолировать vhost

Форум — Admin

Есть кучка сайтиков которые лежат в папках /var/www/html и которые обрабатывает ngix (некоторые через pass_proxy некоторые просто статичные). Написаны они с разной мерой криворукости... Как бы их изолировать, чтобы например 1 сайт не имел никакого доступа кроме своей папки? Nginx запускается от 1 пользователя и для каждого хоста не изменить. Мутить докер для каждой блохи как то лень... Может есть какой-то супер простой способ?

 

gobot
()

Как сделать чтобы nginx искал в 3 папках

Форум — Admin

Уважаемые эксперты, помогите

Есть 2 папки и ещё http. Нужно чтобы nginx при каждом запросе сначала проверял файл в 1 папке, потом в 2 папке, а если и там не нашел то перенаправлял запрос в proxy_pass



Пытался try_files

location / {
   try_files @pub @dist @proxy;
}

location @pub {
  root /proj/pub
}

location @dist {
  root /proj/dist
}

location @proxy {
  proxy_pass http://127.0.0.1:9090;
}


но ничего не выходит

 

gobot
()

Как из git получить файлы

Форум — Admin

Сделал push из webstorm на удаленный git сервер мой по ssh (заранее прописав в нем receive.denyCurrentBranch ignore), пуш прошел нормально, НО нет файлов самих. Есть просто папка .git. Как из нее вытащить собственно файлы?

До этого делал bare, туда пушил, потом pull из него в другой репо... Это 2 папки создавать, туда-сюда гонять из пустого в порожнее. Мне нужно просто deploy сделать, по сути тупо файлы копировать, но FTP долго, а git быстро делает это. Но вот только в этом затык сейчас

 ,

gobot
()

RSS подписка на новые темы