понедельник, 24 октября 2016 г.

html 2 pdf

положу сюда .. а то еле нашел
 задача : на читалке только pdf вменяемо читается, надо баш или подобный текстовый сайтик скачать в дорожку почитать
 wkhtmltopdf - ставим отдельно

filalex@WorkPC:~$ cat /home/filalex/tmp/wgetBashToPdf.sh
#!/bin/bash
mkdir /home/filalex/bash/
cd /home/filalex/bash/
# last page bash.org.ru
LIMIT=698
# go ! go ! go !
for ((a=10; a<= LIMIT; a++))
do
 wkhtmltopdf bash.im/index/$a /home/filalex/bash/$a.pdf
 echo "$a "
done
# night wersion
# init 0

если нужен html (уже не для читалки а для планшетика) то строку с wkhtmltopdf меняем на

 wget http://bash.im/index/$a -O /home/filalex/bash/$a.html

понедельник, 19 сентября 2016 г.

погода в консоли

найдено тут, точнее тут но там было понятнее описано ... все просто

filalex@asdHomePC:~$ grep fore .bash_aliases
alias forecast="wget -O - wttr.in/ -q"

красяво ... молодцы ребята
есть веб ифейс на http://wttr.in

воскресенье, 18 сентября 2016 г.

вывод звука на другую звуковуху

mplayer -ao alsa:device=hw=0  {url or playlist }
выводит на звуковую карту номер ноль
mplayer -ao alsa:device=hw=2  {url or playlist }
но звуковую номер 2 

найти карту и сделать погромче от 1 до 30
 
#!/bin/bash

v=`cat /proc/asound/card*/id  | sed -n '/Audigy2/{=}'`; let "s=v-1"  amixer -c$s set Master 1

for i in `seq 1 30`;
do
sleep 5
amixer -c$s set Master 1+
done
exit 0
 

играем с громкостью в консоле

amixer -c2 set Master 40

заметим что запускаем не alsamixer

-с2  - карточка звука , как правило есть встроенная есть hdmi на видеокарте мой аудиджи оказался в с писке 3 картой, а так как названия идут с нуля - значение будет 2

set Master - выборканала

40 - перевести на 40% громкости
можно написать 10+ - прибавиться к текщему уровню 10%

вторник, 30 августа 2016 г.

консольный Pastebinit

https://help.ubuntu.com/community/Pastebinit

было найдено при установке последнего дистрибутива бубунты - работает норм, удобно just use it

там по ssh с мобилы чтобы отправить именно сылку конфиг файла .. милое дело

среда, 27 июля 2016 г.

показать все сетевки в том числе отключенные

ifconfig  -a

черт не знал , удобно

что надо для сборки пакетов

радует что везде советуют собрать из исходников , но не радует что никто не говорит что из пакетов надо чтобы собрать из зсходников


aptitude install dkms

тянет пакет gcc и make основные, пару допов, которые не помешают, всяко эра не дискеток , места вагон

для примера сборка поддержки 10гигабитных плат intel

lspci говорит что у нас 

07:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)


загружаем http://www.intel.ru/content/www/ru/ru/support/network-and-i-o/ethernet-products/000005688.html

читаем ридми

cd /home/filalex/ixgbe-4.3.15/src/
su root
# make install

линукс умный , перед установкой системы он увидел железку что то подкгрузил... как правило SFP купить надо за кучу денег у интела .. но есть дешевле SNR ... надо отгрузить старый модуль  и подгрузить новый с кючем поддержки левых SFP


# rmmod ixgbe
если не ругнулся - значит выгрузил - второй раз на команду ругнулся - значит да ..

смотрим параметры


modinfo

