понедельник, 14 апреля 2025 г.
bashrc
четверг, 24 октября 2024 г.
i3 монитор охранника
в продолжение https://terminalko.blogspot.com/2019/04/blog-post.html
надо : mpv xorg xdotool i3
топовые команды
поворот экрана | export DISPLAY=':0.0' && xrandr -o left & |
вернуть как было | export DISPLAY=':0.0' && xrandr -o normal & |
переключение на рабочее место 1 | export DISPLAY=':0.0' && exec i3-msg 'workspace 1' & |
переключение на рабочее место 1 альтернативный способ | export DISPLAY=':0.0' && xdotool key "Super_L+1" |
переключение на рабочее место 2 | export DISPLAY=':0.0' && exec i3-msg 'workspace 2' & |
переключение на рабочее место 2 альтернативный способ | export DISPLAY=':0.0' && xdotool key "Super_L+2" |
запуск произвольного потока | export DISPLAY=':0.0' && mpv -border=no rtsp://admin:admin@10.190.249.9/live/main & |
узнать текущее рабочее место | i3-msg -t get_workspaces | jq '.[] | select(.focused==true).name' | cut -d"\"" -f2 |
![]() | автозапуск иксов |
в файле
/home/filalex/.bash_profile
прописываем
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
![]() | автологин пользователя |
в файле
/etc/systemd/system/getty.target.wants/getty@tty1.service
меняем строку
ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM
на
ExecStart=-/sbin/agetty -a filalex %I $TERM
![]() | автозапуск приложений |
в конце файла
/home/filalex/.config/i3/config
прописываем либо скрипт либо команду
exec /home/filalex/load_layout.sh
exec mpv -border=no rtsp://admin:admin@10.190.249.9/live/main &
![]() | переключение мониторов |
в кронтаб записываем
1-59/2 * * * * filalex export DISPLAY=':0.0' && exec i3-msg 'workspace 1' & 2-58/2 * * * * filalex export DISPLAY=':0.0' && exec i3-msg 'workspace 2' &
![]() | сохранить текущее рабочее место |
i3-save-tree --workspace 1 > /home/filalex/workspace-1.json
![]() | для восстановления требуется пройтись по нему скриптом |
tail -n +2 /home/filalex/workspace-1.json | fgrep -v '// splitv' | sed 's|//||g' > /home/filalex/workspace1.json
![]() | рестор сейшн идет командой |
i3-msg "workspace 1; append_layout /home/filalex/workspace1.json"
но это только восстанавливает мозайку которая была сохранена, поэтому надо еще запустить в этой мазайке приложухи проще всего это сделать скриптом , а его засунуть в автозапуск
#!/bin/bash # Во-первых, мы добавим сохраненный макет рабочей области N в рабочую область M i3-msg "workspace 1; append_layout /home/filalex/workspace1.json" # И, наконец, мы заполним контейнеры программами (mpv -border=no rtsp://admin:admin@10.190.253.88/live/main &) (mpv -border=no rtsp://admin:admin@10.190.252.101/live/main &) (mpv -border=no rtsp://admin:admin@10.190.254.94/live/main &)
![]() | подключение к монитору |
x11vnc -display :0 -auth /tmp/serverauth.*
осталось захардкодить проверку потоков тисипидампом и перезапуск в случае падения
--------------------------------------------------------
![]() | неактуально но пусть лежит Chrome's autoplay policies will change in April of 2018 при обновлении системы получили дисейбл автоплея в браузере |
google-chrome-stable --kiosk http://127.0.0.1/ --new-window --start-maximized --incognito --autoplay-policy=no-user-gesture-required --disable-features=PreloadMediaEngagementData,AutoplayIgnoreWebAudio,MediaEngagementBypassAutoplayPolicies &
так же можно юзать firefox (в сервии 71 они научились работать в режиме киоск и не нужны вякие необновляемые плагины) но эта сволочь будет просить обновлений пока не нагуглил как их отключить
как вариант дождаться ESR версии но на данный момент она 68 а следующая будет 78 - June 30, 2020 хотя в ней тоже могут быть камни
firefox --kiosk http://127.0.0.1 -private
- автологин пользователя
![]() | неактуально но пусть лежит вариант firefox |
требуются пакеты php lighttpd xdotool (xdotool можно заменить на разширение для файрфокса типа R-kiosk )
в автоматически запускаемые приложения добавляем 2 пункта
- firefox
- и скрипт который на окне огнелиса жмакнет F11
#!/bin/sh sleep 20 export DISPLAY=':0.0' WID=`xdotool search --name Mozilla | head -1` xdotool windowactivate $WID xdotool key F11
firefox настраиваем на страничку http://127.0.0.1
на локалхосте ставим след кусочек html
<meta http-equiv="refresh" content="36000"> <body bgcolor="black"> <TABLE border="0" style="width:100%; height:100%;" bgcolor="black"> <TR> <TD><iframe style="width:100%; height:100%;" src="http://193.203.61.11:8080/Apelsin/embed.html?realtime=true"></iframe>></TD> <TD><iframe style="width:100%; height:100%;" src="http://193.203.61.11:8080/opp_router/embed.html?realtime=true"></iframe>></TD> </TR> <TR> <TD><iframe style="width:100%; height:100%;" src="http://193.203.61.11:8080/opp_agents/embed.html?realtime=true"></iframe>></TD> <TD><iframe style="width:100%; height:100%;" src="http://193.203.61.11:8080/senko/embed.html?realtime=true"></iframe>></TD> </TR> </TABLE> </body>
в /etc/lighttpd/lighttpd.conf дописываем строки
$HTTP["remoteip"] !~ "127.0.0.1|37.235.235.0|37.235.143.99" { url.access-deny = ("") }
![]() | вариант mplayer |
требуются пакеты xdotool mplayer2
в кроне
*/1 * * * * root /home/filalex/strdumper.sh */1 * * * * filalex /home/filalex/4mpl.sh
#!/bin/bash for i in {1..4} do dumphost=`grep str$i /home/filalex/4mpl.sh | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}"` timeout 5 tcpdump -i enp1s0 -n -q host $dumphost > /home/filalex/tdump$i cp /home/filalex/tdump$i /home/filalex/dump$i` done
#!/bin/bash # тут указываем какие стримы будем вещать scriptname=4mpl.sh str1=rtmp://10.190.255.215:1935/livemain str2=rtmp://10.190.255.148:1935/livemain str3=rtmp://10.80.1.132:1935/livemain str4=rtmp://10.190.255.147:1935/livemain # глядим что за экран у нас, вдруг сменили и пригодиться в положениях плеера export DISPLAY=':0.0' xwin=`xdotool getdisplaygeometry | awk {'print $1'}` ywin=`xdotool getdisplaygeometry | awk {'print $2'}` # прячим мышку? помоему не работает xdotool mousemove "$xwin $ywin" # это статусбар убунту, мешается по умолчанию на 24 пикселя, сука Barsize=24 # тут мы делем полученый размер экрана на 4 равных части за вычетом бара let "wsizex=$xwin / 2" let "wsizey=$ywin / 2 - ($Barsize / 2)" wsize="$wsizex""x""$wsizey" let "wsizeyY=$wsizey + $Barsize " # водим переменные позиций окон gpos1="+0+$Barsize" gpos2="+$wsizex+$Barsize" gpos3="+$wsizex+$wsizeyY" gpos4="+0+$wsizeyY" # гавнякаем переменными в syslog - тупо для дебага, можно удалить logger "$scriptname str1=$str1" logger "$scriptname str2=$str2" logger "$scriptname str3=$str3" logger "$scriptname str4=$str4" logger "$scriptname xwin=$xwin" logger "$scriptname ywin=$ywin" logger "$scriptname wsize=$wsize" logger "$scriptname gpos1=$gpos1" logger "$scriptname gpos2=$gpos2" logger "$scriptname gpos3=$gpos3" logger "$scriptname gpos4=$gpos4" # из соседнего скрипта тисипидампим ip переменных str и складываем # в файл, если в файле меньше 2 х строк - потока нет, перезапускаемся a=1 b=`cat /home/filalex/dump1 | wc -l ` c=`cat /home/filalex/dump2 | wc -l ` d=`cat /home/filalex/dump3 | wc -l ` e=`cat /home/filalex/dump4 | wc -l ` # тут я не понял как работет $переменная$а_тут_вторая_которая_подставляется_первой поэтому говнокод if [ "$b" -gt "$a" ] then logger "$scriptname поток $str1 в норме, что то прилетелоработаем дальше " else logger "$scriptname поток $str1 упал, перезапускаем плеер" mplayer -noborder -geometry "$wsize"$gpos1 $str1 & fi if [ "$c" -gt "$a" ] then logger "$scriptname поток $str2 в норме, что то прилетелоработаем дальше " else logger "$scriptname поток $str2 упал, перезапускаем плеер" mplayer -noborder -geometry "$wsize"$gpos2 $str2 & fi if [ "$d" -gt "$a" ] then logger "$scriptname поток $str3 в норме, что то прилетелоработаем дальше " else logger "$scriptname поток $str3 упал, перезапускаем плеер" mplayer -noborder -geometry "$wsize"$gpos3 $str3 & fi if [ "$e" -gt "$a" ] then logger "$scriptname поток $str4 в норме, что то прилетелоработаем дальше " else logger "$scriptname поток $str4 упал, перезапускаем плеер" mplayer -noborder -geometry "$wsize"$gpos4 $str4 & fi
x11vnc
УДАЛЕННЫЙ ДОСТУП НА УЖЕ ОТКРЫТУЮ Х-сессию! |
Нужен рут-доступ по ssh на комп жертвы и пакет x11vnc, если его нет - ставим
Далее запускаем
x11vnc -noxfixes -noxrecord -noxdamage -display :0 -auth /var/run/lightdm/root/:0
Номер дисплея может отличаться, то что после -auth тоже, подглядеть можно с помощью ps wwwwaux | grep auth. Подробнее в man x11vnc
![]() | лениво |
с уже рабочей тачки копируем ключ
cat /root/.ssh/authorized_keys | ssh root@192.168.11.11 'cat >> ~/.ssh/authorized_keys'
воскресенье, 20 октября 2024 г.
PingОвалОчка
"от попингуя слышу", как говорится. просто пинговать и получать стату по ответам на icmp запросы уже не модно, ну точнее можно олдскульно но иногда душа требует красоты
gping https://github.com/orf/gping
есть инстал на все системы, даже винду, оставлю только любимый линукс
echo 'deb [signed-by=/usr/share/keyrings/azlux.gpg] https://packages.azlux.fr/debian/ bookworm main' | sudo tee /etc/apt/sources.list.d/azlux.list sudo apt install gpg curl -s https://azlux.fr/repo.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/azlux.gpg > /dev/null sudo apt update sudo apt install gping
noping
понедельник, 10 апреля 2023 г.
image to text
Задача: вытащить последний скрин мака и дернуть из него текст (ака юзер прислал какой то длинный хеш скрином а не текстом и влом перебивать)
Ньюансы: мак хранит фотки на рабочем столе и где это изменить я не нашел плюсом текст с пробелами формата Снимок экрана 2023-04-11 в 05.54.28.png
скрипт генерации строки (найти последний файл на рабочем столе так как скриншот - это последнее что ты туда положил)
cat ./scripts/imgtotext
#!/bin/bash
a=`ls -tp ./Desktop/ | grep -v /$ | head -1| awk {'print $5'}`
day=`ls -tp ./Desktop/ | grep -v /$ | head -1| awk {'print $3'}`
b="./Desktop/Снимок\ экрана\ $day\ в\ "
c=$b$a
echo "vision_text_detection $c | grep text"
алиас и функция
teminalk0@teminalk0-osx ~ % cat ./.zshrc
alias itt="./scripts/imgtotext"
vision_text_detection() {
if [[ $2 ]]; then MIME_TYPE=$2 ; else MIME_TYPE=image; fi
curl -H "Authorization: Bearer `yc iam create-token`" \
"https://vision.api.cloud.yandex.net/vision/v1/batchAnalyze" \
-d @<(cat << EOF
{
"folderId": "`yc config get folder-id`",
"analyze_specs": [{
"content": "`base64 -i $1`",
"features": [{
"type": "TEXT_DETECTION",
"text_detection_config": {
"language_codes": ["*"]
}
}],
"mime_type": "$MIME_TYPE"
}]
}
EOF
)
}
на выходе команды itt будет готовая строка, повторный вод в терминал даст на выхлопе текст с картинки
вариант улучшить - переписав всю основную часть функции в скрипт
среда, 22 февраля 2023 г.
делаем кабельдиаг когда упал линк
:local link;
/interface ethernet cable-test ether5 once do={
:set link $"cable-pairs";
};
:if ($link != "link-ok") do={
/log error "$link";
};
скрипт в нетвотч, в логе будет что то типа (топик логлевел и проче под себя)
12:13:12 script,error open:2;normal:0;open:2;open:3
можно нотифаку в тг сделать обавочно, но надо как то передать двоеточия и запяты. у меня почему то на коленке приходило только первое значение. курить не стал так как не потребовалось
пятница, 1 октября 2021 г.
IdenTrust DST Root CA X3
для винды https://disk.yandex.ru/d/Zl6mpDnp4k3z2Q
на debian/ubuntu лечаться так: в /etc/ca-certificates.conf найти mozilla/DST_Root_CA_X3.crt и закоментить. Далее выполнить update-ca-certificates --fresh
вторник, 14 сентября 2021 г.
энидеск бекапим адресную книгу
grep ad.roster.items /home/filalex/.anydesk/user.conf | tr ';' '\n' | sed -e'/,,/d' -e 's/,/\ /g' | awk {'print $2" "$3" "$4'}
user.conf - файл энидеска , содержащий соединения формат записи - все в строке через точку запятую, если переименовал - значит нужное, если имя соединению не дал , то соединение имеет две запятых
задача - пробежаться по файлу, заменить точку с запятой на новую строку, убрать строки не содержащие имя соединения , ну и вывести за исключеине столбца номер 1 (там может быть имя энидеск что то типа hostname@ad - обцчно мало что говорит)
ну куда запихать это - хоть в телеграмм присылай .....
conn=`grep ad.roster.items /home/filalex/.anydesk/user.conf` && echo $conn | tr ';' '\n' | sed -e'/,,/d' -e 's/,/\ /g' | awk {'print $2" "$3" "$4'} > conn1 && cat conn | md5sum -c --status <(cat conn1 | md5sum) && echo равны || (msg=`cat conn1` && wget -O /dev/null -o /dev/null "https://api.telegram.org/bot****id****:******key*****_24/sendMessage?chat_id=-****chatid******&disable_notification=true&text=$msg" && cat conn1 > conn)
воскресенье, 12 сентября 2021 г.
жмем qcow2
ну как обычно, хз сколько надо места виртуалке, ну чтобы не мало - 32.. оказалось достаточно 6-8
приходим к выводу что 32 - много, особенно если их клонировать потом - жирновато
на винде качаем утилиту SDelete
на вируталке в командной строке .. процедура не быстрая
> sdelete64 -z C:
потом на хосте
qemu-img convert -O qcow2 /mnt/pve/nfsSSD/images/102/vm-102-disk-0.qcow2 /mnt/pve/nfsSSD/images/102/xp_comress.qcow2
тушим вирталку, бекапим файл оригиналього образа, подменяем файл на сжатый
mv /mnt/pve/nfsSSD/images/102/vm-102-disk-0.qcow2 /mnt/pve/nfsSSD/images/102/vm-102-disk-0.qcow2_old
четверг, 9 сентября 2021 г.
Копия системы на ходу
для личного - халява - на ходу системный раздел можно копернуть
среда, 25 августа 2021 г.
mac
cat /usr/bin/mac
используем для вывода регистроточкозависымых маков
#!/bin/bash
echo $1 | sed 's/-/:/g'
echo $1 | sed 's/.*/\U&/'
echo $1 | sed 's/-/:/g'| sed 's/.*/\U&/'
как вариант для просомотра мака в DHCP микротика
mac=`echo $1 | sed 's/-/:/g'| sed 's/.*/\U&/'`
ssh 192.168.13.1 ip dhcp-server lease print detail where mac-address="$mac"
пятница, 14 мая 2021 г.
win 10 home to pro
оригинал взят тут
при куче флешек на ноут установилась только одна система, остальные вываливались в какой то баг видимо из за драйвера видео, или еще из чего - короче не ставились
клиенту нужно было установить pro версия, а по фaкту встал home
попытки установить что то иное приводили к нулевому результату и трете времени
найденый ман помог
- копируем код VK7JG-NPHTM-C97JM-9MPGT-3V66T
- отключаем инет
- идем в насройки - меняем ключ (ручками) и говорим применить (можем получить ошибку но я данной не видел)
- ребут - проверка - да, стала про
- включаем нет и тянем обновления
среда, 21 октября 2020 г.
собираем видео из картинок
ffmpeg -framerate 5 -pattern_type glob -i '*.png' -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
-framerate 5 - пять кадров в секунду
понедельник, 29 июня 2020 г.
костылики телеграмма и картинок
#!/bin/bash
export DISPLAY=':0.0'
/usr/bin/shutter --full --delay=0 --exit_after_capture --no_session --disable_systray --output=/tmp/img-XXXXXX.png > /dev/null 2>&1
/bin/imgur /tmp/img-XXXXXX.png > /tmp/scr.txt
a=`cat /tmp/scr.txt`
wget -q "https://api.telegram.org/bot112233445:AA1mDwSO8hG2Rgo7Q2DYQWBmn8xRCDP5_24/sendMessage?chat_id=-262621929&text=$a"
что требуется :
- shutter (в принципе любая програмулька что умеет делать скрин экрана аля gnome-screenshot или scrot )
- https://github.com/tremby/imgur.sh (нагуглил скрипт по аплоаду картинок)
- свой телеграм бот (юзал эту статейку)
в крон под пользователем, в крацце - делаем скрин, отправляем его в imgur (там как то надо свой id получить и прописать в скрипте, на сайте было) получаем урл на фотку, вотку отправлем в чат с собой
пятница, 8 мая 2020 г.
тепловая карта неудачного входа в SSH
идем на https://ipinfo.io/ регаемся - получаем API key он нужен будет скрипту (бесплатный лимит запросов 50к в месяц то есть каждый айпишник из лога это 1 запрос )
ставим недостающие пакеты
pip3 install folium requests ipinfoтянем сам скрипт
wget https://raw.githubusercontent.com/meesaltena/SSHHeatmap/master/SSHHeatmap.pyсобираем попытки входа на сервер
ssh root@193.*.61.11 'grep "Failed password" /var/log/auth.log' > failed.txt
генерим хтмлку где последнее - это ключ взятый ранее
python3 SSHHeatmap.py failed.txt 6e**f9**f**fb*получаем файл heatmap.html - открываем в браузере и топаем настраивать файл ту бан
четверг, 30 января 2020 г.
разбрасываем ключи
cat ./keyadd.sh
#!/bin/bash
cat /home/filalex/.ssh/id_rsa.pub | ssh root@"$1" "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
while read LINE; do /home/filalex/keyadd.sh $LINE; done < hosts2
понедельник, 25 ноября 2019 г.
Wifi Map
Wifi Heat Map - Survey
приложение для анализа вайфай покрытия в квартире , здинии или организации
вложил план - походил по уголкам потыкал где ты - получил картинку
пятница, 22 ноября 2019 г.
когда поставил ubuntu 18
apt install ubuntu-unity-desktop
sudo dpkg-reconfigure lightdm
меняем gdm на lightdm
среда, 30 октября 2019 г.
запись cli
http://showterm.io/ - собственно что искал ,
установка от рута :
ну а если не надо аплоадить ибо файл секурный и нало сохранить локально - то утилитка ttyrec по умолчанию сохраняет файл ~/ttyrecord либо указать иной, воспроизвести можно командой ttyplay
пятница, 2 августа 2019 г.
qos tos и прочие няшки
TOS (Dec) | TOS (Hex) | TOS Precedence Name | TOS Delay flag | TOS Throughput flag | TOS Reliability flag | DSCP (Hex) | DSCP (Dec) | DSCP/PHB Class |
0 | 0x00 | Routine | 0 | 0 | 0 | 0x00 | 0 | none |
4 | 0x04 | Routine | 0 | 0 | 1 | 0x01 | 1 | none |
8 | 0x08 | Routine | 0 | 1 | 0 | 0x02 | 2 | none |
12 | 0x0C | Routine | 0 | 1 | 1 | 0x03 | 3 | none |
16 | 0x10 | Routine | 1 | 0 | 0 | 0x04 | 4 | none |
32 | 0x20 | Priority | 0 | 0 | 0 | 0x08 | 8 | cs1 |
40 | 0x28 | Priority | 0 | 1 | 0 | 0x0A | 10 | af11 |
48 | 0x30 | Priority | 1 | 0 | 0 | 0x0C | 12 | af12 |
56 | 0x38 | Priority | 1 | 1 | 0 | 0x0E | 14 | af13 |
64 | 0x40 | Immediate | 0 | 0 | 0 | 0x10 | 16 | cs2 |
72 | 0x48 | Immediate | 0 | 1 | 0 | 0x12 | 18 | af21 |
80 | 0x50 | Immediate | 1 | 0 | 0 | 0x14 | 20 | af22 |
88 | 0x58 | Immediate | 1 | 1 | 0 | 0x16 | 22 | af23 |
96 | 0x60 | Flash | 0 | 0 | 0 | 0x18 | 24 | cs3 |
104 | 0x68 | Flash | 0 | 1 | 0 | 0x1A | 26 | af31 |
112 | 0x70 | Flash | 1 | 0 | 0 | 0x1C | 28 | af32 |
120 | 0x78 | Flash | 1 | 1 | 0 | 0x1E | 30 | af33 |
128 | 0x80 | FlashOverride | 0 | 0 | 0 | 0x20 | 32 | cs4 |
136 | 0x88 | FlashOverride | 0 | 1 | 0 | 0x22 | 34 | af41 |
144 | 0x90 | FlashOverride | 1 | 0 | 0 | 0x24 | 36 | af42 |
152 | 0x98 | FlashOverride | 1 | 1 | 0 | 0x26 | 38 | af43 |
160 | 0xA0 | Critical | 0 | 0 | 0 | 0x28 | 40 | cs5 |
176 | 0xB0 | Critical | 1 | 0 | 0 | 0x2C | 44 | voice-admit |
184 | 0xB8 | Critical | 1 | 1 | 0 | 0x2E | 46 | ef |
192 | 0xC0 | InterNetworkControl | 0 | 0 | 0 | 0x30 | 48 | cs6 |
224 | 0xE0 | NetworkControl | 0 | 0 | 0 | 0x38 | 56 | cs7 |