Как подписаться на мультикаст, Linux

Если вам нужно слушать в сети мультикаст, то скорее всего, вам нужно на него подписаться – на то он и мульти, а не броад 🙂 Делается это командой:

ip maddr add 224.0.0.1 dev eth0

где 224.0.0.1 – адрес мультикастовой группы, а eth0 – интерфейс, на который этот мультикаст будем получать.
Отписаться от получения мультикаста так же просто:
ip maddr del 224.0.0.1 dev eth0

Посмотреть список подписок:

ip maddr show
Или в несколько другом виде:

netstat -g

http://geckich.blogspot.com/

Как просмотреть свой Product Key для Windows 2003, 7

Бывает, нужно было посмотреть ключи на лицензионных Windows. Стандартные средства покажут в лучше случае 5 последних символов (slmgr /dli), а в случае с Win2003 slmgr вообще нет 🙂

Можно использовать сторонние местами платные утилиты… Но лично я им не доверяю и ставить их на сервера не есть хорошая практика. Нашел на просторах Сети скрипт на Visual Basic, который вытягивает ключик из ресстра. Проверено на 2003 и 7.

Создаем текстовый файл в корне какого-то диска для простоты и копируем туда текст:

' Find Product Activation Key on Remote Machine
' Got this from a posting by 'Alatar1' at www.theeldergeek.com
'
' I just added the inputbox - Rob

If Wscript.Arguments.Count = 0 Then
    strComputer = inputbox("Enter a computer name to query the Windows product key from","Enter computer name")
    if strComputer = "" then wscript.quit
Else
    strCOmputer = Wscript.Arguments.Item(0)
End If
Dim Digits (24)
Digits (0) = "B" : Digits (1) = "C": Digits (2) = "D": Digits (3) = "F":
Digits (4) = "G": Digits (5) = "H": Digits (6) = "J": Digits (7) = "K":
Digits (8) = "M": Digits (9) = "P": Digits (10) = "Q": Digits (11) = "R":
Digits (12) = "T": Digits (13) = "V": Digits (14) = "W": Digits (15) = "X":
Digits (16) = "Y": Digits (17) = "2": Digits (18) = "3": Digits (19) = "4":
Digits (20) = "6" : Digits (21) = "7" : Digits (22) = "8": Digits (23) = "9"
Dim HexBuf (100), HexDigitalPID (15)
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer & "rootdefault:StdRegProv")
objReg.GetBinaryValue &H80000002, "SOFTWAREMicrosoftWindows NTCurrentVersion", "DigitalProductId", HexBuf
' Extract Relevant Section of Digital Product ID

StartOffset = 52 : EndOffset =67
For i = StartOffset to EndOffset
  HexDigitalPID (i-StartOffset) = HexBuf(i)
next

' Convert Encoded Product ID to Activation Key

dLen = 29 : sLen = 15
KEYSTRING =""
for i=dLen-1 to 0 step -1
  if ((i + 1) mod 6) = 0 then
    KEYSTRING = KEYSTRING & "-"
  else
    HN = 0
    For N = (sLen -1) to 0 step -1
      Value = ( (HN *2^8 ) Or HexDigitalPID (N))
      HexDigitalPID (N) = Value 24
      HN = (Value mod 24)
    next
    KEYSTRING = KEYSTRING & Digits(HN)
  end if
next
KEYSTRING2 = StrReverse (KEYSTRING)
WScript.Echo KEYSTRING2

Затем сохраняем это, например, как pk.vbs. и запускаем. В  Windows 2003 можно кликом vsirb, а в 7 – из-под консоли с администраторскими правами. Скрипт попросит имя компьютера, которое берем в свойствах системы (правый клик мышкой по Мой компьютер или [Win + Break]). Вводим имя и через несколько секунд получаем наш ключ полностью.

http://geckich.blogspot.com/

Настройка Interface Teaming (bonding) и привязка к VLAN тегам в RHEL6 (Oracle Linux 6)

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

 

nano /etc/modprobe.d/bond.conf

alias bond0 bonding
alias ipv6 “disable=1”

