четверг, 24 ноября 2011 г.

Онлайн телевизор


Для просмотра требуется установить VLC проигрыватель

воскресенье, 2 октября 2011 г.

нашел халявное телевидение

Просмотр бесплатного интернет телевидения ограничен пропускной способностью вашего интернет канала. скорости потока каналов составляют от 2 до 6 (HD) мБ/с. Для просмотра необходим vlc plugin. Если у вас установлен VLC версия более поздняя чем 1.0.5 у вас могут быть проблемы с разворотом на весь экран, будем надеятся что команда VideoLan в ближайшее время исправит этот баг. Установку плагина можно произвести с сайта. Если он у вас не установлен выведется соответствующее сообщение.

воскресенье, 24 июля 2011 г.

коды спецсимволов

Переключиться в табличный режимПереключиться в табличный режим

Одним из самых важных метасимволов является символ обратного слэша ("\"). Если в строке встречается этот символ, то следующий за ним символ рассматривается двояко:

    * если следующий символ в обычном режиме имеет какое-либо специальное значение, то он теряет это свое специальное значение и рассматривается как обычный символ. Это совершенно необходимо для того, чтобы иметь возможность вставлять в строку специальные символы, как обычные. Например метасимвол '.', в обычном режиме означает "любой единичный символ", а '\.' означает просто точку. Также можно лишить специального значения и сам этот символ: '\\'.
    * если следующий символ в обычном режиме не имеет никакого специального значения, то он может получить такое значение, будучи соединенным с символом '\'. К примеру, символ 'd' в обычном режиме воспринимается просто как буква, однако, будучи соединенной с обратным слэшем ('\d') становится метасимволом, означающим "любая цифра".

Существует множество символов, которые образуют метасимволы в паре с обратным слэшем. Как правило подобные пары используются для того, чтобы показать, что на этом месте в строке должен находиться символ, с кодом, который не имеет соответствующего ему изображения или же символ, принадлежащий какой-то определенной группе символов. Ниже приведены некоторые наиболее употребительные:

Метасимвол

   

Значение

Метасимволы для задания символов, не имеющих изображения

\n

   

Символ перевода строки (код 0x0A)


   

Символ возврата каретки (код 0x0D)

 
   

Символ табуляции (код 0x09)

\x** (где * - любая шестнадцатеричная цифра)

   

Вставка символа с шестнадцатеричным кодом 0x**, например \x41 вставит латинскую букву 'A'

\0** (где * - любая восьмеричная цифра)

   

Вставка символа с восьмеричным кодом 0**, например \040 вставит пробел " "

\* (где * - любая цифра от 1 до 9)

   

Обратная ссылка. Соответствует той же последовательности, что и значение в n-ных круглых скобках. Например, " (.*) \1" найдет "aa aa", "1 1", но не найдет "aaaa", "11"

Метасимволы для задания групп символов

\d

   

Цифра. Эквивалентно [0-9].

\D

   

Не цифра (любой символ кроме символов 0-9). Эквивалентно [^\d].

\s

   

Пустой символ (пробел, табуляция, возврат каретки, перевод строки). Эквивалентно [ \n ].

\S

   

Непустой символ (все, кроме символов, определяемых метасимволом \s). Эквивалентно [^\s].

\w

   

"Словесный" символ (символ, который используется в словах. Обычно все буквы, все цифры и знак подчеркивания). Эквивалентно [0-9 а-яА-Яa-zA-Z_].

\W

   

Все, кроме символов, определяемых метасимволом \w. Эквивалентно [^\w].

Границы символов

\<

   

Начало слова, т. е. граница между символом, удовлетворяющим \W и символом, удовлетворяющим \w

\>

   

Конец слова, т. е. граница между символом, удовлетворяющим \w и символом, удовлетворяющим \W

\b

   

Начало или конец слова, т. е. граница между символами, один из которых удовлетворяет \W, а другой - удовлетворяет \w

\B

   

Середина слова, т. е. граница между символами, оба которых удовлетворяют \W или оба которых удовлетворяют \w

^

   

Начало текста

$

   

Конец текста

\A

   

Начало строки, т. е. граница между переводом строки (или началом текста) и любым символом

\Z

   

Конец строки, т. е. граница между любым символом и переводом строки (или концом текста)

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

Купить блокхаус из полимерного композита российского производства Краснопресненская

Цена на блокхаус из полимерного композита производства Россия оптом от производителя Отрадное

Рады предложить Вам услугу Цена на вагонку из древесно-полимерного композита производства Россия оптом и в розницу, метро Нагорная.

Цена на плинтус российского производства от производителя Китай-Город

Кроме того позвольте представить следующие услуги:

  • Цена на террасную декинг-доску из композита производства Россия оптом от производителя Электрозаводская
  • Купить декинг-доску из полимерного композита производства Россия оптом в Москве
  • Террасный декинг из полимера российского производства от производителя, улица Винокурова.
  • Цена на плинтус из жидкого дерева российского производства, Нагатинский проезд.
  • Цена на блок-хаус-вагонку из полимера оптом, Хлебозаводский проезд.
  • Декинг-доска из жидкого дерева оптом, улица Ремизова.
  • Купить вагонку из жидкого дерева производства Россия оптом, Криворожская улица.
  • Вагонка из древесно-полимерного композита российского производства оптом и в розницу, улица Дмитрия Ульянова.
  • Блокхаус из древесного композита российского производства оптом от производителя, Большая Черёмушкинская улица.
  • Купить половые настилы из древесного композита российского производства от производителя, Каширское шоссе.
  • Оптовые продажи блок-хауса из полимерного композита производства Россия от производителя, Электролитный проезд.
  • Купить террасную декинг-доску из древесного композита производства Россия оптом, Нагорная улица.
  • Цена на плинтус из полимерного композита оптом и в розницу от производителя, Нахимовский проспект.
  • Половые настилы из композита оптом и в розницу, улица Кржижановского.
  • Декинг из полимерного композита производства Россия от производителя, Севастопольский проспект.
  • Оптовые продажи террасной доски из полимера российского производства, Загородный проезд.
  • Цена на вагонку из древесного композита оптом и в розницу от производителя, Симферопольский проезд.
  • Купить плинтус из древесного композита российского производства оптом и в розницу от производителя, Нагорный бульвар.
  • Декинг из композита от производителя, Нагорный бульвар.
  • Купить плинтус из ДПК российского производства оптом, Новочерёмушкинская улица.
  • Блокхаус из полимерного композита производства Россия от производителя, Криворожский проезд.
  • Оптовые продажи террасной доски из композита российского производства, Варшавское шоссе.
  • Оптовые поставки изделий из древесно-полимерного композита российского производства от производителя в Москве
  • Сайдинг из полимерного композита производства Россия оптом от производителя Улица Подбельского

Оптовые и розничные продажи изделий из полимера от производителя Краснопресненская

Купить декинг из полимера от производителя Нагорная.

Купить блокхаус-вагонку из ДПК оптом от производителя, около м. Нагорная, по минимальным ценам.

Купить изделия из древесно-полимерного композита оптом и в розницу Воробьевы Горы


Вагонка от производителя Коломенская

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

IPTV - GetStream config ru - cesbo.com
Файл конфигурации GetStream a84¶

* Файл конфигурации GetStream a84
o Основные секции
+ newcamd
+ http
+ adapter
+ net
o stream
+ pat/pmt
+ input
+ output-udp
+ output-rtp
+ output-http
+ output-pipe
+ output-file
+ output-jpeg
+ sap

* Секция - группа параметров необходимых для выполнения определённого функционала
* PID - идентификатор таблицы или элементарного потока

Основные секции¶

pidfile "/var/run/getstream.pid"
newcamd X { ... };
monitor { ... };
http { ... };
adapter X { ... };
net { ... };

* pidfile "..." путь для создания pid-файла, с идентификатором процесса. Необходим для системы мониторинга

newcamd¶

!!! данная секция должна быть перед секциями net и adapter

newcamd X {
hostname "127.0.0.1";
port X;
username "user";
password "pass";
cfgkey "0102030405060708091011121314";
prov-ident "001122";
disable-emm 0/1;
fifo-size 256;
delay 0;
};

* newcamd X { - Секция. Настройка подключения к серверу ключей по протоколу newcamd. X - номер подключения (для последующего использования в секции input)
* hostname "127.0.0.1" - адрес сервера ключей
* port X - порт для подключения к серверу ключей
* username "user" - имя пользователя
* password "pass" - пароль
* cfgkey "..." - ключ для подключения к серверу ключей
* prov-ident "..." - идентификатор провайдера к которому относится данный дескриптор условного доступа (не обязательный параметр. определяется автоматически)
* disable-emm 0/1 - отключить отправку EMM пакетов (информация о подписке на сервис). (по умолчанию: 0 (пакеты отправляются на сервер ключей))
* fifo-size X - размер fifo буфера (не обязательный параметр. по умолчанию: 256)
* delay X - задержка после подключения к серверу ключей. (по умолчанию: 0, в миллисекундах)

http¶

http {
port 8080;
};

* http { - Не обязательная секция. Описывает параметры HTTP-сервера для трансляции каналов по протоколу HTTP. (Секцию необходимо указывать, если используется output-http)
* port X - номер порта для подключения к HTTP-серверу

adapter¶

adapter X {
budget-mode 0/1;
packet-buffer 9400;
stat-interval X;
stuck-interval X;
stream { ... };
dvb-s { ... };
dvb-s2 { ... };
dvb-t { ... };
dvb-c { ... };
};

* adapter X { - Секция. Настройка DVB-транспондера и каналов ретранслируемых с этого транспондера. X - номер DVB адапетра в системе (/dev/dvb/adapterX)
* budget-mode 0/1 - аппаратная фильтрация потока. Уменьшает нагрузку на PCI-шину, так как передаются только нужные потоки. (не обязательный параметр. по умолчанию: 1 (программная фильтрация))
* packet-buffer X - размер буфера для приёма пакетов с DVB карты. (по умолчанию: 9400)

net¶

net {
stream { ... };
};

* net { - Секция. Настройка каналов с альтернативным источником (сеть, файл). В данной секции перечисляются только секции stream

stream¶

stream {
name "Stream name";
pat { ... };
input { ... };
output-udp { ... };
output-rtp { ... };
output-http { ... };
output-pipe { ... };
output-file { ... };
output-jpeg { ... };
sap { ... };
send-cat 0/1;
send-ecm 0/1;
send-emm 0/1;
fifo-size X;
};

* stream { - Секция. Описывает параметры одного вещаемого канала.
* name "Stream name" - назначает имя для канала.
* send-(cat|ecm|emm) 0/1 - разрешить трансляцию (CAT|ECM|EMM)-пакетов (не обязательные параметры. по умолчанию 0 (пакеты в сеть не отправляются)).
* fifo-size X - размер fifo буфера. (не обязательный параметр. по умолчанию 10240)

pat/pmt¶

pat {
version 1;
pmt X {
pnr X;
pcr X;
audio X {
lang "eng";
};
video X {
avc 0/1;
};
ca X {
caid X;
};
};
};

* pat { - Секция. Включает генератор pat/pmt таблиц. Описывает PAT таблицу
* pat/version X - номер версии pat (не обязательный параметр, по умолчанию: 1)
* pat/pmt X { - Секция. Описание PMT таблицу. В одной PAT таблице может быть несколько PMT. X - PID, PMT таблицы.
* pat/pmt/pnr X - номер PMT таблицы
* pat/pmt/pcr X - PID PCR потока
* pat/pmt/audio X { - Секция. Описывает звуковые потоки в PMT таблице. В одной PMT таблице может быть несколько звуковых потоков. X - PID, аудио потока.
* pat/pmt/audio/lang "eng" - трёх-символьный идентификатор языка звукового потока
* pat/pmt/video X { - Секция. Описывает видео потоки в PMT таблице. X - PID, видео потока.
* pat/pmt/video/avc 0/1 - Advanced Video Codec. Если в видео потоке используется кодек h264, необходимо поставить 1. (не обязательный параметр, по умолчанию: 0 (MPEG-1/2))

input¶

input {
pid X;
pnr X;
full;
mcast "127.0.0.1:1234";
file "/path/to/file.ts";
newcamd X;
biss "1122336655667732";
ecm-pid X;
ecm-group X;
};

* input { - Секция. Описывает параметры входящего потока
* pix X - указывает PID принимаемого потока. Можно указать несколько PID потоков. Используется только внутри секции adapter.
* pnr X - указывает номер принимаемого канала. Все необходимые потоки добавляются автоматически на основе PMT таблицы. Используется только внутри секции adapter.
* full - приём всех каналов с транспондера. Используется только внутри секции adapter.
* mcast "..." - приём потока по сети. Multicast/Unicast. Используется только внутри секции net.
* file "..." - транслирует в сеть TS-файл. По достижению конца файла, трансляция начинается с начала. Используется только внутри секции net.
* newcamd X - номер подключения к серверу ключей.
* biss "..." - ключ для каналов с системой условного доступа BISS.
* ecm-pid X - ручной выбор ECM потока (необязательный параметр, нужен для системы условного доступа DRE).
* ecm-group X - выбор группы ECM потока (необязательный параметр, нужен для систум условного доступа DRE и Irdeto).

output-udp¶

output-(udp|rtp)
local-address 0.0.0.0;
remote-address 239.255.1.1;
remote-port 1234;
ttl 32;
sap { ... };
};

* output-udp { - Секция. Описывает параметры трансляции в сеть по протоколу UDP
* output-rtp { - Секция. Описывает параметры трансляции в сеть по протоколу RTP
* local-address 0.0.0.0 - ip адрес локального интерфейса для отправки пакетов. (не обязательный параметр)
* remote-address 0.0.0.0 - ip адрес мультикаст группы, конкретного компьютера (unicast) или широковещательный
* remote-port X - номер порта
* ttl X - установить ttl для отправляемых пакетов
* sap { - не обязательная секция. GetStream_config_ru#sap|подробнее]]

output-rtp¶

см. output-udp
output-http¶

output-http {
url "/stream";
};

* output-http { - Секция. Описывает параметры трансляции потока в сеть по протоколу HTTP. (необходимо прописать главную секцию http для настройки http-сервера)
* url "..." - URL для идентификации потока

output-pipe¶

output-pipe {
filename "/tmp/stream.pipe";
};

* output-pipe { - Секция. Описывает параметры трансляции потока в именованный pipe
* filename "..." - Полный путь (имя)

output-file¶

output-file {
filename "/mnt/raid/file.ts";
};

* output-file { - Секция. Описывает параметры сохранения принимаемого потока в файл
* filename "..." - полный путь к файлу

output-jpeg¶

output-jpeg {
fileprefix "";
filepath "/var/www/screen";
interval 10;
size "std";
};

* output-jpeg { - Секция. Описывает параметры сохранения отдельных кадров принимаемого канала
* fileprefix "..." - префикс к имени файла. Например название канала.
* filepath "..." - путь для сохранения файлов.
* interval X - пауза в секундах между обновлениями файла, (по умолчанию: 10)
* size "..." - масштабирование кадра. Можно указать несколько размеров для одного канала ( output-jpeg { ... size "640x480"; size "320x240"; }; ). Размер кадра добавляется к имени файла, после префикса (по умолчанию: "std", без масштабирования)

sap¶

sap {
scope "global";
sap-group 239.255.1.1;
sap-port 9875;
ttl 32;
interval 10;
playgroup "TV_Group";
uri "http://tv.local/StreamName";
description "Stream Description";
email " mail@example.com";
phone "+7 343 000-00-00";
attribute "tool:getstream";
};

* sap { - Секция. Описывает параметры SAP-анонсов. Специальный multicast-канал, для трансляции актуального списка ТВ-каналов и радиостанций.
* scope "..." - мультикаст группа для SAP-анонсов. (по умолчанию: "global") Возможные варианты:
o global - 224.2.127.254:9875
o org - 239.195.255.255:9875
o local - 239.255.255.255:9875
o link - 224.0.0.255:9875
* sap-group 0.0.0.0" -
* sap-port X" -
* ttl X" - (по умолчанию: -1 (не устанавливается))
* interval X" - (в секундах. по умолчанию: 10)
* playgroup "..." -
* uri "..." -
* description "..." -
* email "..." -
* phone "..." -
* attribute "..." -


среда, 11 мая 2011 г.

суббота, 7 мая 2011 г.

ez100pu ubuntu 10.10 maverick

Неоценимую помощь оказал западный форум:
i read a few posts on Linux forums about users having some troubles installing the EZ100PU SmartCard reader & PCSC-Lite on Linux

so here just a guide i wrote for installation on Ubuntu Jaunty :
(i don't work for Castle Tech or anything but just hope this can help some users dealing with this reader)

note : the manufacturer provided lately some texts for installation on Linux , but if you follow these steps below the good point is you only install & run standard packages (no executables from the manufacturer)

/*
Linux Ubuntu V9.04 - installation guide for :
hardware PCSC SmartCard Reader USB & PCSC-Lite
*/

- install Linux packages :
sudo apt-get install pcscd pcsc-tools libusb-dev libusb-0.1-4

- download PCSC-Lite Linux package (here version 1.5.4) :
(for ex from http://pcsclite.alioth.debian.org/ )
pcsc-lite-1.5.4.tar.bz2

- mount usbfs (to use EZ100PU on USB) :
sudo mount -t usbfs usbfs /proc/bus/usb

- install & build PCSC-Lite binaries :
in dir /usr/local/ : sudo tar x -v -o -f pcsc-lite-1.5.4.tar.bz2
in dir /usr/local/pcsc-lite-1.5.4/ : sudo mkdir drivers (to install driver files later)
sudo ./configure --disable-libhal --enable-libusb --enable-usbdropdir=/usr/local/pcsc-lite-1.5.4/drivers
sudo make
sudo make install

- download Castles Tech EZ100PU driver-package :
(for ex from http://www.casauto.com.tw/en/in-download.aspx )
200962419433781450.gz

- install EZ100PU driver files into PCSC-Lite directory :
extract files from EZ100PU driver-package :
/EZUSB_Linux_x86_v1.4.7_For_Ubuntu/driver_ezusb_v1.4.7/drivers/ezusb.so
/EZUSB_Linux_x86_v1.4.7_For_Ubuntu/driver_ezusb_v1.4.7/drivers/Info.plist
move these files to PCSC-Lite directories (use to create the new directories in /drivers) :
/usr/local/pcsc-lite-1.5.4/drivers/EZ100usb.bundle/Contents/Linux/ezusb.so
/usr/local/pcsc-lite-1.5.4/drivers/EZ100usb.bundle/Contents/Info.plist

- run pcsc_scan & test the EZ100PU reader access :
type
it should detect the EZ100PU reader :
Scanning present readers
0: CASTLES EZ100PU 00 00
Reader 0: CASTLES EZ100PU 00 00
Card state: Card removed,
then you can try when inserting a SmartCard

- debugging :
type & check that the EZ100PU reader is detected
kill pcscd (daemon) process & relaunch using :
then insert the EZ100PU USB reader & should get display of PCSC-Lite info/error messages

droopycom
August 6th, 2010, 03:50 AM
Good guide.

This unfortunately does not work on a 64 bit install. (The library provided by the manufacturer is 32 bits only, and no sources found...)

olzi
August 23rd, 2010, 07:33 AM
Good guide.

This unfortunately does not work on a 64 bit install. (The library provided by the manufacturer is 32 bits only, and no sources found...)

Well, I got it to work on 64-bit install under linux32 compatibility. Here is a small howto:

Add extra lib32 sources:
> add-apt-repository ppa:falk-t-j/lucid

> apt-get update

Install 32-bit compat libs:
> apt-get install libc6-dev-i386
все было хорошо но вот следующее не ставится:
 > apt-get install lib32usb
 нужно сделать следующее:
  wget http://ppa.launchpad.net/falk-t-j/lucid/ubuntu/pool/main/lib3/lib32usb/lib32usb_1.0-0~ppa2_amd64.deb
 apt-get install ia32-libs
 apt-get -f install
 apt-get install ia32-libs
 ну а дальше как по маслу:
> apt-get install lib32usb

Compile pcscd:
> export CFLAGS="-m32"
> linux32 ./configure --enable-usbdropdir=/usr/lib/pcsc/drivers --disable-libhal
> linux32 make
> linux32 make install
а запускть эту кашу так:
Now it works:
> linux32 pcscd -f -d &
00000000 debuglog.c:224:DebugLogSetLevel() debug level=debug
00000447 pcscdaemon.c:505:main() pcsc-lite 1.5.3 daemon ready.
00174419 hotplug_libusb.c:477:HPAddHotPluggable() Adding USB device: 002:014
00000024 readerfactory.c:1024:RFInitializeReader() Attempting startup of CASTLES EZ100PU 00 00 using /usr/lib/pcsc/drivers/ezusb.bundle/Contents/Linux/ezusb.so
00000073 readerfactory.c:877:RFBindFunctions() Loading IFD Handler 3.0
00002651 readerfactory.c:249:RFAddReader() Using the pcscd polling thread
00000242 hotplug_libusb.c:403:HPEstablishUSBNotifications() Driver ifd-ccid.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead.
00000014 hotplug_libusb.c:412:HPEstablishUSBNotifications() Polling forced every 1 second(s)

> pcsc_scan
PC/SC device scanner
V 1.4.16 (c) 2001-2009, Ludovic Rousseau
Compiled with PC/SC lite version: 1.5.3
16610131 winscard_msg_srv.c:239:SHMProcessEventsServer() Common channel packet arrival
00000041 winscard_msg_srv.c:248:SHMProcessEventsServer() SHMProcessCommonChannelRequest detects: 6
00000011 pcscdaemon.c:147:SVCServiceRunLoop() A new context thread creation is requested: 6
00000134 winscard_svc.c:133:ContextThread() Thread is started: 6
00000041 winscard_msg_srv.c:317:SHMProcessEventsContext() command CMD_VERSION received by client 6
00000011 winscard_svc.c:189:ContextThread() Client is protocol version 3:0
00000080 winscard_msg_srv.c:317:SHMProcessEventsContext() command ESTABLISH_CONTEXT received by client 6
00000031 winscard.c:242:SCardEstablishContext() Establishing Context: 17017064
Scanning present readers...
0: CASTLES EZ100PU 00 00

Mon Aug 23 13:30:33 2010
Reader 0: CASTLES EZ100PU 00 00
Card state: Card removed,

And it is a 64-bit install:
> uname -a
Linux spacewalker 2.6.32-24-generic #41-Ubuntu SMP Thu Aug 19 01:38:40 UTC 2010 x86_64 GNU/Linux
spitjo
September 29th, 2010, 11:38 AM
I'm getting mad with that reader and ubuntu 10.04
Starting from impossible usbfs mount (/proc/bus/usb does not exist)
Lucid comes with pcsclite 1.5.3 wich i need to replace with at least 1.5.4 compiled with libusb but i can't remove existing version (it force me to rmove another 6 or 7 useful packages like network manager and others)

Please update that fantastic guide and make it good for lucid, please...
File_
January 15th, 2011, 06:21 AM
I'm getting mad with that reader and ubuntu 10.04
Starting from impossible usbfs mount (/proc/bus/usb does not exist)
Lucid comes with pcsclite 1.5.3 wich i need to replace with at least 1.5.4 compiled with libusb but i can't remove existing version (it force me to rmove another 6 or 7 useful packages like network manager and others)

Please update that fantastic guide and make it good for lucid, please...

BUMP ](*,)
I also can't get it to work on lucid...
mister_tea
January 28th, 2011, 04:04 PM
hi ... hope this helps ...

steps for installing the device :
smartcard reader CASTLES TECHNOLOGY EZ100PU
on OS : GnuLinux Ubuntu Maverick (10.10)
-------------------------------------------


- connect the reader to usb port
- type command :
>>lsusb
check the device appears correctly as :
Castles Technology Co., Ltd EZUSB PC/SC Smart Card Reader


- install some usefull packages :
>>sudo apt-get install opensc openct pcscd pcsc-tools
>>sudo apt-get install libusb-dev libusb-0.1-4


- download the driver package from the manufacturer :
go to http://www.casauto.com.tw , select english
section Downloads
select PCSC smart card reader , ez100 series
download package : Linux(USupp... libusb...)


- download the pcsc-lite package :
https://alioth.debian.org
get pcsclite 1.5.5 (this version)


- create a local directory "EZ100"
- unpack pcsc-lite & driver packages in this directory


- install pcsc-lite : move to the directory you created : pcsc-lite-1.5.5 , then type :
>>./configure --disable-libhal --enable-libusb
(maybe an additional option can be used : --enable-usbdropdir= , and after the = sign you paste the directory path where you will install the manuf drivers , see below)
>>sudo ./make
>>sudo ./make install


- in the manufacturer package find the files :
ezusb.so
Info.plist


- in the pcsc-lite directory created before , create directories & copy files :
/pcsc-lite-1.5.5/drivers/
- (DIR) EZ100usb.bundle
--- (DIR) Contents
------ Info.plist
------ (DIR) Linux
--------- ezusb.so
--------- Info.plist


- at this point normally pcsc-lite should have the needed files to access your EZ100PU smartcard reader hardware , so now let's try it :


- launch the pcsc-lite daemon :
for example to launch the daemon including debugging messages (so you can see live what is going on while you insert the reader / smart card etc) :
>>pcscd -f -d &


- launch the scan of pcsc-lite :
>>pcsc_scan
then if it is working , you should get :

Scanning present readers...
0: CASTLES EZ100PU
Card state: Card inserted, etc etc ...

- if there is a problem , read the messages displayed from the pcsc-lite daemon

File_
January 29th, 2011, 06:16 AM
@mister_tea: Thank you very much!! It worked!

Now to use it with Firefox you just need to add a device to Firefox like this:

Open Firefox:
1) Edit->Preferences->Advanced->Encryption->Security Devices
2) Than click Load
3) Enter arbitrary (descriptive) name under Module Name
4) Under Module Filename enter: /usr/lib/opensc-pkcs11.so
5) Wait a second and your card is good to go
This worked for me on Maverick (Ubuntu 10.10)

пятница, 6 мая 2011 г.

svn через прокси

На сервере, которому требуется выход в интернет для SVN, создаём или изменяем файл /etc/subversion/servers, либо файл .subversion в домашнем каталоге, и заносим в него строки:
секция     [global]
    http-proxy-host=proxyhost
    http-proxy-port=3128

3proxy

Сводка недоступна. Нажмите эту ссылку, чтобы открыть запись.

oscam


Оффлайн karea

  • Желтые штаны
  • ****
  • Сообщений: 220
    • ICQ клиент - 247644346
    • Просмотр профиля
    • Share-Sawanna
Установить на компьютер подключенный к интернету Ubuntu 10.10, зайти в терминал и выполнить по очереди следующие команды:
sudo apt-get install gcc g++ cmake libpcsclite1 libpcsclite-dev subversion
cd /usr/src
sudo wget http://cdnetworks-us-2.dl.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.8/libusb-1.0.8.tar.bz2
sudo tar xjvf libusb-1.0.8.tar.bz2
cd libusb-1.0.8
sudo ./configure --enable-shared=no
sudo make
sudo make install
cd /usr/src
sudo svn co http://streamboard.gmc.to/svn/oscam/trunk oscam
cd oscam
sudo mkdir build
cd build
sudo cmake -DWEBIF=1 ..
sudo make
После компилляции последней версии oscam с trunk выполнить команду для копирования файла oscam в /bin
sudo cp oscam /bin/oscam
Затем сделать файлы конфигурации командами:
sudo pico /usr/local/etc/oscam.conf
Пример содержания
[global]
nice = -1
WaitForCards = 1
pidfile = /var/run/oscam.pid
logfile = /var/log/oscam.log
usrfile = /var/log/oscamuser.log
cwlogdir = /var/log/cw
maxlogsize = 10000

[newcamd]
port = 10000@0500:023700
key = 0102030405060708091011121314

[webif]
httpport = 8888
httpuser = oscam
httppwd = oscam
httprefresh = 0
httpallowed = 127.0.0.1,192.168.0.1-192.168.0.254
httphideidleclients = 0
httpreadonly = 0

sudo pico /usr/local/etc/oscam.server
Пример содержания
[reader]
label = ntv
protocol = mouse
detect = CD
group = 1
emmcache = 1,1,2
ecmcache = 1
device = /dev/ttyS0
ident = 0500:023700

sudo pico /usr/local/etc/oscam.user
Пример содержания
[account]
user = user
pwd = user
group=1
uniq=0
ident = 0500:023700
au = ntv

Запуск oscam для теста
sudo oscam -b
tail -f /var/log/oscam.log

Для автозапуска добавить в /etc/rc.local командой
sudo pico /etc/rc.local
строку
oscam -b

суббота, 23 апреля 2011 г.

суббота, 9 апреля 2011 г.


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



1. "Захват" (Lock) приемного блока на выбранной частоте.



Это самостоятельно работающая часть спутникового приемника (Frontend, QPSK REceiver), преобразующая пришедший от тарелки, по сути аналоговый сигнал (манипуляция QPSK) в 8-битный параллельный "сырой" цифровой поток (Transport Stream) для дальнейшей обработки. Можно назвать его модемом без права передачи... ;)



На данном этапе достаточно знать такие параметры цифрового сигнала: SR (SymbolRate), FEC, частота и поляризация. Величины SR и FEC "скармливаются" приемному блоку, из введенной вами частоты софтом приемника вычитается текущее значение частоты гетеродина LNB, разность также вводится в приемный блок, поскольку ему актуально значение частоты в

приходящем кабеле, нежели в воздухе за окном... Поляризация же его вообще не интересует, использует ее софт для выдачи нужных управляющих сигналов на LNB.



Итак, если все введено верно, приемный модуль "лочится" - "захватывает" цифровую несущую. Это важный этап - примерно то же, что "коннект" модема. Нормальный приемник всегда имеет отдельный индикатор этого "коннекта" на панели. Нет "лочки" - бесполезно искать причины в ПИДах, стандартах, кодировках - так же, как бессмысленно набирать в вашем броузере URL, не "законнектив" сперва модем... На данном этапе все источники проблем - на нашей, приемной стороне и

достаточно тривиальны и устранимы - ошибки в параметрах и типе LNB, из-за чего софт неверно вычисляет входную частоту в кабеле, или просто недостаток уровня сигнала или некачественный LNB. (Маленькое замечание - индикатор уровня сигнала во многих цифровых приемниках показывает абсолютный уровень, а не отношение сигнал/шум, из-за чего зачастую он просто бесполезен, особенно при большом усилении LNB по ПЧ (Gain) и небольших длинах кабеля). Самые неприятные и одновременно не зависящие от нас факторы - дальше.



2. Чтение служебных таблиц и запись каналов в память.



Что идет в потоке? Вообразите себе ленту конвейера, по которой плывут всевозможные ящики с номерами. Некоторых номеров очень много, другие - лишь изредка. Это - пакеты МПЕГ-2 (MPEG packets), каждый со своим идентификатором - ПИДом (Packet ID), в них - сжатые МПЕГ-2 данные видео, звука и вообще любые другие, например тот же е-майл или телетекст. Рядом стоит мужик, очень ловко вылавливающий ящики только с определенными номерами и совершенно игнорирующий другие. Это - демультиплексор (Demux). Откуда мужик знает, какие ящики вылавливать? В ящиках с определенными номерами находятся всякие предписания о том, что, например в ящиках с номерами 1120, 1140, 1160 находятся помидоры разных сортов, в ящиках с номерами 1223, 1243, 1435, 1325 - груши, что сортов помидоров всего 3, а груш - 4, и т.п. Его начальнику (софту) остается только выбрать нужный сорт для отлова. Эти предписания - служебные таблицы DVB /MPEG-2 (SI -Service Information), идущие строго на определенных ПИДах, так что приемник заранее знает, где их искать в незнакомом потоке. Иерархия этих таблиц довольно запутана и описывает массу параметров, используемых при автонастройке приемника. Из них можно узнать: частоту, SR, FEC, поляризацию, спутник, точное время, имя/условный номер вещателя, усл. номер передающей станции, сколько и какие каналы (звук, видео, данные) в потоке, на каких ПИДах они находятся, объединение каналов в группы по языку или жанру, номера телеканалов в списке, какие еще транспондеры посмотреть на данном спутнике, много другой информации - для условного доступа, программы передач, и пр. Т.е. эта иерархия, согласно стандарта DVB , должна позволить приемнику запросто ориентироваться на спутнике, будучи он "залочен" на исходную цифровую несущую. А ее параметры можно прописать заранее в софт, по одной такой опорной частоте Home Transponder или Default Freq.) для каждого спутника. Приемник прочитает служебные таблицы и сам найдет все остальные частоты (Network Search), пропишет все каналы , выберет нужный язык вещания и поставит часы. Легко и удобно.



Тут мы и подошли к горькому юмору ситуации. На практике получается, что "кто нам поможет, тот нам мешает". С точки зрения дисциплинированных эфирных профессионалов это кажется невозможным, но оказывается, многим спутниковым цифровым вещателям просто "нафиг не надо" корректно выставлять свои служебные таблицы. Происходит это по нескольким причинам:



плохая подготовка техперсонала к работе с новым оборудованием. Характерно для "бедных" FTA-каналов и авантюр типа Venus TV.

канал не предназначен для непосредственного приема, например, TVN на Хотберде - это переброска телесигнала (feed) для кабельных сетей. Принцип - "как-то работает, и лучше не трогать..." Характерно для 10 Вост. и 16 Вост. спутников.

вещатель не заинтересован в приеме клиентами иных каналов, кроме его собственных, и не включает себя в общую таблицу частот спутника на Home Transponder, как немцы на Астре на частотах 12.604 и 12.722.

??? спутниковый оператор берет за включение в эту таблицу дополнительные деньги.

В результате...



при автопоиске не находится добрая половина каналов . Это значит, что ссылки на частоты их пакетов отсутствуют в т.наз. сетевой таблице (NIT - Network Information Table), передаваемой на опорном транспондере. Эти пакеты могут иметь и собственную NIT, например, MC Hellas на Хотберде, имеющий свою NIT, кстати, куда более обширную, чем "официальная" на транспондере макаронников 11.766V. А могут и вовсе не иметь никаких ссылок, как 12.597V. Могут быть и ошибки в ссылке -например, у арабов на 12.654 стоит ссылка на итальянцев с параметрами 11.766Н 3/4 . Конечно же, она не работает. Во всех случаях, единственный путь найти эти каналы - знать их параметры. И приемник

здесь не виноват.

неверное время. В разных приемниках по-разному реализована установка часов - в Нокии например, они устанавливаются с первого же включенного на просмотр транспондера, если были сбиты при пропадании сетевого питания, затем ходят автономно, в Хьюмаксе схватывают его каждый раз при переключении пакетов. Чуть ли не единственное верное время на всем ХБ поддерживают немцы на 11.054Н и макаронники на 11.766V. Дурным же тоном можно назвать испанский пакет на 12.092H, где время было вопиюще кривым с момента начала вещания.

канал прописывается, но не показывает - на прописанном канале нет "лочки", или отсутствуют ПИДы. Очевидная и грубая ошибка в NIT - дело в том, что для записи канала в память приемник берет не данные частоты, SR, FEC, пол. загруженные сейчас в приемный модуль, а данные, идущие в служебных таблицах ! Это легко проверить на Нокии - попробуйте обычным поиском поймать APTN на 12.581Н. Он пропишется, но показывать не будет. ЗАйдите снова в меню поиска, стоя на этом канале , и убедитесь, что в память прописалась частота 11.400 .Если "лочка" есть, но экран пуст - ошибка или отсутствие PAT (Program Allocation Table - таблица расположения программы), таблице , передающей ПИДы для всех каналов пакета. Дело в том, что стандартный приемник DVB не хранит ПИДы в памяти. Он хранит Service ID - условный внутренний номер канала , к-рый в совокупности со Stream ID (условный номер потока) и Network ID (условный номер сети) призван однозначно определять канал в памяти. При переключении каналов ПИДы при этом просто "на лету" читаются из PAT, где расписаны соответствия всех Service ID всем ПИДам. (В этом, кстати, одна из причин задержки при смене канала .)

Здесь мы подошли к еще одной известной проблеме:



каналы переписывают друг друга. Налицо совпадение Network ID, Stream ID, Service ID у конфликтующих каналов . Как такое может быть? Запросто - у одиночных (SCPC) фидов эти параметры могут быть запросто равны единице. Их техников не волнуют проблемы сат-любителей. Если найденные каналы "влезают" вдруг в середину списка - значит, совпал Network ID, и приемник стандарта DVB считает эти каналы "братскими". Проблема особенно обостряется при приеме со многих спутников - в списке наступает полный бардак, каналы с разных спутников хаотично чередуются. Для тех, кому интересно посмотреть, какие идентификаторы присвоены каким вещателям, и выяснить вещателей-"бардачников" - на www.lyngsat.com есть отдельная таблица с Network ID различных вещателей. Возможен также совершенно ламерский вариант - известная в свое время проблема с каналами на 60 Вост. , когда из-за полной неграмотности ПИДам видео и звука были назначены номера, зарезервированные для служебных таблиц DVB .

Для борьбы с кривыми ручками вещателей во многих приемниках и сделано меню Advanced Search. В этом режиме игнорируется большинство передаваемых параметров, данные для входного модуля берутся "по факту", при желании можно даже ввести ПИДы вручную, если и PAT отсутствует или не верна. Канал , найденный таким образом, сохраняется в памяти именно с ПИДами и под неким условным номером (обычно сумма ПИДов), т.к. служебная таблица , передающая названия каналов (SDT - Service Description Table) также игнорируется при ручном вводе ПИДов. Сохраненный таким способом канал занимает в памяти несколько больше места. В сложившейся ситуации обновление списка каналов становится весьма неприятным и трудоемким занятием - каждый раз целый ряд каналов надо вводить вручную. Поэтому представляется более

гибким решение, применяемое во многих азиатских марках - наряду со "стандартным" Network Search присутствует старая добрая память транспондерных частот для каждого спутника. Действительно, почему бы раз и навсегда не запомнить в приемнике все возможные на спутнике частоты (благо здесь очень редко что-то меняется), а затем просто сканировать их на предмет обновлений? Работает замечательно, поиск полностью автоматизирован, а в случае необходимости можно заставить приемник "доверять" эфирным данным для поиска. Однако, это решение почему-то не стало стандартом для монстров-производителей, озабоченных лишь огромными заказами от операторов платных спутниковых сетей, где вышеописанные проблемы отсутствуют, и продолжают вяло отмахиваться, бормоча что-нибудь вроде: "These signals is non DVB-compatible ..." , что, естественно, мало волнует клиентов установочных фирм, желающих самостоятельно делать автопоиск.



В качестве "хорошего тона" можно порекомендовать спутники Астра, где абсолютное большинство пакетов находится обычным поиском, всегда передается корректное время. Видимо, клиенты Eutelsat испытывают затруднения с грамотным техперсоналом.



У читателей, возможно, возникает навязчивый вопрос - а как там с нашим пресловутым НТВплюсом? Автор читал NIT на пяти их транспондерах с помощью софта DVB2000, и, надо сказать, не на всех из них есть ссылки на остальные четыре. Т.е. в плане автопоиска лучше начинать с 12.322 . Впрочем, данное замечание бесполезно для их штатных приемников Х-сат, не имеющим никакого автосканирования вообще.



(с)ЯR romic romanoff romicmail@mtu-net.ru

Для перепечатки свяжитесь с автором.



воскресенье, 20 марта 2011 г.


Настольная книга по Linux

Материал из Викиучебника
Перейти к: навигация, поиск
Все системные администраторы рано или поздно начинают записывать команды в текстовый файлик сразу с нужными параметрами и опциями, чтобы заново не перечитывать man'ы. Было принято решение его структурировать, и лучше wiki инструмента не нашлось. Информация собрана здесь коллективным разумом, накоплена с опытом, подсмотрена на различных сайтах и в книгах. Убедительная просьба к системным администраторам - давайте синхронизировать наши знания![1]

Содержание

[убрать]

[править] Работа в командной строке

[править] Настройка

  • ~/.bashrc - Глобальная настройка и запуск программ при первичном входе, и при каждом открытии консоли.
  • ~/.bash_profile - Применяется только при входе в систему, автозапуск пользовательских приложений.
  • ~/.bash_logout - Выполнение сценариев при выходе.
  • echo "alias iconv='iconv -f cp1251 -t utf8'" >> .bashrc - Назначаем алиасы командам. Теперь можно будет писать просто iconv вместо iconv -f cp1251 -t utf8.
Чтобы единовременно отменить alias (для использования действия команды по умолчанию, например, в скрипте), нужно перед соответствующей командой поставить \. Например, \ls.

[править] Горячие клавиши

  • «Esc+.» или «Alt+.» - Вставка последнего аргумента предыдущей(-их, при многократном нажатии) команды (здорово жизнь упрощает).
  • «Shift+PgUP» - Просмотреть вывод выходящий за границы экрана.
  • «Ctrl+a» - Перейти в начало строки, «Ctrl+e» - перейти в конец.
  • «Ctrl+r» или «Ctrl+s» - Поиск по истории, для поиска нажимать несколько раз. «Ctrl+n» - в обратную сторону. Для редактирования - клавиши "Вправо" или "Влево".
  • «Ctrl+u» - Вырезает все слева от курсора. Очень удобно!
  • «Ctrl+w» - Вырезать текст от курсора до начала слова (пробела). Очень удобно!
  • «Alt+Backspace» - Вырезать слово слева от крусора до спецсимвола (удобно в путях, очень!)
  • «Ctrl+k» - Вырезать текст от курсора до конца строки.
  • «Alt+b» - Переместить курсор назад на одно слово, «Alt+f» - вперёд.
  • «Alt+d» - Вырезать текст от курсора до конца слова.
  • «Ctrl+y» - Вставить вырезанный текст.
  • «Ctrl+l» - Очистить экран.
  • «Ctrl+d» - Завершить сессию, тоже самое, что и exit
  • «Ctrl+z» - Перевести текущую задачу в фоновый режим и "усыпить". fg x вернуть процесс (где x=1-…), а program & запуск программы в фоновом режиме. А а bg перевести "усыпленную" задачу в фоновй режим, так как если бы мы запустили program &.
  • «Ctrl+s» — Приостановить вывод, «Ctrl+q» — возобновить вывод.

[править] Скриптинг

  • ' - Строгие кавычки, передать неинтерпретируемое значение.
  • ` - Обратные кавычки, выполнить содержание скобок. То же, что и $().
  • - Двойные кавычки, подстановка переменных и предотвращение разбиения на слова.
  • ping -с 1 domain.com ; echo «host» - Пропинговать domain.com одним пакетом, затем просто вывести сообщение.
  • ping domain.com || echo «bad host» - Пропинговать domain.com, в случае неудачи вывести сообщение.
  • ping -с 1 domain.com && echo «ok host» - Пропинговать domain.com, в случае успеха вывести сообщение.
  • & - (Амперсанд).
  • | - Прямая черта, он же пайп (pipe).
  • > - Перенаправить вывод (stdout) в файл.
  • >> - Дописать в конец файла.
  • 2 > file - Вывод ошибок (stderr) в файл.
  • 2>&1 - Вывод ошибок (stderr) туда же куда и стандартный вывод (stdout).
  • $! - PID последнего запущенного в фоновом режиме процесса.
  • $0 - Наименование текущего сценария.
  • $1, $2, $((i)) - Первый, второй и i-тый аргументы, переданные программе. i передаётся, например, как переменная из цикла.
  • $@ - Каждый из переданных программе аргументов.
  • $((<выражение>)) - Выражение в скобках - вычисляется.
  • $# - Число аргументов, передаваемых сценарию.
  • $$ - Текущий PID выполняемого сценания.
  • $- - Текущие опции интерпретатора, аналогично применению set.
  • $? - Код завершения команды. 0 обычно свидетельствует о завершении без ошибок.
  • mass=($(while read x ; do echo ${x}; done< file.txt)) - Cоздать массив mass. Элементами будут строки файла file.txt
  • func() {<команды>} - Объявление функции. func - Вызов.
  • while true; do firefox & wait $!; done - перезапускает процесс firefox сразу после его окончания.


Не забываем про фигурные скобки:
$ ls 
       file.tmp
   $ i=file.tmp
   $ mv $i ${i%tmp}test
   $ ls 
       file.test
То же самое:
$ mv file.{tmp,test}
Дальше должно быть понятно:
${var%ending-to-remove}newending
   ${var/find/replace}
   ${var//find/replace-all}
   ${var#prefix-to-remove}

[править] Калькуляторы

  • let "a = 2 + 2"
  • bс -l
  • echo $((2+2))
  • awk 'BEGIN{ print exp(1)+2^(1.0/3); }'
  • perl -le "print 3*5"
  • python -c "print 9*5"
  • mysql -e "select 1+2*(1+2)"

[править] Работа с файлами

[править] Права

  • chmod -R 741 /var/www/files - Сменить права рекурсивно (-R) во всей папке files на rwx r-- --x, где: 4 – чтение (r), 2 – запись (w), 1 – выполнение (x)
  • chmod -R u+rwx,g+r-xw,a-rw+x /var/www/files - Смена прав рекурсивно (-R) во всей папке files на rwx r-- --x, где u+rwx - u (user - владелец файла) добавить rwx, g+r-xw (group - пользователи группы владельца) добавить r убрать xw, a-rw+x (all - для всех пользователей, эквивалентно ugo) убрать rw добавить x, где r - чтение, w – запись, x - выполнение
  • chattr +Sai - Добавление атрибутов к файлу, синхронное изменение всех данных на диск, без кэширования (S); только добавление данных, удаление и переименование запрещено (a); запрещено удаление, изменение или переименование (i) (immutable).

[править] Поиск

  • locate foo - Быстрый поиск по заранее проиндексированным файлам с помощью updatedb.
  • pinfo bash - Удобная замена info.
  • find /usr/bin -type f -mtime -10 -iname '*.log' - Найти все файлы в '/usr/bin', созданные или изменённые в течении последних 10 дней, с именем заканчивающимся на ".log" без учета регистра.
  • find /usr/project \( -name *.htm -o -name '*.html' \) -exec enconv -V --convert-to=UTF-8 {} \; - Конвертировать найденные файлы в правильную кодировку.
  • find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1 - Конвертация тегов в UTF-8 (должен быть установлен python-mutagen).
  • find /bakdir -name bak-20??-??-??.tar.gz | sort | head -n -7 | egrep -v 20[01][0-9]-[01][0-9]-01 | while read I ; do rm -v "$I" ; done - Вымученная изящная конструкция, по очистке бэкап архивов, которая оставляет файлы за последнюю неделю и каждое первое число. find выводит список наших бэкап файлов, формат которых bak-год-месяц-число.tar.gz, sort правильно сортирует, head передает все файлы, кроме последних 7-ми, egrep исключает файлы за первое число, конструкция while удаляет остальное.
  • ls /bakdir/bak-20??-??-??.tar.gz | head -n -7 | egrep -v '20[01][0-9]-[01][0-9]-01' | while read I ; do rm -v "$I" ; done - Еще более изящная и ресурсоемкая конструкция.

[править] Вывод

  • tar -cjvf /home/user/etc_`date '+%Y-%m-%d' -d yesterday`.tar.bz2 /etc - (с)Запаковать в (f)tar-архив и (j)сжать bzip2 папку /etc c текущей датой в имени файла, с (v)подробным выводом.
  • tar -C каталог_источника --exclude={"/home*","/etc/passwd*"/,"/etc/shadow*"}-czpvf - . | ssh user@REMOTE_IP "cat > каталог_назначения/backup.tgz" - Запаковать с соответствующими исключениями и передать посредством ssh на удаленный сервер.
  • tar -xzvf /home/user/Downloads/centerim-4.22.6.tar.gz -С /opt/ - (x)Распаковать (z)gzip-архив в /opt
  • tar --use-compress-program=xz -xvf kernel.txz - Распаковать xz-архив.
  • cat /etc/mail.conf | grep -v "#" | sed -e '/^ *$/d' - Показать файл без комментариев и пустых строк (неоптимально).
  • egrep -v '^#|^$' /etc/mail.conf - Показать файл без комментариев и пустых строк (оптимально:).
  • ls -f1 /var/log/packages/ | wc -l - Вывести количество строк (wc -c - байт).
  • diff -y httpd.conf httpd.con.new - Сравнение в две колонки.
  • diff -u httpd.conf httpd.con.new - Унифицированное cравнение (в один столбец, но читаемо). (рек. colordiff).
  • tail -n +5 /file - Вывести строки, начиная с 5-ой
  • egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' - Вывести только IP.
  • ... | awk '{print($1"SRTING")}' - Вывести то что в пайпе, добавив STRING.
  • awk '$1=="string" {print $2}' file1 >> file2 - Считать файл file1 , если данные в первом столбце равны 'string' добавить в файл file2 данные из второго столбца этой строки
  • ... | tr '\n' ' ' - Заменить все переносы строки на пробелы.
  • ... | awk '{s += $2} END {print s*9}' - Сложить второй столбец и вывести результат умноженный на 9.

[править] Модификация

  • sed -i 's/foo/too/' - Заменить foo на too.
  • sed -i '14d' /file - Удалить 14ю строку.
  • sed -i '/[Nn]etwork/d' /file - Удалить строку содержащую Network или network.
  • sed -i '$ a \\n[mounts]\nuser root' /etc/munin/config - Добавить в конец файла "[mounts]" затем перенос на новую строка и "user root".
  • sed '14a\ echo \"graph_category logger\"' /etc/munin/plugins/command - После 14ой строки добавить "echo "graph_category logger"".
  • sed '1i \# vim: ft=ruby\n' - Вставить в начало файла '# vim: ft=ruby' и перенос строки.
  • sed -i '/LOGREJECT/d' /var/log/messages - Удалить строки содержащие 'LOGREJECT'.
  • tr -d '<символ>' - Удалить символ. Можно использовать классы символов POSIX (вроде '[:space:]').
  • tr -s '' '' - Заменить символ <Х> на . Можно использовать классы символов POSIX.
  • cat /etc/fstab | tr -s 'qwertyuiopasdfghjklzxcvbnm' 'QWERTYUIOPASDFGHJKLZXCVBNM' - Заменить все строчные буквы в соответствующем файле на прописные (подобным образом можно делать и транслитерацию).

[править] Работа с дисками

[править] Состояние дисковой подсистемы

  • rescan-scsi-bus -l - После добавления sata-диска, чтобы он определился системой (полезно для горячей замены!).
  • cat /proc/scsi/scsi - Посмотреть подключенные диски.
  • df -h - Показывает занятость подмонтированных дисков.
  • du -smc --exclude={proc,sys,dev} /* | sort -g - Получаем отсортированный список самых "тяжелых" каталогов в мегабайтах.
  • find . -size +<размер>k - Поиск файлов размер которых превышает указанный (или c — для байтов, M — мегабайт, G — гигабайт. В примере, соответственно, килобайты).
  • ls -lSrh - В конце вывода увидим самые большие файлы.
  • hdparm -tT /dev/sda - Тестирование производительности диска, ей же можно тонко настроить производительность (обычно не нужно, т.к. современные системы корректно определяют параметры).
  • dd if=/dev/sdx of=/dev/null bs=1M - Вроде как выявление проблем с диском.[2]
  • hddtemp /dev/sd[a-z] - Температура жестких дисков в системе (раб.<60°C).

[править] Разметка диска

Разметка диска, по сути - запись (таблица разделов в самом начале диска начиная с 447 байта 64 байта) о том где и какие разделы расположены физически на диске. Т.е. редактируя таблицу разделов, данные (находящиеся на жестком диске) остаются нетронутыми.
  • sfdisk -luM /dev/sda - Информация о разделах на диске (-uM) в мегабайтах.
  • partprobe -s /dev/sda - Перечитывает таблицу разделов блочного устройства.
  • cat /proc/partitions - Tаблица разделов, с которыми работает ядро.
  • mkfs.ext3 -L fsroot /dev/sda6 - Создать файловую систему ext3 c меткой "fsroot".
  • tune2fs -L fsroot /dev/sda6 - Присвоить метку "fsroot" диску, для удобства монтирования (или e2label /dev/sda6 fsroot).
  • blkid - Отображает атрибуты: UUID, метку, тип ФС блочных устройств.
  • mount LABEL=fsroot /mnt/data - Монтрирование по метке раздела.
  • sfdisk -d /dev/sda | sfdisk /dev/sdb - Копирование таблицы разделов с sda на sdb.
  • sfdisk -d /dev/sda > sda.mbr.bak - Копирование MBR в файл (файл можно редактировать).
  • sfdisk /dev/sda < sda.mbr.bak - Восстановление MBR из файла.
  • fdisk -p ad2 > /tmp/slices - Скопировать таблицу слайсов в файл.
  • fdisk -f /tmp/slices ad0 - Применить таблицу слайсов из файла к ad0.
  • dd if=/dev/sda of=/root/sda.mbr.img bs=512 count=1 - Копирование MBR в файл, самый надежный способ.
  • dd if=/dev/zero of=/dev/hda bs=512 count=1 - Очищаем MBR (внимательно!). Если без таблицы разделов, то bs=446
  • dumpfs -m /dev/da2

[править] Монтирование

  • cat /proc/mounts - подробная инфа о примонтированных устройствах. Если нужно коротко, то df -h.
  • mount -t cifs //192.168.0.122/data /mnt/amigoglobal/data -o user=USER,pass=PASSWORD - Монтирование виндовых разделов
  • mount -o loop /mnt/bak/disk/LiveCD/newcd/live.iso /mnt/cdrom/
  • mount -a - Монтировать все из fstab (напр. при добавлении ресурсов).
  • mount -o remount,rw /dev/sda1 / - Перемонтировать. Напр., при изменении опций.
  • mount --bind olddir newdir - Примонтировать одну директорию к другой.
  • fuser -v /opt - Узнать, кто занимает ресурс. Например, если не дает размонтировать.
  • fuser -km /opt - Принудительное размонтирование раздела.
  • umount -l /dev/sdb1 - Размонтировать, когда ресурс освободится.

[править] Swap

  • mkswap -L swap /dev/sda5 - создаём файловую систему для раздела подкачки, устанавливаем метку swap
  • swapon /dev/sda5 - подключаем раздел.
  • swapon -a - подключаем все разделы с подкачкой прописаные в /etc/fstab.
Создаем файл подкачки вместо раздела. Позволяет перераспределить дисковые ресурсы(при LVM, RAID, XEN), но слегка замедляет работу подкачки. Обычно размер файла подкачки предпочитают устанавливать равным объему оперативной памяти.
  • dd if=/dev/zero of=/file.swp bs=1M count=1024 - создаем файл необходимого размера (у нас 1Гб).
  • mkswap /file.swp - создаём файловую систему внутри файла.
  • swapon /file.swp - подключаем.
  • swapoff /dev/sda5 - отключаем подкачку.
  • swapoff -a - отключаем все использующиеся файлы и устройства подкачки.

[править] Образ диска

  • dd if=/dev/zero of=/null bs=1024 ; rm -f /null - Забиваем свободное место на диске нулями, чтобы dd мусор не сохранял, и сразу удаляем.
  • dd if=/dev/sda2 bs=16M | gzip -c > /mnt/bak/sda2.img.gz - где bs=16M - размер кэша на винчестере. Побитное копирование раздела с последующей упаковкой, я использую для бэкапа свеже настроенных систем (копирует вместе с файловым мусором, зато надежно).
  • gunzip -с /mnt/bak/sda2.img.gz | dd of=/dev/sda2 bs=16M - Восстановление из сжатого образа.
  • На оригинальной системе: dd if=/dev/sdX bs=16065b | netcat 1234. На целевой системе: netcat -l -p 1234 | dd of=/dev/sdY bs=16065b - Копирование раздела по сети.

[править] Работа с CD/DVD

  • dd if=/dev/cdrom of=cd_image.iso bs=1M - Копирование образа (а так же: cp /dev/cdrom cd_image.iso или cat /dev/cdrom > cd_image.iso).
  • wodim dev=/dev/cdrom -eject -v mycd.iso - Запись диска.
  • genisoimage -f -v -J -o /home/$USERNAME/ARCH/DIR.iso /home/$USERNAME/DIR - Создать iso-образ директории.

[править] Наблюдаем за работой dd:

  • killall -s USR1 dd — Набираем из другой консоли. dd нам вывалит что-то вроде:
825599+0 записей считано
   825599+0 записей написано
   скопировано 422706688 байт (423 MB), 16,1309 c, 26,2 MB/c
и продолжит работу.

Более изящный способ, с помощью pv:
$ dd if=/dev/disk | pv >~/disk.iso
   278MB 0:00:05 [57,7MB/s] [      <=>                                             ]
А можно и так:
$ dd if=/dev/disk | pv -s $(du -sb /dev/disk | cut -f 1) >~/disk.iso
   1,24GB 0:00:49 [26,6MB/s] [=============>                                       ] 28% ETA 0:02:03

А можно и так:
$ watch -n 1 du -h ~/disk.iso

[править] LVM

  • vgscan - Поиск по системе виртуальных групп VG
  • vgchange -ay - Активизировать виртуальную группу (-an - деактивизировать)
  • pvscan - Поиск доступных физических томов и отображение сравнительной информации о них
  • pvdisplay /dev/sda1 - Просмотр информации о физическом томе
  • pvcreate /dev/sda1 - Подготовка физического тома PV (тип раздела 8Eh)
  • pvmove /dev/sda1 - Освобождение физического тома (перенос данных на другие физические тома)
  • vgdisplay VG - Просмотреть информацию о виртуальной группе
  • vgcreate VG /dev/sda1 /dev/sdb1 - Создание виртуальной группы на основе двух физических томов
  • vgremove VG - Удаление виртуальной группы
  • vgextend VG /dev/sdc1 - Добавление физического тома к виртуальной группе
  • vgreduce VG /dev/sda1 - Удаление физического тома из виртуальной группы
  • vgexport VG - Подготовка виртуальной группы для переноса на иную машину
  • vgimport VG /dev/sda1 /dev/sda2 - Импорт виртуальной группы (с другой машины)
  • lvcreate -L1500 -nlv00 VG - Создание логического тома (LV) с именем nlv00 и размером 1500 Мб
  • lvcreate -l 100%FREE -n nlv00 VG - Создаем "логический том" на все доступное пространство.
  • lvremove /dev/VG/home - Удаление логического тома
  • lvextend -L120M /dev/VG/home - Увеличение размера логического тома до указаной величины
  • lvextend -L+100M /dev/VG/home - Увеличение размера логического тома на указанную величину
  • lvresize -L +10G /dev/VG/home - Добавляет в логический том 10Гб, при их наличии в физическом томе.
  • lvreduce -L120M /dev/VG/home - Уменьшение размера логического тома до указаной величины
  • lvreduce -L-100M /dev/VG/home - Уменьшение размера логического тома на указанную величину
  • resize2fs /dev/VG/home - Расширяем раздел находу на все доступное пространство (для ext3).
  • mkfs.ext3 /dev/VG/home - Создаем файловую систему.

[править] Работа с программами

  • echo '0-5 20,22 * * 1-5 root bak.sh' >> /etc/crontab - Запись в означает, что bak.sh будет выполняться cron'ом с нулевой по пятую минуту в 20 и в 22 каждый день с понедельника по пятницу.
  • echo '*/15 * 3 * root bak.sh' >> /etc/crontab - bak.sh будет выполняться каждые 15 минут, каждое третье число.
  • ps aux | grep process - Вывод системной информации по конкретному процессу.
  • kill -TERM `cat /usr/local/apache2/logs/httpd.pid` - Послать сигнал процессу.
  • pgrep - Выводит PID'ы процессов.
  • pidof - Выводит PID'ы процессов.
  • pkill httpd - Послать сигнал найденным процессам.
  • killall /usr/sbin/httpd - Послать сигнал процессу только по полному имени.
  • nice -n -20 command - Запустить command с наивысшим приоритетом (-n 19 - наименьший).
  • ionice -c3 command - Запустить command с наименьшем приоритетом по системе ввода-вывода (-с1 - наивысший). (только для планировщика CFQ).
  • env LANG=en_EN command - Запуск программы в другой локали.
  • nohup
  • command &
  • gnome-screenshot --window --delay=5 - Сделать скриншот активного окна, с задержкой 5 секунд.

[править] Управление пакетами

debian-разработчиками рекомендуется aptitude
Действие\система apt (deb) Debian, Ubuntu
yum (rpm) Fedora, CentOS
pkgtools Slackware
ports FreeBSD
packages FreeBSD
pacman ArchLinux
Установка пакета из репозитория aptitude install foo yum install foo -y - cd /usr/ports/foo && make install pkg_add -r foo pacman -S foo
Установка локального пакета dpkg -i foo.deb yum localinstall foo.rpm rpm -ivh foo.rpm
installpkg foo.tgz pkg_add foo.tgz pacman -U foo.pkg.tar.gz
Обновление существующих пакетов aptitude upgrade yum update foo upgradepkg foo.tgz

pacman -Su
Удаление пакета aptitude remove foo yum erase foo removepkg foo cd /usr/ports/foo && make deinstall pkg_delete foo pacman -R foo
Обновления списка пакетов из репозиториев. aptitude update yum check-update -
pkg_version pacman -Sy
Поиск по имени пакета apt-cache search foo yum list foo - whereis fullnamefoo или make search key=foo

Поиск по описанию и имени пакета aptitude search foo yum search foo - http://www.freebsd.org/ports/ - pacman -Ss foo
Показать информацию о пакете aptitude show foo yum info foo - pkg_info -L foo-1.0 | less
pacman -Si foo
Список пакетов установленных в системе dpkg -l yum list installed rpm -qa
ls /var/log/packages/ ls /var/db/pkg/ pkg_info pacman -Ql
Поиск имени пакета по файлу apt-file search file yum provides file grep -R file /var/log/packages/

pacman -Qo file
  • aptitude install debian-archive-keyring - Обновить ключи репозиториев.

[править] Сборка пакетов

  • rpm -i foo-1.2.src.rpm && cd /usr/src/redhat/SPECS && rpmbuild -bb foo-1.2.spec - Собрать foo.rpm.
  • cd /usr/ports/foo && make package - Собрать package для FreeBSD.

[править] Система

[править] Конфигурация

  • ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime - Установка часового пояса.
  • ntpdate ntpserver - Жесткая синхронизация времени (быстрая смена времени может быть вредна некоторым сервисам, рек. ntpd).
  • sysctl -a - Вывести текущие настройки ядра.
  • sysctl -p - Применить настройки ядра /etc/sysctl.conf (для слаки вероятно параметры задавать в rc.local).
  • hostname -F /etc/hostnamefile - Установить сетевое имя из файла (см. ниже).

[править] Для Debian-like

  • /etc/hostname - Прописываем имя машины.
  • dpkg-reconfigure locales - Установка системной локали.

[править] Для RHEL-like

  • /etc/sysconfig/network - Прописываем имя машины (напр. HOSTNAME=localhost.localdomain).
  • /etc/sysconfig/clock - Правка часового пояса.

[править] Для Slackware

  • /etc/HOSTNAME - Прописываем имя машины.

[править] Пользователи

  • useradd -r --uid 1000 - Создать системного пользователя munin.
  • userdel -r - Удалить пользователя вместе с домашним каталогом.
  • vipw - Редактор vi блокирует /etc/passwd, так, чтобы другие команды не могли модифицировать его в то же самое время.
  • vigr - Редактор vi блокирует /etc/group, так, чтобы другие команды не могли модифицировать его в то же самое время.
  • visudo - Спец редактор vi для правки /etc/sudoers. (visudo -c - проверка синтаксиса).

[править] Железо (Модули)

  • lsmod - Показать загруженные модули.
  • modinfo - Показать информацию о модуле (зависимости и т.п.)
  • modprobe foo - Включить модуль.
  • modprobe -vr foo - Удалить неиспльзуемый модуль (почти тоже что и *rmmod foo*)
  • modprobe -vr pcspkr - Выключить динамик на материнской плате. А еще лучше echo 'blacklist pcspkr' >> /etc/modprobe.d/blacklist
  • cat /dev/dsp > wave-file.wav - Записываем несжатый аудио‐поток с микрофона компьютера через вход звуковой карты.
  • cat wave-file.wav > /dev/dsp - Проиграть файл.

[править] Мониторинг

  • htop - Правильная замена top.
  • vmstat 5 - Подробные сведения о нагрузке.
  • dstat - Удобный генератор статистики по ресурсам.
  • iostat 5 -m -x - Нагрузка на разделы дисков в мегабайтах, с усредненным значением за 5 секунд.
  • iotop - Анализ нагрузки отдельными программами на дисковую подсистему (python)
  • atop - Анализ нагрузки отдельными программами на дисковую подсистему (надо патчить ядро).
  • tailf или tail -f /путь/к/логу — Просмотр изменений лога.
  • Нажатие Shift+f в less аналогично поведению tailf
  • iftop - Статистика по сетевому интерфейсу в реальном времени
  • ifstat -TtSnqA -i wimax0 - Статистика по конкретному сетевому интерфейсу и по общему трафику в реальном времени.
  • apachetop и mytop - Статистика в реальном времени по запросам apache и mysql соответсвенно
  • iptraf - Грамотный сетевой монитор.
  • watch -n 1 - Запускать программу раз в 1 секунду. Удобно наблюдать за выводом программ.

[править] Ядро

  • lsmod - Показать загруженные модули.
  • modprobe foo - Включить модуль.
  • modprobe -vr foo - Удалить неиспльзуемый модуль (почти тоже что и *rmmod foo*)

[править] Пересборка ядра

  • Скачать ядро, разархивировать и перейти в папку с исходниками (cd /usr/src/linux-2.6.30).
  • make config - Конфигурация сборки ядра создается файл .config (удобнее menuconfig или xconfig). Для надежности можно взять конфиг уже рабочей системы и править его (cp /boot/config-generic-2.6.29.4 /usr/src/linux-2.6.30/.config).
  • make dep - Создание файлов зависимостей.
  • make clean - Очистка от ранее скомпилированных модулей.
  • make - Компиляция ядра.
  • make kernelversion - Узнать версию скомпилированного ядра.
  • make install - Установка ядра (желательно делать это вручную cp arch/i386/boot/bzImage /boot/bzImage-2.6.23.1 и cp System.map /boot/System.map-2.6.23.1).
  • make modules - Компиляция модулей.
  • make modules_install - Установка модулей.
  • cp System.map /boot/System.map-2.6.30
  • cd /boot; mkinitrd -c -k 2.6.30 -m mbcache:jbd:ext3 -f ext3 -r /dev/sda2 - Пересборка initrd.
  • И добавить ядро в загрузчик.

[править] Сети

Уровень стека протоколов Протоколы Описание
Прикладной DHCP, SSH, SMTP, HTTP, FTP, DNS На этом уровне работают пользовательские приложения
Транспортный TCP (сегмент), UDP, RTP, SCTP, DCCP Этот уровень поддерживают все устройства, участвующие в сетевом обмене информацией (ПК, серверы, сетевые принтеры). В TCP соединение устанавливается прозрачно (между конечными сторонами).
Межсетевой (сетевой) Для TCP/IP это IP (дейтаграмма) (IPv6) (вспомогательные протоколы, вроде ICMP(пинги) и IGMP работают поверх IP, но являются частью сетевого уровня; ARP не работает поверх IP) На этом уровне работают маршрутизаторы (router) и коммутаторы уровня 3 (L3 switch)
Канальный (уровня доступа) Ethernet(фрейм), Token ring, PPP, IEEE 802.11 Wi-Fi, ISDN На этом уровне работают коммутаторы (switch), хабы (hub) работают на физическом уровне.
Физический Определяет: Тип среды передачи (медь, оптика, радиоэфир, окружающее пространство); Метод передачи информации (широкополосный, узкополосный); Тип синхронизации (синронный, асинхронный - в последовательных интерфейах; в параллельных интерфейсах для передачи инф. о синхр. используется отдельный проводник); А также на физическом уровне осуществляется мультиплексирование сигналов.

[править] Конфигурация

  • /etc/resolv.conf - DNS-сервера провайдера (для RHEL-like можно также указать в конфиге DNS{1,2}=80.80.111.254, он приоритетней).
  • /etc/sysctl.conf - Для маршрутизации пакетов в системе net.ipv4.ip_forward = 1 (или в rc.local добавить строку: echo 1 > /proc/sys/net/ipv4/ip_forward)
  • ip route add 192.168.124.0/24 via 192.168.0.220 - Добавить маршрут (до перезагрузки).
  • ip r a 192.168.124.0/24 via 192.168.0.220 - Добавить маршрут - краткая запись
  • ip addr add 192.168.0.100/24 dev eth0 - Добавить IP-адрес интерфейсу (до перезагрузки). Для совместимости с ifconfig в конце добавить "label eth0:0".
  • route add default gw 192.168.1.1 - добавить маршрут по умолчанию через шлюз 192.168.1.1 (до перезагрузки).
  • vconfig - добавить тегированный интерфейс (для трафика VLAN; предварительно убедиться, что подгружен модуль 8021q).
  • brctl addbr - Создать контейнер интерфейсов для коммутатора (нужен модуль ядра bridge).
  • brctl addif - Добавить интерфейс в созданный коммутатор.

[править] Для Debian-like

  • /etc/network/interfaces - Файл конфигурации интерфейсов.

[править] Для RHEL-like

  • /etc/sysconfig/networking/devices/ifcfg-eth0 - Файл конфигурации интерфейса (/etc/sysconfig/network-scripts/ifcfg-eth0 - жесткая ссылка на него же)
  • /etc/sysconfig/network-scripts/route-eth0 - Файл статической маршрутизации, с синтаксисом: 192.168.124.0/24 via 192.168.0.220 dev eth0 или ADDRESS0=192.168.124.0

[править] Для Slackware

  • /etc/rc.d/rc.inet1.conf - Файл конфигурации интерфейсов.
  • /etc/udev/rules.d/70-persistent-net.rules - Переопределение имени инт. (напр. eth1 -> eth0)

[править] Мониторинг

  • traceroute -i eth3 ya.ru - Трассировать через определенный интерфейс (для отладки маршрута).
  • ping -I eth1 -i4 -c3 host - Пропинговать хост через eth1 три раза с интрервалом в 4 секунды.
  • mtr ya.ru - tracert и ping в одном флаконе.
  • ifconfig - Вывод конфигурации всех интерфейсов (рек. ip addr).
  • netstat -tunap - Список всех портов и соединений (lsof -i -n).
  • netstat -tnlpu - Список всех слушающих приложений и соответствующих tcp/udp портов. Чтобы видеть все приложения, запускать необходимо от рута.
  • arp - Вывод arp-таблицы (нужно для выяснения физической доступности в сети, или выяснения МАС-адреса соседа). Кошерней ip neigh (или ip n).
  • tcpdump -vvvnnni eth0 not port ssh and not 3389 and not 80 and not 5191 and not 443 and not 53 and not 2222 and not 5223 and not udp port 5001 - Ищем незнакомый трафик в сети.
  • tcpdump -c 100 -nni vlan100 dst megahost.ru and icmp - Отфильтровать 100 сообщений ICMP для megahost.ru.
  • ip neigh (ip link, ip address, ip route, ip rule, ip tunnel и пр. ) - Показать соседей канального уровня (линки, ip-адреса, маршруты, таблицы правил маршрутизации: утилиты из состава iproute2).
  • ethtool eth0 - Статистика интерфейса, режимы текущего соединения и поддерживаемых соединений и прочее.

[править] Сетевые сервисы и утилиты

  • rdesktop 192.168.0.1 -u admin -p 'pass' -fzPa8 -k ru - Подключение к RDP серверу со сжатием, кэшированием, на полный экран, с русской раскладкой.
  • xfreerdp 192.168.0.1 -u admin -p 'pass' -k common -g 1280x1024 - Подключение к RDP серверу под соответствующим пользователем с соответствующим паролем, раскладкой, в окне соответствующего разрешения. Клиент - допиленный rdesktop.
  • ssh -L5555:192.168.0.10:80 root@213.37.57.236 - После установки соединения твой локальный порт 5555 будет проброшен на 192.168.0.10:80.
  • ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa - Создать пару ключей (секретный и публичный) длинной 2048 бит и положить их в ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub соответственно
  • ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host_ip' - скопировать публичный ключ (id_rsa.pub) на удаленную машину user@machine. Это позволить заходить на machine по ssh без ввода пароля.
  • scp remote_user@remote_host_ip:/etc/rc.d/autostart.sh / - Копирование файла /etc/rc.d/autostart.sh с удаленного хоста в локальную директорию .
  • sftp -i ~/.ssh/id_rsa remote_host_ip - Подключиться к удаленному, встроенному в openssh, sftp-серверу посредством ssh с авторизацией по ключу.
  • pdsh -w root@host-0[1-7,10] uptime - Выполнить команду uptime на хостах с 1 по 7 и на 10ом. Предварительно должен быть настроен вход ssh по ключам.
  • sshfs -o allow_other user@host:/home/user/ /mnt/host_user/ - монтирует /home/user/ удаленного хоста(host) в /mnt/host_user/. Опция allow_other позволяет другим пользователям обращаться к ресурсу.
  • pdcp -w root@host-0[1-7,10],root@otherhost /home/user/.vimrc /root/ - Копировать локальный файл .vimrc в папку /root на удаленных хостах. pdsh должен быть установлен на всех хостах.
  • trickle - Шейпер трафика (неудобный).
  • knockd - Забавный инструмент ограничения доступа к портам.
  • ngrep - Простой и удобный сниффер.
  • netsed - Модификация трафика на лету.
  • autossh - Поддержания ssh соединения.
  • iperf - Анализ пропускной способности канала (генератор TCP и UDP трафика).
  • #pptpsetup --create --server --username --password --encrypt mschap --start - Создать и поднять pptp соединение.
  • #pon - Поднять туннель.
  • #poff - Отключить туннель.
  • mausezahn - Грамотный конструктор сетевых пакетов-генератор трафика.
  • nemesis - Также конструктор сетевых пакетов-генератор трафика.
  • nmap - Сетевой сканер.

[править] Сеть PPPoE

  • pppoeconf - поиск и настройка концентратора pppoe.
  • pon dsl-provider - установить соединение.
  • poff - разорвать соединение.

[править] mplayer, mencoder

[править] CUE

shnsplit -f *.cue -o flac -t '%p-%a-%n-%t' -m \ _ *.ape - Разделить образ диска ape на отдельные композиции. cuetag sample.cue track*.flac - Прописать теги.

[править] mplayer

  • mplayer dvd:// -dvd-device — воспроизведение контента DVD из каталога
  • mplayer -vf cropdetect — определение кропа

  • mplayer -vf crop=704:416:8:80 — воспроизведение с кропом

  • mplayer -af volume=20.1:0 — увеличение громкости

  • mplayer -idx file.avi — воспроизведение файла с «битым» индексом


«Вырезаем» звук из видеофайла:
mplayer file.avi -dumpaudio -dumpfile audio.ac3
mplayer file.avi -vo null -ao pcm:fast:file=filename.wav

ffmpeg -i file.avi -vn output.mp3

[править] Кодирование

Запись видео с вебкамеры:
$ mencoder tv:// -tv driver=v4l:device=/dev/video0:width=640:height=480:forceaudio -ovc \
lavc -oac lavc -lavcopts vcodec=mpeg4:acodec=mp3 -ffourcc divx -o test.avi
«Склеиваем» два видеофайла:
$ mencoder -oac copy -ovc copy out.avi file_1.avi file_2.avi
Вырезаем пятисекундный кусок из видеофайла:
$ mencoder -oac copy -ovc copy -ss 00:00 -endpos 0:05 file.avi -o out.avi
Кодируем видеофайл в 3gp:
$ ffmpeg -i file.avi -b 200Kb -r 12 -s qcif -ac 1 -ab 12.2k -ar 8000 out.3gp
Исправляем «битые» индексы:
$ mencoder input.avi -forceidx -oac copy -ovc copy -o output.avi
или же:
$ avifix -i input.avi
Скрипт для кодирования DVD:
#!/bin/bash
 
TITLE=
ABR=128
VOLUME=5
DVDDEV="./"
OUT=out
VBR=600000
 
while true ; do
        case "$1" in
        --vers | --versi | --versio | --version)
        echo $"`basename $0` 0.3"
        printf $"Copyright '(C)' %s Free Software Foundation, Inc.\nThis is free software; \see the source for copying conditions.\nThere is NO warranty; not even for MERCHANTABILITY \or FITNESS FOR A PARTICULAR PURPOSE.\n" "2009"
 
printf $"Written by %s aka %s.\n" "Zakhary Akulov" "hozzzar"
printf $"Feel free to email me about possible bug at %s.\n" "hozzzar@gmail.com"
        exit 0
        shift
;;
        -h | --h | -help | --help)
        echo $"Использование: `basename $0` [-t title] [-ab bitrate] [-vb bitrate] [-v volume] [-d dvd-device]
        -ab, --abitrate         требуемый аудиобитрейт, по умолчанию -- 128 kbps
        -vb, --vbitrate         требуемый видеобитрейт, по умолчанию -- для 700Mb диска
        -d, --dvd               путь к каталогу DVD
        -t, --title             номер тайтла
        -v, --volume            громкость, по умолчанию 5
        -s, --start             начало фрагмента, MM:SS
        -e, --end               продолжительность фрагмента, MM:SS
        --scale                 масштабирование в пикселах, ширина:высота
        -o, --output            файл вывода, без пробелов и расширения
        -h, --help              показать эту справку и выйти
        --version               показать версию и выйти"
        exit 0
        shift
;;
        -ab | --ab | -abitrate | --abitrate)
        ABR="$2"
        shift 2
;;
        -vb | --vb | -vbitrate | --vbitrate)
        VBR="$2"
        shift 2
;;
        -d | --d | -dvd | --dvd)
        DVDDEV="$2"
        shift 2
;;
        -t | --t | --title | -tile)
        TITLE="$2"
        shift 2
;;
        -v | --v | -volume | --volume)
        VOLUME="$2"
        shift 2
;;
        -s | --s | -start | --start)
        SPOS="-ss $2"
        shift 2
;;
        -e | --e | -end | --end)
        EPOS="-endpos $2"
        shift 2
;;
        --scale)
        SCALE=",scale=$2"
        shift 2
;;
        -o | --o | -output | --output)
        OUT="$2"
        shift 2
;;
        --)           # Останов.
        shift; break
;;
        -*)
        echo >&2 $"`basename $0`: не могу распознать опцию '$1'"
        echo >&2 $"Наберите '`basename $0` --help' для получения справки."
exit 1
;;
        *)
        break
;;
 
esac
done
 
mplayer dvd://${TITLE} -dvd-device ${DVDDEV} -vf cropdetect \
-ss 10:00 -endpos 00:05 > cropfile
 
CROP=`awk -F' ' '{print($24)}' cropfile |grep -m 1 crop | sed 's/..$//g'`
 
mencoder dvd://${TITLE} -dvd-device ${DVDDEV} ${SPOS} ${EPOS} -ovc frameno -oac mp3lame \
-lameopts abr:br=${ABR}:mode=1:vol=${VOLUME} -o frameno.avi
 
mencoder dvd://${TITLE} -dvd-device ${DVDDEV} ${SPOS} ${EPOS} -ovc xvid \
-xvidencopts pass=1:vhq=1:vhq=4:gmc \
-vf ${CROP}${SCALE},hqdn3d=2:1:2 -oac copy -o /dev/null
 
mencoder dvd://${TITLE} -dvd-device ${DVDDEV} ${SPOS} ${EPOS} -ovc xvid \
-xvidencopts pass=2:vhq=1:vhq=4:gmc:bitrate=-${VBR} \
-vf ${CROP}${SCALE},hqdn3d=2:1:2 -oac copy -o ${OUT}.avi

[править] Примечания

  1. Граммар-наци в ярости!
  2. Вроде как бы да, если простое считывание окажется для него серьёзной нагрузкой. Кошёрней сделать дамп диска, а потом сравнить хэши.
Пространства имён
Варианты
Действия