filename:       /lib/modules/4.4.0-31-generic/updates/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
version:        4.3.15
license:        GPL
description:    Intel(R) 10 Gigabit PCI Express Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
srcversion:     7AED484083B2C5B86424A3A
alias:          pci:v00008086d000015ADsv*sd*bc*sc*i*
alias:          pci:v00008086d000015ACsv*sd*bc*sc*i*
alias:          pci:v00008086d000015ABsv*sd*bc*sc*i*
alias:          pci:v00008086d000015AAsv*sd*bc*sc*i*
alias:          pci:v00008086d000015D1sv*sd*bc*sc*i*
alias:          pci:v00008086d00001563sv*sd*bc*sc*i*
alias:          pci:v00008086d00001560sv*sd*bc*sc*i*
alias:          pci:v00008086d00001558sv*sd*bc*sc*i*
alias:          pci:v00008086d0000154Asv*sd*bc*sc*i*
alias:          pci:v00008086d00001557sv*sd*bc*sc*i*
alias:          pci:v00008086d0000154Fsv*sd*bc*sc*i*
alias:          pci:v00008086d0000154Dsv*sd*bc*sc*i*
alias:          pci:v00008086d00001528sv*sd*bc*sc*i*
alias:          pci:v00008086d000010F8sv*sd*bc*sc*i*
alias:          pci:v00008086d0000151Csv*sd*bc*sc*i*
alias:          pci:v00008086d00001529sv*sd*bc*sc*i*
alias:          pci:v00008086d0000152Asv*sd*bc*sc*i*
alias:          pci:v00008086d000010F9sv*sd*bc*sc*i*
alias:          pci:v00008086d00001514sv*sd*bc*sc*i*
alias:          pci:v00008086d00001507sv*sd*bc*sc*i*
alias:          pci:v00008086d000010FBsv*sd*bc*sc*i*
alias:          pci:v00008086d00001517sv*sd*bc*sc*i*
alias:          pci:v00008086d000010FCsv*sd*bc*sc*i*
alias:          pci:v00008086d000010F7sv*sd*bc*sc*i*
alias:          pci:v00008086d00001508sv*sd*bc*sc*i*
alias:          pci:v00008086d000010DBsv*sd*bc*sc*i*
alias:          pci:v00008086d000010F4sv*sd*bc*sc*i*
alias:          pci:v00008086d000010E1sv*sd*bc*sc*i*
alias:          pci:v00008086d000010F1sv*sd*bc*sc*i*
alias:          pci:v00008086d000010ECsv*sd*bc*sc*i*
alias:          pci:v00008086d000010DDsv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Bsv*sd*bc*sc*i*
alias:          pci:v00008086d000010C8sv*sd*bc*sc*i*
alias:          pci:v00008086d000010C7sv*sd*bc*sc*i*
alias:          pci:v00008086d000010C6sv*sd*bc*sc*i*
alias:          pci:v00008086d000010B6sv*sd*bc*sc*i*
depends:        ptp,dca,vxlan
vermagic:       4.4.0-31-generic SMP mod_unload modversions
parm:           InterruptType:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default IntMode (deprecated) (array of int)
parm:           IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int)
parm:           MQ:Disable or enable Multiple Queues, default 1 (array of int)
parm:           DCA:Disable or enable Direct Cache Access, 0=disabled, 1=descriptor only, 2=descriptor and data (array of int)
parm:           RSS:Number of Receive-Side Scaling Descriptor Queues, default 0=number of cpus (array of int)
parm:           VMDQ:Number of Virtual Machine Device Queues: 0/1 = disable, 2-16 enable (default=8) (array of int)
parm:           max_vfs:Number of Virtual Functions: 0 = disable (default), 1-63 = enable this many VFs (array of int)
parm:           VEPA:VEPA Bridge Mode: 0 = VEB (default), 1 = VEPA (array of int)
parm:           InterruptThrottleRate:Maximum interrupts per second, per vector, (0,1,956-488281), default 1 (array of int)
parm:           LLIPort:Low Latency Interrupt TCP Port (0-65535) (array of int)
parm:           LLIPush:Low Latency Interrupt on TCP Push flag (0,1) (array of int)
parm:           LLISize:Low Latency Interrupt on Packet Size (0-1500) (array of int)
parm:           LLIEType:Low Latency Interrupt Ethernet Protocol Type (array of int)
parm:           LLIVLANP:Low Latency Interrupt on VLAN priority threshold (array of int)
parm:           FdirPballoc:Flow Director packet buffer allocation level:
            1 = 8k hash filters or 2k perfect filters
            2 = 16k hash filters or 4k perfect filters
            3 = 32k hash filters or 8k perfect filters (array of int)
parm:           AtrSampleRate:Software ATR Tx packet sample rate (array of int)
parm:           FCoE:Disable or enable FCoE Offload, default 1 (array of int)
parm:           MDD:Malicious Driver Detection: (0,1), default 1 = on (array of int)
parm:           LRO:Large Receive Offload (0,1), default 0 = off (array of int)
parm:           allow_unsupported_sfp:Allow unsupported and untested SFP+ modules on 82599 based adapters, default 0 = Disable (array of int)
parm:           dmac_watchdog:DMA coalescing watchdog in microseconds (0,41-10000), default 0 = off (array of int)
parm:           vxlan_rx:VXLAN receive checksum offload (0,1), default 1 = Enable (array of int)
root@ZBX2:/home/filalex/ixgbe-4.3.15/src# modprobe ixgbe allow_unsupported_sfp=1

allow_unsupported_sfp - то что надо
подгружаем

modprobe ixgbe allow_unsupported_sfp=1


среда, 8 июня 2016 г.

сканирование мультикаст адресов через udpxy

где то с годик назад купил один провайдер бюджетненький роутер SNR-CPE-W4N, был взят в тест, оказлось
- вполне сносная китайскаая железка,
- довольно бюджетная
- приличный функционал, по сравнению с тем же [d,TP] - link

