четверг, 20 июля 2017 г.

win на флешку

В кучку с остальными unetbootini  и прочими утилитками

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install woeusb

sudo woeusbgui - гуи интерфейс

понедельник, 16 января 2017 г.

запись видео с экрана

случайно наткнулся тут на командочку

ffmpeg -f x11grab -r 20 -s 1920x1080 -i :0.0 /tmp/outputFile2.mkv


ранее искал, попадались варианты через vlc, но как правило то не получалось, то качество не радовало, то просто тупило,

вариант вменяемый  (проц не уходит в топ) если
- не ставить частоту под 30 кадров
- делать запись с единственного монитора (если их 2)

воскресенье, 15 января 2017 г.

пргресс бар выполнения команды

pv /home/filalex/Загрузки/SL.iso | dd  of=/dev/zero
4,38GiB 0:00:15 [ 283MiB/s][======================>] 100%

собственно заменяет тот же cat

в связке с dd удобно знать "что то встало"

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

host источник 
pv  /dev/sda | nc -l -p 6666
 
host получатель 
nc 192.168.0.*** 6666 > /dev/pve-vg-hdd/host
 

основным приемуществом является прогресс-бар и таймер времени 

 

пятница, 13 января 2017 г.

учим скрипты говорить

нарыто тут и  тут
 
 
прсто спросить да нет 
 
#!/bin/bash

echo -n "Продолжить? (y/n) "

read item
case "$item" in
    y|Y) echo "Ввели «y», продолжаем..."
        ;;
    n|N) echo "Ввели «n», завершаем..."
        exit 0
        ;;
    *) echo "Ничего не ввели. Выполняем действие по умолчанию..."
        ;;
esac
 
 цветной вывод справа консольки, как при старте системы (like!)
 
 
 #!/bin/bash

SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_NORMAL="echo -en \\033[0;39m"

echo -e "Удаляется файл..."

# Команда, которую нужно отследить
rm test_file

if [ $? -eq 0 ]; then
    $SETCOLOR_SUCCESS
    echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]"
    $SETCOLOR_NORMAL
    echo
else
    $SETCOLOR_FAILURE
    echo -n "$(tput hpa $(tput cols))$(tput cub 6)[fail]"
    $SETCOLOR_NORMAL
    echo
fi
 
запрос имени или пароля или значения "графически" (по-win-довски)
 
#!/bin/bash

name=$(gdialog --title "Ввод данных" --inputbox "Введите ваше имя:" 50 60 2>&1)
echo "Ваше имя: $name"
 
  
показать информер 
 
 notify-send "Привет" "я подключился, показывай"
если root то можно поморгать на клавиатурке


#!/bin/bash

setleds -D +caps < /dev/tty7
sleep 1
setleds -D -caps < /dev/tty7
 
 
можно юзать 
-scroll +scroll 
-num +num
-caps +caps
(то что лампочка горит не значит что капс работает!!!! )
 
 
 

вторник, 10 января 2017 г.

измененеи странички статуса udpxy


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

Сборка и установка


Скачиваем архив с исходными текстами и разворачиваем в песочницу:
 
ver="1.0.23-0" 
wget http://downloads.sourceforge.net/project/udpxy/udpxy/Chipmunk-1.0/udpxy.${ver}-prod.tar.gz
tar xzf ~/udpxy.${ver}-prod.tar.gz -C /home/builder/home/ 
 
Изменяем названия управляющих команд на очень секретные:
 
cd /home/builder/home/udpxy-${ver} 
sed -i.orig -e 's!/restart!/SECRET_restart!' -e 's!/status!/SECRET_status!' statpg.h 
sed -i.orig -e 's!"status"!"SECRET_status"!' -e 's!"restart"!"SECRET_restart"!' -e 's!"rtp"!"SECRET_rtp"!' extrn.c 
 
Заходим в песочницу и компилируем:
 
chroot /home/builder make -C /home/udpxy-${ver}

понедельник, 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

пятница, 6 ноября 2015 г.

Восстановление данных linux

sudo apt-get install testdisk
sudo testdisk
после запуска 
- запрос писать логи или нет - хз зачем 
- выбор диска с каким будем работать 
- таблицы разделов, большинстве случаев будет тип Intel / PC Partition
- делаем анализ, выбрав Analyse.
- Выбираем Quick Search.
= тут появиться прогресс бар в процентиках, не факт что он добежит 
до конца, появятся разделы 
- команда Write чтобы запиисать таблицу разделов если она просто 
потерялась и диск виделся как пустой
- первый вариант L - попробывать загрузить бекап раздела если 
он был сохранен, но так как мы читаем эту статью, нам это не поможет 
у нас их нет 
- второй вариант P - показать файлы в разделе если они есть, 
можно попробывать их скопировать 
 
 


Чтобы снизить возможные потери информации при неудачной попытке 
восстановления, следует сделать полный дамп повреждённого тома 
(ФС, раздел, либо весь диск, в зависимости от того как располагались
 исходные данные) через dd на отдельный носитель и дальше 
экспериментировать с этим дампом:
sudo dd if=/dev/sdXY of=/path/to/dump.dd
sudo testdisk /path/to/dump.dd
Deeper Search так же ищет резервную копию загрузочного сектора FAT32, 
резервную копию суперблока загрузочного сектора NTFS, 
резервную копию суперблока ext2/ext3 чтобы найти больше разделов
 
если все печально можно попробывать через режим адванцед найти 
суперблоки на диске и попробывать восстановить с указанием суперблока  
 e2fsck -b 819200 /dev/sdb1 -y 
 

среда, 28 октября 2015 г.

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

Расшарить Папку по HTTP

Иногда возникает необходимость быстро расшарить файлы или папки на Linux машине.

Использование модуля для Python (>= 2.4) - Simple HTTP Server. В большинстве случаев, Вам не придется ничего устанавливать или настраивать!
Этот модуль поднимает Простой HTTP Сервер, который превращает текущую директорию в корневую директорию вэб-сервера. Таким образом, директория вместе со всем ее содержимым становится доступной по HTTP.

# Для Python >=2.4
python -m SimpleHTTPServer
# Для Python 3.x
python -m http.server
Теперь, перейдя по адресу http://ваш_ip_адрес:8000, Вы получите доступ к содержимому директории.
Simple HTTP Server, по умолчанию слушает 0.0.0.0:8000, но номер порта может быть изменен :
# Для Python >=2.4
python -m SimpleHTTPServer 8888
# Для Python 3.x
python -m http.server 8888

четверг, 15 октября 2015 г.

grepаем лог микротика

ssh mikrotik.domen.ru -l filalex /log print  | grep 8C:29:37:47:39:9D

вместо /log print юзаем что душе угодно от Ros