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

пятница, 24 июля 2015 г.

sshfs - монтирование по ssh

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

sshfs -p 1435 web@filalex.com:/var/www/ /home/filalex/901/

после ввода пароля в заранее созданной папке 901 появиться содержимое удаленного сервера папки /var/www/

ClusterSSH

используется для одновременного подключения к нескольким хостам для управлени по средствам ssh

плюсы - прикольно, удобно экономит кучку времни
минусы - не отображаются русские буквы 

конфигурационный файл —/etc/clusters или ~/.csshrc
clusters = web-cluster ftp-cluster

web-cluster = web1 web2
ftp-cluster = ftp1 ftp2 ftp3

после первого запуска появился файлик   

cat /home/filalex/.clusterssh/clusters
# Tag definitions moved from old .csshrc file
call-center 192.168.0.41 192.168.0.42  192.168.0.43 192.168.0.46  192.168.0.47 192.168.0.48 192.168.0.49 192.168.0.53

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

cssh -l root call-center

пойдем под логином root на группу указанную в строке коллцентр
можно в вайле конфигурции перед кадым хостом указать имя под которым ломиться (ели там не рут ) тогда команда примет меньший вид:

cssh  call-center



 
 

пятница, 17 июля 2015 г.

less

Основные команды
  • h ― вызов справки
  • q ― выход
  • SPACE ― на экран вперёд
  • ← и → ― горизонтальная прокрутка
  • ↓ и ↑ ― вертикальная прокрутка (аналогично j и k)
  • F ― просмотр растущего файла (аналог tail -f)
  • <N>g ― перейти на строку N (по умолчанию 1)
  • <N>% ― перейти на позицию N% (к примеру 50%)
  • /pattern ― поиск по шаблону вперёд
  • ?pattern ― поиск по шаблону назад
  • n ― следующее совпадение
  • N ― предыдущее совпадение
  • v ― запуск редактора (переменная окружения EDITOR)
  • ! ― запуск shell-команды (% - имя текущего файла, к примеру: ! cat % > /tmp/foobar.txt)
 Полезные опции

Опции задают различные режимы работы Less. Их можно указывать непосредственно в командной строке, в переменной окружения LESS, а также в самой программе. Вот некоторые из них:
  • -I ― игнорировать регистр при поиске
  • -J ― включить столбец статуса слева экрана
  • -N ― отображать номера строк в столбце статуса
  • -S ― усекать длинные строки

вторник, 5 мая 2015 г.

vpn client на подсеть

задача:
зарулить определенную подсеть с клиентами в впн
примерное описание и ссылка находитя тут

скажем на порту номер 4 есть подсеть 192.168.210.0/24
самому порту назначен адрес 192.168.210.1
натроен DHCP , все клиенты получают шз из пула 192.168.210.128/25
имеем подключение у основному провайдеру и ко второму RT (поверх первого) через впн

разрешаем маскарадинг на соединение pptp-rostelecom
 /ip firewall nat
add action=masquerade chain=srcnat out-interface=pptp-rostelecom 

помечаем пакеты 
  /ip firewall mangle
add action=mark-routing chain=prerouting new-routing-mark=RT src-address=192.168.210.130-192.168.210.250

добавляем роут
 /ip route
add check-gateway=ping distance=1 gateway=pptp-rostelecom routing-mark=RT

все , клиенты из подсети 192.168.210.130-192.168.210.250 побежали в ростелеком