Delete non running pods
Категория: k8s
kubectl get pods --all-namespaces | grep StatusUnkn | awk '{print $2 " --namespace=" $1}' | xargs kubectl delete pod
Helmfile exec examples
{{- range $_, $file := ( exec "bash" ( list "-c" (printf "echo -n %s/%s/*dash*.json" .Values.grafana.backupdir .Environment.Name)) | splitList " ") }}
{{$test:="not"}}
{{/*$test:= (exec "bash" ( list "-c" "test" "-f" (printf "%s" $file) "; echo $?") ) */}}
{{ if eq $test "ok" }}
{{ regexReplaceAll ".*/" $file "" | indent 3 }}:
json: {{ readFile $file | toJson }}
{{- end -}}
{{- end -}}
var_dump
{{ $| mustToPrettyJson | printf "\nThe JSON output of the dumped var is: \n%s" | fail }}
resources:
{{- range $_, $file := ( exec "bash" (list "-c" "echo -n ../resources/*") | splitList " " ) }}
- {{ $ | tpl (readFile $file) | nindent 4 }}
{{ end }}
{{- $json := exec "helmfile" (list "-e" "some-env" "list" "--file" "../../../helmfile.yaml" "--disable-force-update" "--skip-charts" "--output" "json" "2>&1") | fromJson }}
Top processes by using swap
Категория: system
for file in /proc/*/status ; do awk '/Tgid|VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | grep B | sort -k 3 -nr | head
emlog password reset
<?php
file_put_contents(
__DIR__.'/hash.class.php',
file_get_contents('https://raw.githubusercontent.com/emlog/emlog-ml/refs/heads/main/include/lib/passwordhash.php')
);
include (__DIR__.'/hash.class.php');
$password="1234";
$PHPASS = new PasswordHash(8, true);
$password = $PHPASS->HashPassword($password);
echo $password;
Отсылка RADIUS CoA пакетов из командной строки | Linux
Категория: system
RADIUS CoA (Change of Authorization) - это механизм изменения AAA сессий после ее установления, другими словами путем отсылки CoA пакетов можно на лету изменять параметры/атрибуты сессии не прибигая к остановке сессии и последующего старта с необходимыми атрибутами. При отладке приложений удобно подобные запросы отправлять непосредственно с командной строки. В Linux есть необходимая утилита, обычно применяющаяся для отладки FreeRADIUS сервера - radclient, с ее помощью можно непосредственно с командной строки выполнить CoA запрос:
echo User-Name="10.10.14.161", Nas-Identifier="192.168.122.111" | radclient -d /opt/raddb/ -sx 127.0.0.1:3799 coa testpassword
Синтаксис, думаю, не требует разъяснений, но хотелось бы отметить пару моментов:
- необходимые атрибуты и их значения указываются через запятую
- опция -d - указывает путь до папки со словарем. в этой папке читается только один файл с именем dictionary, при необходимости подключения нескольких словарей, необходимо делать "include"ы непосредственно в этом файле (напр: $INCLUDE dictionary.cisco)
- атрибуты передаваемые в radclient должный быть прописаны в словаре. Если при выполнении команды встречается неизвестный атрибут - он и последующие атрибуты не отправляются
- не забывайте про кавычки в значениях атрибутов (например, таких как МАС-адрес)
При выполнении CoA запроса можно увидеть результат его выполнения, в частности переданные атрибуты и ответ:
Sending CoA-Request of id 169 to 127.0.0.1 port 3799
User-Name = "10.10.14.161"
NAS-Identifier = "192.168.122.111"
rad_recv: CoA-NAK packet from host 127.0.0.1 port 3799, id=169, length=26
Error-Cause = NAS-Identification-Mismatch
Таким образом получаем простой способ для отладки RADIUS CoA приложений, так же данный способ удобен в применении в различных скриптах, если не хочется тратить время на написание обертки скажем на Perl или Phyton с применением RADIUS библиотек.
Теги: radius SoA AAA dictionary
Хранение таблицы innodb в отдельном файле в MySQL
Категория: db
По умолчанию, при создании таблиц в версиях сервера mysql<5.5 все таблицы хранятся в одном файле ibdata1. Очевидно, при возрастании количества данных, объем данного файла становится непреемлимо большим, что в конечном итоге сказывается на скорости выполнения запросов. К счастью в сервере есть опция, которая позволяет размещать табличные пространства в отдельных tbl_name
.ibd файлах. И так, добавляем в конфигурацию сервера опцию:
[mysqld] innodb_file_per_table=1
И перезагружаем процесс на сервере. Или же это можно сделать на "лету" без перезагрузки сервера:
SET GLOBAL innodb_file_per_table=1;
После этого вновь созданные таблицы, будут размещаться в отдельных файлах. Чтобы применить сабж к существующим таблицам (с сохранением данных), необходимо выполнить SQL-запрос:
ALTER TABLE `table_name`
ENGINE=InnoDB;
P.S. К сожалению, после переноса табличного пространства в файлы, на сколько я знаю, нет способа уменьшить размер файла ibdata1 (сделать аналог вакуумизации в postgres) - его просто можно будет удалить после переноса всех таблиц.
Теги: mysql innodb_file_per_table innobd ibdata1
Показать SQL запрос CREATE TABLE для таблицы в phpmyadmin | MySQL
Категория: db
Для генерации sql запроса создания какой либо таблицы удобно использовать пару способов:
1) Делаем экспорт таблицы в формате SQL , скачиваем, и далее открываем получившийся файлик в текстовом редакторе - в нем содержится необходимый запрос.
2) Просто делаем SQL-запрос (вкладка SQL вверху окна):
SHOW CREATE TABLE `table_name`
Далее, для полного отображения результата, нажимаем по ссылке "версия для печати"
При необходимости получивщийся SQL запрос можно дополнить проверкой на существование одноименной таблицы - в этом случае, можно избежать получения сообщения об ошибки:
CREATE TABLE IF not EXISTS `table_name` ( `id` int ......
Теги: sql mysql bd create table phpmyqdmin
Использование czap для настройки DVB-C TV тюнера
Категория: video for Linux
Первоначально была необходимость в использовании видео потока с ТВ тюнера в качестве входного потока для ffmpeg`а. Но оказалось, что ffmpeg не имеет встроенных средств для управления тюнером в отличии, скажем, от VLC. После недолгих попыток решение нашлось.
Для начала надо просканировать сетку вещания, для определения параметров вещания каналов. Делается это посредством утилиты w_scan:
w_scan -f c -C UTF-8 -X >> czap.conf
-f c - сканирует "кабельную" сетку
-С UTF-8 - задает кодировку на выходе
-X - задает вывод в формате для tzap/czap/xine
листинг czap.conf:
.....
121 TV1000(Orion Express):482000000:INVERSION_AUTO:6875000:FEC_1_2:QAM_128:3504:4504:121
122 TV1000 Action(Orion Express):482000000:INVERSION_AUTO:6875000:FEC_1_2:QAM_128:3503:4503:122
....
Теперь можно настроить тюнер на необходимый канал:
czap -c ./czap.conf -r -p "121 TV1000(Orion Express)"
флаги -r и -p добавят в выходной видео поток необходимые TS заголовки, тем самым к потоку будет легче цепляться и не тратить время на его анализ. Если все прошло удачно, в вывод czap будет постоянно выкидывать статусные сообщения.
Теперь, если необходимо, выходной поток можно подцепить ffmpeg`ом:
ffmpeg -i /dev/dvb/adapter0/dvr0 ......
Хотелось бы отметить, что w_scan`ом так и не удалось просканировать частоты ниже 474МГц, хотя вещание на них осуществлялось. Если кто знает решение - поделитесь в комментариях.
library 'crypto' is required for OpenSSL
Категория: system
При сборке из исходников с последующем использованием SSL в пакете при возникновении ошибки "library 'crypto' is required for OpenSSL", обычно достаточно установить пакет libssl-dev, но не всегда это помогает. Для сборки, бывает необходимо доустановить еще пару пакетов:
apt-get install devscripts build-essential
SquidGuard не делает редирект
Категория: system
В случае использования связки SQUID + SquidGuard, бывает, что для некоторых URL, запрашиваемых клиентом не срабатывает редирект (в случае обращения к запрещенному адресу), хотя в access логах сквида идет перенаправление "....HIER_DIRECT....", а в логах Guard`a видно отработку редиректа. На лицо глюк rewrite`ора. Проблема решилась, добавлением в конфиг кальмара правила:
url_rewrite_access allow all
Теги: squid squidguard