Заодно отключим IPv6 (если вы его не используете).

Далее переходим в директорию /etc/sysconfig/network-scripts/ где хранятся конфиги всех сетевых интерфейсов в формате ifcfg-<interface>

Создаем здесь конфиг для нашего нового bond интерфейса:

ifcfg-bond0

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
#IPADDR=192.168.1.2
BONDING_OPTS=”mode=4 miimon=1000″
VLAN=yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no

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

  • mode – определяет режим, который выбирается из соображений, чего вы хотите от бонда и вашей сетевой инфраструктуры. Описание режимов здесь.
  • miimon – нужен для failover’а – в мс как часто модуль mii будет мониторить карточки на их доступность. Если феиловер не нужен, то можно ставить побольше, если нужен, то 10, 20

Правим конфиги для физических адаптеров в бонде (например, eth0, eth1 etc.), добавляя к каждому параметры Master и Slave (<> – ваши данные)


ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
HWADDR=<>
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
UUID=<>
IPV6INIT=no
USERCTL=no
MASTER=bond0
SLAVE=yes

Теперь для интерфейсов VLAN’ов (интерфейс в этом случае называется в формате bond0.тег):

ifcfg-bond0.300

DEVICE=bond0.300
BOOTPROTO=static
ONBOOT=yes
IPADDR=<>
NETMASK=255.255.255.0
GATEWAY=<>
VLAN=yes
TYPE=Ethernet
IPV6INIT=no

Рестартуем сеть и проверяем.

Для просмотра статуса бонда импользуем команду:

cat /proc/net/bonding/bond0

UPDATE:
 
Для нормальной работы бонда в RHEL7 нужно отключить Network Manager, для этого добавляем в конфиги интерфейсов:
 
NM_CONTROLLED=no

И отключаем службу:

systemctl stop NetworkManager.service
systemctl disable NetworkManager.service

Nagios, ошибка при долгой перезагрузке сервера: CHECK_NRPE: Socket timeout after 10 seconds

По умолчанию nrpe-плагин для системы мониторинга Nagios ждет 10 сек. ответа от клиента, а если время перезагрузки сервера, который мы мониторим, больше заданного значения, то письма с такими фейковыми проблемами могут напрягать…

Редактируем файл (путь при установки из исходников) /usr/local/nagios/etc/objects/commands.cfg и находим определение команды чека nrpe. Будет что-то на подобии:

define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

дописываем в команду параметр -t и значение ожидания в сек, например:
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 60
Всё, этого типа фейковых ошибок уже не будет (если сервер успеет перезагрузиться за заданное время).
http://geckich.blogspot.com/

Установка Oracle Linux 6.4 с помощью USB flash drive

Устанавливать операционную систему с помощью USB-drive имеет смысл, если нет физичнского привода CD/DVD в ПК или сервере.

Последовательность действий такова.

1. Качаем образ отсюда (нужно пройти бесплатную регистрацию/залогиниться – whOracle совсем просто так ничего не даёт 🙂 )

https://edelivery.oracle.com/EPD/Download/get_form?egroup_aru_number=15213241

Качаем образ (последний на момент написания этих строк): Oracle Linux Release 6 Update 4 for x86_64 (64 Bit). Остальные нам в общем-то и не нужны.

2. Устанавливаем на свою рабочую станцию под управлением линукс утилиту Unetbootin

aptitude install unetbootin

3. Затем вставляем флешку в порт, форматируем, если надо, в FAT или EXT4 (например, с помощью Disk Utility).

4.Запускаем Unetbootin, выбираем скачанный образ и флеш-диск, жмем Ок и ждем.


После этого заходим на флешку, удаляем папку с .rpm файлами – Packages. Копируем в корень флешки .iso который скачивали. Без него, будете во время установки получать ошибку: oracle linux missing  iso 9660 image .

Теперь загружаемся с флешки, выбираем в менюшке что-нибудь (default обычно работает хорошо) и на одном из начальных экранов указываем в качестве инсталляционного диска флешку – /dev/sda – или как она определилась системой. И обязательно (!) указываем в поле директории образа / – т. е. корень диска. Иначе “кина не будет”.

