задача: иногда пропадает инет и надо иметь в офлайне апру сотен треков любимой станции гуглим в нете список урлов типа вот такого https://gist.github.com/ergoz/e7837a54956116167db93b016dbd51a9
Ставим streamripper и запускаем его в скрине
задача: иногда пропадает инет и надо иметь в офлайне апру сотен треков любимой станции гуглим в нете список урлов типа вот такого https://gist.github.com/ergoz/e7837a54956116167db93b016dbd51a9
Ставим streamripper и запускаем его в скрине
в продолжение 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 пункта
#!/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 -noxfixes -noxrecord -noxdamage -display :0 -auth /var/run/lightdm/root/:0
![]() | лениво |
с уже рабочей тачки копируем ключ
cat /root/.ssh/authorized_keys | ssh root@192.168.11.11 'cat >> ~/.ssh/authorized_keys'
"от попингуя слышу", как говорится. просто пинговать и получать стату по ответам на 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
Задача: вытащить последний скрин мака и дернуть из него текст (ака юзер прислал какой то длинный хеш скрином а не текстом и влом перебивать)
Ньюансы: мак хранит фотки на рабочем столе и где это изменить я не нашел плюсом текст с пробелами формата Снимок экрана 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 будет готовая строка, повторный вод в терминал даст на выхлопе текст с картинки
вариант улучшить - переписав всю основную часть функции в скрипт
: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
можно нотифаку в тг сделать обавочно, но надо как то передать двоеточия и запяты. у меня почему то на коленке приходило только первое значение. курить не стал так как не потребовалось
для винды https://disk.yandex.ru/d/Zl6mpDnp4k3z2Q
на debian/ubuntu лечаться так: в /etc/ca-certificates.conf найти mozilla/DST_Root_CA_X3.crt и закоментить. Далее выполнить update-ca-certificates --fresh
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)
ну как обычно, хз сколько надо места виртуалке, ну чтобы не мало - 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
для личного - халява - на ходу системный раздел можно копернуть
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"
оригинал взят тут
при куче флешек на ноут установилась только одна система, остальные вываливались в какой то баг видимо из за драйвера видео, или еще из чего - короче не ставились
клиенту нужно было установить pro версия, а по фaкту встал home
попытки установить что то иное приводили к нулевому результату и трете времени
найденый ман помог
- копируем код VK7JG-NPHTM-C97JM-9MPGT-3V66T
- отключаем инет
- идем в насройки - меняем ключ (ручками) и говорим применить (можем получить ошибку но я данной не видел)
- ребут - проверка - да, стала про
- включаем нет и тянем обновления
ffmpeg -framerate 5 -pattern_type glob -i '*.png' -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
-framerate 5 - пять кадров в секунду
#!/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"
что требуется :
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 - открываем в браузере и топаем настраивать файл ту бан
#!/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