Где взять документацию для старого Keycloak?
На официальном сайте – версии от 21 до 26. В Wayback Machine – 18.0.2. А мне нужна 19.0.2 или что-то рядом. Где её взять?
Заранее спасибо.
На официальном сайте – версии от 21 до 26. В Wayback Machine – 18.0.2. А мне нужна 19.0.2 или что-то рядом. Где её взять?
Заранее спасибо.
Есть сервер. На нём крутятся PostgreSQL, Mongo, самописные числодробильные микросервисы, Keycloak и ActiveMQ, через который они все координируются. Когда пользователей много, запускается много экземпляров микросервисов. Память подходит к концу.
Вопрос: угадайте, кого прибьют первым по OOM?
Ответ: ActiveMQ (1G), затем Keycloak (500M). Все остальные потребляют меньше памяти.
Есть сервер ActiveMQ Classic. На нём висит очередь из 1000 сообщений. Требуется просмотреть их и вдумчиво разобраться, отчего некоторые вводят сервер приложений в ступор.
Но одновременно нужно продолжать работать. Для этого надо срочно всё удалить.
Можно руками скопировать каждое сообщение из веб-интерфейса. Можно вдумчиво прочитать всю тысячу (в веб-интерфейсе они выглядят как длиииннная строка JSON) и скопировать только нужные. Можно слепить скрипт, чтобы скопировать все эти сообщения.
А существует ли готовый инструмент для этой цели? Прочитать все сообщения в заданной очереди (не отмечая их как доставленные, либо наоборот, отмечая) и сохранить в текстовый файл.
Чем вы пользуетесь для чтения книг со смартфона? Требуется масштабирование в широких пределах и поддержка основных форматов: FB2, EPUB, DJVU, PDF, CBZ. Совсем хорошо, если есть CBR, MOBI, AWX3 и reflow в PDF.
Ebook Droid ограничивает увеличение шрифта.
FBReader имеет неотключаемую фичу – добавляет дефис при переносе строк. Очень коварная вещь в математических формулах и текстах программ.
Что ещё знаете?
Есть программа, которая иногда ест много памяти. Потребление памяти ею можно отслеживать командой top -b -d60 -o +%MEM -c | grep memory_eater | grep -v grep > memory.log & disown
Но иногда она быстро отрабатывает – за несколько минут, и файл остаётся пустой. В чём проблема? Слишком малый объём текста зависает в кеше и не сбрасывается? Можно ли как-то ускорить сбрасывание?
P.S. Если увеличить частоту опроса top до -d1
или -d0.1
, всё важное фиксируется, но лог увеличивается на 2-3 порядка. Реально достаточно писать раз в минуту. Вопрос не в том, как отслеживать память, а как записать этот лог в файл.
Ответ:
top -b -d60 -o +%MEM -c | grep --line-buffered memory_eater | grep -v --line-buffered grep > memory.log & disown
или
top -b -d60 -o +%MEM -c | stdbuf -o0 -i0 grep memory_eater | stdbuf -o0 -i0 grep -v grep > memory.log & disown
Менял часовые пояса под RedHat, столкнулся со странным обозначением часовых поясов. Etc/GMT+3 соответствует времени GMT - 3 часа (восток Бразилии), а Etc/GMT-3 соответствует GMT + 3 ч (Москва, Минск, Стамбул):
https://utctime.info/timezone/Etc--GMT-3/
https://utctime.info/timezone/Etc--GMT+3/
Откуда взялись такие обозначения?
Ответ: из AIX.
Гружу большой архив файлов (копившийся лет 30) в веб-форму. Всё сразу нельзя – слишком большой, бэкэнд захлебнётся и упадёт (пробовали). Нужно по одной директории, которых десятки. После каждой приходит предупреждение:
Are you sure you want to upload all files from “<директория>”? Only do this if you trust the site.
Не то, чтобы мешает, но надоело. Как-то убрать это предупреждение можно? Firefox 129.
Сабж. Есть самописный клиент для работы с облаком Амазона, использующий рекомендованную Амазоном библиотеку. Когда пользователь прописал неверный сервер в клиенте, сервер возвращает статус 301. Обязан ли клиент автоматически перейти по указанному адресу?
При подключении к виндовой машине по RDP с использованием KRDC можно расшарить директорию на линуксовой машине (по умолчанию – /media) для обмена файлами через неё. Но с последними апдейтами Windows 11 и Server 2022 новым пользователям это по умолчанию запретили. Соединение устанавливается и тут же отваливается. (Без /media работает нормально.) Чтобы обмениваться файлами с линуксом, нужно включить какие-то политики.
Что именно нужно включить? Или хотя бы по каким словам гуглить?
Есть набор текстовых дат вида «14.05.24 17:22:40.653». Нужно вычислить разности по времени между ними и вывести в наглядном виде «сутки:часы:минуты:секунды.доли».
Преобразовать текст в дату несложно: datetime.datetime.strptime(date_time_string, '%d.%m.%y %H:%M:%S.%f')
В секунды с начала эпохи аналогично: datetime.datetime.strptime(date_time_string, '%d.%m.%y %H:%M:%S.%f').timestamp()
Но есть ли готовая функция, чтобы преобразовать разность в секундах в сутки-часы-минуты?
Что разность двух datetime.datetime имеет тип datetime.timedelta – знаю. Но datetime.timedelta не имеет готовых методов для выделения часов и минут.
Ответ: datetime.timedelta имеет метод __str__()
:
>>> str(datetime.timedelta(days=4, seconds=3729, microseconds=823089))
'4 days, 1:02:09.823089'
Но учитывая, что для 0 суток ползёт форматирование, для единообразия таблицы придётся брать
f'{d.days:02}:{d.seconds // 3600:02}:{d.seconds % 3600 // 60:02}:{d.seconds % 60:02}.{d.microseconds:06}'
Есть список файлов в таблице в PostgreSQL или SQLite. Команда select file,status from files order by file;
выводит в таком порядке:
file | status
--------------+--------
scan/79.txt | 0
scan/8.txt | 0
scan/80.txt | 0
scan/88.txt | 0
scan/89.txt | 0
scan/9.txt | 0
scan/90.txt | 0
scan/91.txt | 0
А мне надо сортировать числа в середине строк по возрастанию: 8-9-79-80-… Можно ли это сделать средствами SQL? Как такая сортировка называется?
Ответ: «natural sort order» – «естественная». Для Postgre нашлось готовое решение:
CREATE COLLATION numeric (provider = icu, locale = 'en-u-kn-true');
SELECT * FROM files ORDER BY file COLLATE numeric;
Для sqlite3 пока нашёл только советы, как писать расширение на Си.
Или можно вычленить числа, преобразовать в числовой формат и сортировать по ним:
SELECT * FROM files ORDER BY CAST(REPLACE(SUBSTR(file, 6), '.txt', '') AS int);
Есть закрыто-несвободная программа, которой можно управлять через REST API. Пробовал curl – POST не работал. Попробовал Insomnia (https://github.com/Kong/insomnia) – часть вариантов заработала. Судя по всему, принимает только если Content-Type установлен в «application/json», «application/xml», «text/plain». Проблема в том, что curl --data
и curl --data-ascii
задают «Content-Type: application/x-www-form-urlencoded», даже в случае curl --data-ascii @file.txt
. То же для --data-binary
, --data-raw
и --data-urlencode
.
Переопределять MIME-тип данных при помощи -H
можно, но неудобно. Есть ли у curl команда, чтобы постить текстовые данные?
Или это похоже на баг в curl, и --data-ascii
должно задавать другой тип?
Ответ: пока предложили --json
, который подставляет в хедер "Content-Type: application/json"
и "Accept: application/json"
На удалённой машине (подключаюсь по ssh, сессия часто рвётся) выполняется несколько экземпляров программы memory_eater
. Требуется записать в файл, сколько какой потребляет памяти. Пока я пользуюсь командой:
top -b -d60 -c | grep memory_eater > memory.log & disown
Главный недостаток – в лог попадает команда grep. top -b -d60 -c | grep memory_eater | grep -v grep > memory.log & disown
выглядит громоздко.
Кроме того, хотелось бы, чтобы каждая запись или каждая строка имела дату и время.
Если будете предлагать другие программы – желательно то, что обычно стоит в системах по умолчанию.
Есть удалённая машина на сервере виртуальных машин VMWare. OpenSUSE Leap 15.5. Подключаюсь к ней через ssh, но соединение часто виснет и рвётся с ошибкой «client_loop: send disconnect: Broken pipe». Насколько я могу судить, это происходит от того, что сам собой меняется IP-адрес, каждые минут 5. Как это прекратить?
Погуглил – увидел упоминание увеличения DHCP lease. Дело в нём? Как увеличить это время? GUI отсутствует, yast только консольный, Wicked без NetworkManager.
И почему другие линуксы с DHCP в той же сети постоянно берут одинаковые IP?
Дополнение: Проблема возникает только когда в локальной сети более одной виртуальной машины из этого темплейта. MAC-адреса различаются. Имена машин различаются.
Есть ли где-нибудь простой и понятный список вещей, которые можно писать в скриптах на bash, но нельзя на голом sh? Помимо двойных скобок.
Ответ: Проверяется скриптами checkbashisms (пакет devscripts) или shellcheck.
В данную секунду интересует скрипт:
for f in somedir/*
do
echo $f
./a.out -Q"$f"
wait $!
done
Особенно интересует строка wait $!
. Вроде, в документации dash такого нет, но скрипт работает.
Ответ: Есть. Просто мануал не предназначен для поиска по ключевым словам. Его положено запоминать целиком.
Перемещено hobbit из general
На сервере Windows Server 2022 открыта для всеобщего доступа без логина и пароля директория. \\192.168.3.4\shared
Всё принадлежит пользователю Everyone
с правами на чтение и запись.
Вопрос: как можно проверить её доступность из-под Линукса помимо sudo mount.cifs //192.168.3.4/shared/ ~/mountpoint/
? С curl и mc ничего не получилось.
Ответ: Пока предложили smbclient (samba-client в RHEL, net-fs/samba[client] в Gentoo). Жду ответов от знатоков MC и cURL.
Понадобилось работать в консоли по ssh и время от времени проверять, что время на удалённой машине не глючит. Хотел включить в MC часы, но не нашёл.
В нортоне были, в ФАРе есть, для MC нашёл кучу описаний, как ставить патчи, а в основной ветке MC есть?
Для определённости – mc-4.8.26-5 под RHEL9.
Таблица в дампе задаётся командой:
CREATE TABLE schema1.files (
t1 timestamp without time zone NOT NULL,
t2 timestamp without time zone NOT NULL,
name text NOT NULL,
size integer,
status integer DEFAULT 0
);
В каком часовом поясе будет показывать t1 и t2 в psql в консоли? В каком часовом поясе сохранит их pg_dump? Влияет ли на это значение LC_ALL?
Объясните, пожалуйста, правила для REST API. В каких случаях должно выдавать какие ошибки?
Есть сервер, на котором крутится задача, которая будет там крутиться ещё несколько минут. Или часов. Приходит команда изменить какие-то исходные данные. Так как команды прерывать текущие задачи не было, а изменяемые данные используются задачей, они будут изменены только по окончании текущей задачи. Поэтому сервер выдаёт ошибку 409 Conflict. Это правильно? Как принято поступать в подобных случаях?
Перемещено hobbit из talks
Нужно в консоли посмотреть свойства, указанные в заголовках виндовых бинарников (EXE, DLL), желательно под Линуксом, не запуская виртуальные машины и не подключаясь к удалённой машине с оффтопиком. Требуется информация, которая в Windows показывается в окне Properties: имена и даты цифровых подписей, если есть, и версии. Плюс архитектура: x86, x86_64, Mono/.Net и пр.
file показывает только архитектуру. objdump и readelf – для других форматов. В nm ничего похожего не нашёл. Проводник WINE гуёвый. Что ещё посоветуете?
следующие → |