Дальнейшая инсталляция такая же как в случае с dvd, но только при разметке диска и установке загрузчика не трогайте флешку (/dev/sda обычно). Загрузчик необходимо ставить в MBR жесткого диска (по-умолчанию инсталлятор его поставит или на флешку или в 1й раздел диска – будьте бдительны!)

http://geckich.blogspot.com/

How to conver Windows Server 2012 Evaluation editions to full retail versions

If you installed an evaluation edition of Windows Server 2012 which is free for 180 days and than buy a full version, you must convert Windows edition’s type.

If the server is a domain controller, you cannot convert it to a retail version. In this case, install an additional domain controller on a server that runs a retail version and remove AD DS from the domain controller that runs on the evaluation version. For more information, see http://technet.microsoft.com/en-us/library/hh994618.aspx.

To convert edition do next steps:

1. First, check version. From an elevated command prompt, run

slmgr.vbs /dlv

evaluation versions will include “EVAL” in the output.

2. To see editions available for us to convert, type

DISM /Online /Get-TargetEditions

You will get a list of edition IDs which we will use later.

3. Convertation itself. Run from elevated cmd:

DISM /online /Set-Edition:<edition ID> /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula

providing the edition ID one from the list we got above and a your retail product key. The server will offer to restart (twice) and all will be done.

Good luck!

http://geckich.blogspot.com/

How to measure network throughoutput and another parameters of Windows machine using NT Testing TCP Tool (ntttcp)

Update.

Для того, чтобы протестировать сеть между двумя Windows-машинами, необбходимо скачать бесплатный инструмент NT TCP Testing tool от Microsoft отсюда.

Скачиваем, распаковываем, например, на диск С: в корень.

Далее на первой машине открываем cmd и заходим в папку соответствующую архитектуре Windows:

cd C:NTttcp-v5.28×64

запускаем в режиме приемника:

NTttcp.exe -r -m 4,0,10.1.2.3 -a 6

где -r – режим приемника,
-m – количество_сессий,Номер_ЦП,IP_этой_машины

На втором ПК/сервере делаем то же самое, только вместо ключа -r указываем ключ -s и IP первой машины.

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


Old Article.

Steps to do:

1. Download on both Windows machines NTttcp from MS site: http://msdn.microsoft.com/en-us/library/windows/hardware/gg463264.aspx

2. On both Win machines install NTttcp – installation is straightforward.

3. On both Win machines open CMD and cd to installed program’s dir (for x64 machines add (x86) and path must be in quotes):

cd “C:Program Files (x86)Microsoft CorporationNT Testing TCP Tool”

4. In that dir will be .docx document with instructions. According to it:

To use NTttcp as a receiver, change the name to NTttcpr.exe.

To use NTttcp as a sender, change the name to NTttcps.exe.

So, rename NTttcp_x64.exe (for x64 machine) as described above.

5. Launch receiver side by executing command:
NTttcpr -m 1,0,10.1.2.3 -a 6 -fr
arguments are:
“-m 1,0,10.1.2.3” specifies a single thread bound to CPU 0 that is bound on the receiving computer to IP address 10.1.2.3.
“-a 6” specifies asynchronous data transfer that posts six receive overlapped buffers.
“-fr” directs NTttcp to always post full-length (64 K) receive buffers.
This example uses the following default settings:
A buffer size of 64 KB.
The expected number of buffers to be received of 20,000.
A receiver that starts listening on port 5001.
6. Then execute the sender command and wait for results:
NTttcps -m 1,0,10.1.2.3 -a 2
runs NTttcps with the following explicit settings:
“-m 1,0,10.1.2.3” specifies a single thread bound to CPU 0 that connects to the computer with IP address 10.1.2.3.
“-a 2” specifies asynchronous data transfer that posts two send overlapped buffers.
Results will be like on on pics below:

http://geckich.blogspot.com/

Python, извлечение параметров из Post или Get запросов.