саме интересное что у роутера есть доступ по ssh есть мануал на страничке поддержки с описанием как окирпичить роутер и как его починить. отельно стоит отметить наличие на роутере udpxy демона, но беда в том что на 15 страничке мануала есть картинка где предлагается развернуть udpxy и в WAN и в LAN, хотя корректно написано жирным что не советуют так ставить wan, если вообще знаешь что делаешь

что получили в итоге..
есть несколько человек которые платно настраивают роутеры, ну мануалы как правило читают только после появления проблемы, а они вообще настраивали "по картинкам" , мало того что сами так настраивали так еще и учили настравивть уже по своему "Мануалу" "исправленному"

в итоге все эти настроенные роутеры генерировали исходящий трафик с тв каналами в мир, у кого то только бесплатное неинтересное тв , а у кого то находилось что то сносное типа порева HD каналов

списки каналов быстренько разлетелись по миру , и некоторые пользователи умудрялись отдавать по 8 Тб в месяц

вот небольшой мануальчик как можно найти эти роуетры и небольшое дописание как просканить плейлист провайдера на наличие каналов через прокси тупого пользователя

для начала возьмем сетку провайдера (это сами как нибудь, диапазоны адресов дают команды whois), и просканим ее на 81 порт, удалим пустые и ненужные  строки и выведем все это в файл

nmap -PN -p 81 --open -n 37.225.0.0/24 | grep -v "filtered\|closed" | grep -vE "(^#|^$)" > /var/www/tmp/scan.txt
 
мануал команды nmap описан в инете, далее вытащим из этого списка только ip адреса

grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" scan.txt > ip.list

зная что udpxy имеет страничку "udpxy status" то будем ориентироваться на нее, так как на 81 порту может весеть какой то отличный сервис и он выдаст ошибку отличнуюю от 200
 
for i in `cat ip.list`; do wget --tries=1 -T 1 http://$i:81/status -o check_"$i" -O /dev/null; done

это в исполянемой директории выдаст нам  кучку файлов с названием "check_" в окончании с ip адресом в тексте которого будет процесс скачивания странички wget-ом
и на последок грепнем кто из списка этих файлов ответил  на этот запрос что "ок" в примере все файлы лежали в директории /tmp и выводились в фалйик ALL

grep -r "200 OK" /home/filalex/tmp/ > /home/filalex/ALL

после тем же самым грепом выдергиваем из этого файла только ip адреса и получаем уже список который можно юзать , так же скриптом при помощи sed можно получить вменяемый список каналов и выплюнуть его в m3u длч просмотра. Стоит иметь в виду что некоторые устройства сами прокидывают 81 порт и отвечают http кодом ok 200 на страничку статуса, но в браузере оказывается какая то логин страничка того или иного девайса.. но как показала практика таких примерно 2% от ответивших из /17 ой сетки, тоесть из 32000 роутеров


тут появляется вопрос, а допустим есть какие то статусные транички но в интернете и неизвесны мультикаст группы которые вещает тот или иной провайдер, но есть желание поглядеть тв и пара часов на отладку скрипта для скана ... как показала практика я оказался не первый и в этой статье есть баш скрипт "на коленке" коротый сканит и если канал есть то сохраняет картинку в png ше с именем мультикаст адреса канала
сам скриптик

#!/bin/bash

for i in $(seq 1 255); do
    IP=239.255.2.$i
    URL=udp://@$IP:5500
    echo "== $URL =="
    mplayer -ac none -really-quiet -vo png -frames 1 $URL 2>/dev/null
    mv 00000001.png $IP.png
done 
 
 
далее только дело времени и желания привести это все к вменяемому виду и запустить на поток сканирование интернета или указанных сеток для поиска бесплатного контента.

например мы, зная струткуту строки меняем строку URL на

 URL=http://адрес_прокси:порт_прокси/udp/$IP:4000

получаем сканирование непосредственно каналов, а если дописать еще одну переменную, то можно сканить не один октет а сразу несколько
 
for y in $(seq 1 255); do


так как провайдеры бывает разделяют подписки по группам третьим октетом и управляют доступом через акцесс листы комуттаторов

среда, 27 апреля 2016 г.

циклическое выполнение команды с задержкой

while [ 1 ]; do  sensors; sleep 2; echo "-------------------" `date +%T` "-----------------"; done;

задержка - 2 сек sleep 2
команда  sensors - выдает информацию о температуре
дата - чисто чтобы понять что ничего не повисло и работает в нормальном режиме

суббота, 13 февраля 2016 г.

вырезать кусок видео

mencoder -ss 8542 -frames 6936 -o /home/filalex/sister.mp4 -oac pcm -ovc copy /home/filalex/Загрузки/1.mp4

начать с 8542 секунды, вырезать 6936 фреймов (24 фрейма в секунду)  файл будет называться sister.mp4 , аудио и видео копируем из оригинала , работаем с файлом 1.mp4
upd: не мешает поглядеть оригинал, частенько попадается и 30.000 fps