Извлекать параметры, введенные в форму (get или post), довольно легко. В этом поможет следующая конструкция:

from mod_python import util

def handler(req):
   form_data = util.FieldStorage(req, keep_blank_values=1)
   myparameter = form_data.getfirst("parameter")

В myparameter теперь находится значение того, что было передано с именем “parameter”. Например, того, что было в ведено в “EditBox1”.

Настройка сетевого интерфейса в RHEL6 (RedHat, CentOS, Oracle Linux)

Решил вот сделать заметку о настройке сетевых интерфейсов RHEL (RedHat, CentOS, Oracle Linux, Fedora).

Вначале редактируем файлик настройки интерфейса, например eth1 (<> – означает специфические значения):

nano /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=”eth1″

TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.2
PREFIX=24
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=”System eth1″
UUID=<>
ONBOOT=yes
HWADDR=<>
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
VLAN=yes
MASTERr=bond0
SLAVE=yes
Строки говорят сами за себя. HWADDR и UUID проще не указывать, чтобы система сама их розчехлила, а если и указывать, то точно для вашего адаптера.

  • BOOTPROTO=none – при задании статического адреса. Для получения динамического адреса, здесь необходимо указать =dhcp
  • VLAN=yes – если мы настраиваем интерфейс для работы с тегами VLAN.
  • MASTERr=bond0 – если мы настраиваем интерфейс как часть бонда
  • SLAVE=yes – если мы настраиваем интерфейс как часть бонда
  • NETMASK=255.255.255.0 – указываем только ОДИН из параеметров – или NETMASK или PREFIX
Далее редактируем:

nano /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=host.example.com

GATEWAY=192.168.1.1
GATEWAYDEV=eth1
NOZEROCONF=yes

  • GATEWAY и GATEWAYDEV – определяют адрес и сетевой интерфейс шлюза по-умолчанию (можно не указывать, если не нужно). 
  • NOZEROCONF=yes – убрать zeroconf маршрут (169.254.0.0)

Теперь стоит подредактировать файлик серверов доменных имен:

nano /etc/resolv.conf

nameserver 192.168.1.1
nameserver 8.8.8.8
search example.com

search – указываются домены, которые будут автоматически добавляться к коротким именам. Например, в этом случае по host будет искатся host.example.com.

Про добавление статического маршрута (роута) написано здесь

http://geckich.blogspot.com/

Подсветка синтаксиса в Blogger

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

Подсветка синтаксиса использует Java-script библиотеку SyntaxHighlighter

Итак, открываем панель блоггера, переходим в Шаблон › Изменить HTML и находим там строчку такого вида (у вас может быть другая, главное – чтобы были теги <title>):

<title><data:blog.pageTitle/></title>

После этой строчки дописываем следующее:

<link href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css"></link>
<link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css"></link>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript">
</script>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript">
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'/>
<script src='http://alex gorbatchev.com/pub/sh/current/scripts/shAutoloader.js' type='text/javascript'/>

<script type='text/javascript'>
SyntaxHighlighter.config.bloggerMode = false;
SyntaxHighlighter.all();
</script>

Также, чтобы в браузере Google Chrome не было глюков с нумерацией строк, нужно найти строчку:


/* Content
----------------------------------------------- */

И прописать под ней:

.syntaxhighlighter table td.gutter .line
{
padding: 0 5px !important;
}

Всё, теперь чтобы сделать подсветку кода нужно сделать следующее: во время написания статьи переходим из режима Создать в HTML. и в нужном месте делаем теги и вставляем туда код (например, для подсветки синтаксиса Python):

<pre class="brush:python">
...
</pre>

После brush: указываем язык кода: html, js, css и т. д. А между ними вставляем код. Для питона код можно вставлять “как есть”, а вот если код html, то нужно его закодировать html-кодировкой спец символов – для того, чтобы код поспринимался именно как текст, а не как теги. Делается это или вручную 🙂 или с помощью сайтов вроде этого http://www.string-functions.com/htmlencode.aspx

http://geckich.blogspot.com/