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

grep - ее простое и продвинутое использование (+ регулярные выражения)

1). когда нужно дополнительно исполнить команду
grep `whoami` file
когда нужно значение переменной 
grep "$HOME" file

2). использование регулярных выражений
grep -e 'e[a]' file (следование e перед a)
grep -e 'e[^a]' file (следование e перед любым символом не a)

                                                    пояснение метасимволов
совпадение с символом
.                 - лубой 1 символ
[...]            - любой символ из перечисленных символов в скобках (примеры [a-f], [aewsd], [a-fA-F0-5])
[^...]           - любая последовательность из не перечисленных символов в скобках (пример, '..[^24680]'
)
\char          - экранировка спецсимволов (например \$)
совпадение с позицией
^               - начало линии
$               - конец линии
\<              - начало слова
\>              - конец слова
квантификаторы
?                - опции, считать квантификатором
*                - любой номер (в т.ч. 0), общая маска
+                - 1 или больше предшествующих выражений
{N}            - совпадение ровно N раз
{N,}           - совпадение хотя бы N раз
{min,max}  - совпадает в промежутке между этими значениями
Остальные
|                 - совпадает любое из выражений
-                - диапазон
(...)            - используется для указания пределов изменения
\1, \2, ...    - совпадает текст, который встречался в пределах скобок (например, 1-е множество, 2-е множество и т.д.)
\b              - група символов типично выступает концом слова (например, пробел, период и т.д.)
\B             - альтернатива "\\" или обратного слеша, испльзуется для лучшего прочтения
\w            - любой символ "слова" (например, символ, номер, символ подчеркивания)
\W            - любой символ не используемый в "слове" (например, не символ, не номер, не символ подчеркивания)
\`              - старт буфера посланный в grep
\'              - конец буфера посланный в grep


вторник, 25 сентября 2012 г.

apache subdomain virtualhosts

Пример конфига для апача когда есть сабдомены на одном айпи

NameVirtualHost *
<VirtualHost *>
        ServerName articleaday.com
        DocumentRoot /var/www/html/articleaday/
        CustomLog logs/articleaday.access.log combined
        ErrorLog logs/articleaday.error.log
        ServerAlias www.articleaday.com
     <Directory "/var/www/html/articleaday/">
        Options +Indexes +FollowSymLinks +ExecCGI
        AllowOverride All
        DirectoryIndex index.php
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
<VirtualHost *>
        ServerName postfixadmin.articleaday.com
        DocumentRoot /var/www/html/postfixadmin/
</VirtualHost>
<VirtualHost *>
        DocumentRoot /var/www/html/mail/
        ServerName webmail.articleaday.com
</VirtualHost>
<VirtualHost *>
        ServerName phpmyadmin.articleaday.com
        DocumentRoot /var/www/html/phpMyAdmin/
</VirtualHost>





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

2 свича - 2 линка и MST

На обоих свичах конфигурация

Глобально включить MST и зайти в режим настройки MST выполнив команду
spanning-tree mode mst 
spanning-tree extend system-id
spanning-tree mst configuration
name MST (Имя региона MST)
 revision 1 (MST revision number)
 instance 1 vlan 1-99, 200-299, 400-499, 600-699, 800-899, 1000-1099, 1200-1299
 instance 1 vlan 1400-1499, 1600-1699, 1800-1899, 2000-2099, 2200-2299
 instance 1 vlan 2400-2499, 2600-2699, 2800-2899, 3000-3099, 3200-3299
 instance 1 vlan 3400-3499, 3600-3699, 3800-3899, 4000-4094
 instance 2 vlan 100-199, 300-399, 500-599, 700-799, 900-999, 1100-1199
 instance 2 vlan 1300-1399, 1500-1599, 1700-1799, 1900-1999, 2100-2199
 instance 2 vlan 2300-2399, 2500-2599, 2700-2799, 2900-2999, 3100-3199
 instance 2 vlan 3300-3399, 3500-3599, 3700-3799, 3900-3999

как видим создали 2 MST instance для балансировки вланов по портам, чтобы оба порта работали. Теперь конфигурация интерфейсов

interface GigabitEthernet1/0/1
 description ODF-2 
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 speed nonegotiate
 spanning-tree link-type point-to-point
 spanning-tree mst 1 port-priority 112
 spanning-tree mst 2 port-priority 144
end

interface GigabitEthernet1/0/2
 description ODF-3 
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 speed nonegotiate
 spanning-tree link-type point-to-point
 spanning-tree mst 1 port-priority 144
 spanning-tree mst 2 port-priority 112

Как видим разные MST instance имет разные приоритеты на портах - причину смотрим выше.
Объяснение еще одной команды

spanning-tree link-type {point-to-point | shared}
no spanning-tree link-type

Syntax Description
 point-to-point
 Specify that the link type of an interface is point-to-point. 
 shared
 Specify that the link type of an interface is shared.

Defaults
The switch derives the link type of an interface from the duplex mode. A full-duplex interface is considered a point-to-point link, and a half-duplex interface is considered a shared link.
()

Увидеть это также можно вот так

#show spanning-tree interface gi 1/0/1 detail  
 Port 1 (GigabitEthernet1/0/1) of MST00 is designated forwarding 
   Port path cost 20000, Port priority 128, Port Identifier 128.1.
   Designated root has priority 32768, address 001b.0c51.7580
   Designated bridge has priority 32768, address 001b.0c51.7580
   Designated port id is 128.1, designated path cost 0
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 4
   Link type is point-to-point, Internal
   Bpdu filter is enabled internally
   BPDU: sent 12217849, received 905090

 Port 1 (GigabitEthernet1/0/1) of MST01 is designated forwarding 
   Port path cost 20000, Port priority 112, Port Identifier 112.1.
   Designated root has priority 32769, address 001b.0c51.7580
   Designated bridge has priority 32769, address 001b.0c51.7580
   Designated port id is 112.1, designated path cost 0
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 4
   Link type is point-to-point, Internal
   Bpdu filter is enabled internally
   BPDU: sent 12217849, received 905090

 Port 1 (GigabitEthernet1/0/1) of MST02 is designated forwarding 
   Port path cost 20000, Port priority 144, Port Identifier 144.1.
   Designated root has priority 32770, address 001b.0c51.7580
   Designated bridge has priority 32770, address 001b.0c51.7580
   Designated port id is 144.1, designated path cost 0
   Timers: message age 0, forward delay 0, hold 0
   Number of transitions to forwarding state: 3
   Link type is point-to-point, Internal
   Bpdu filter is enabled internally
   BPDU: sent 12217849, received 905090

#show spanning-tree summary
Switch is in mst mode
Root bridge for: MST00-MST02
Extended system ID           is enabled
Portfast Default             is disabled
PortFast BPDU Guard Default  is disabled
Portfast BPDU Filter Default is disabled
Loopguard Default            is disabled
EtherChannel misconfig guard is enabled
UplinkFast                   is disabled
BackboneFast                 is disabled
Configured Pathcost method used is short (Operational value is long)

Name                   Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
MST00                        0         0        0          8          8
MST01                        0         0        0          7          7
MST02                        0         0        0          6          6
---------------------- -------- --------- -------- ---------- ----------
3 msts                       0         0        0         21         21

На другом свиче все аналогично только в конфиге свича добавлена одна строка

interface GigabitEthernet1/0/2
 description ODF-3
 switchport trunk encapsulation dot1q
 switchport mode trunk
 speed nonegotiate
 spanning-tree link-type point-to-point
 spanning-tree mst pre-standard
 spanning-tree mst 1 port-priority 144
 spanning-tree mst 2 port-priority 112

When you connect the prestandard MST switch with the standard MST switch, you need to configure spanning-tree mst pre-standard in the interface of the standard MST switch. 
Catalyst 3550/3560/3750: TheMST implementation in Cisco IOS Release 12.2(25)SEC is based on the IEEE 802.1s standard. The MST implementations in earlier Cisco IOS releases are prestandard. 
То есть если у вас версия => 12.2(25)SEC то эта командочка не нужна.

Все это также можно посмотреть если заюзать команду

#show spanning-tree mst

###### MST00        vlans mapped:   none
Bridge      address 001b.0c51.7580  priority  32768 (32768 sysid 0)
Root        this switch for CST and IST
Configured  hello time 2, forward delay 15, max age 20, max hops 20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/1          Desg FWD 20000     128.1    P2p
Gi1/0/2          Desg FWD 20000     128.2    P2p
Fa1/0/1          Desg FWD 200000    128.3    P2p Bound(PVST)
Fa1/0/3          Desg FWD 200000    128.5    Shr
Fa1/0/6          Desg FWD 200000    128.8    P2p
Fa1/0/22         Desg FWD 200000    128.24   P2p
Fa1/0/23         Desg FWD 200000    128.25   P2p
Fa1/0/24         Desg FWD 200000    128.26   P2p

###### MST01        vlans mapped:   1-99,200-299,400-499,600-699,800-899
                                     1000-1099,1200-1299,1400-1499,1600-1699
                                     1800-1899,2000-2099,2200-2299,2400-2499
                                     2600-2699,2800-2899,3000-3099,3200-3299
                                     3400-3499,3600-3699,3800-3899,4000-4094
Bridge      address 001b.0c51.7580  priority  32769 (32768 sysid 1)
Root        this switch for MST01

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/1          Desg FWD 20000     112.1    P2p
Gi1/0/2          Desg FWD 20000     144.2    P2p
Fa1/0/1          Boun FWD 200000    128.3    P2p Bound(PVST)
Fa1/0/3          Desg FWD 200000    128.5    Shr
Fa1/0/6          Desg FWD 200000    128.8    P2p
Fa1/0/23         Desg FWD 200000    128.25   P2p
Fa1/0/24         Desg FWD 200000    128.26   P2p

###### MST02        vlans mapped:   100-199,300-399,500-599,700-799,900-999
                                     1100-1199,1300-1399,1500-1599,1700-1799
                                     1900-1999,2100-2199,2300-2399,2500-2599
                                     2700-2799,2900-2999,3100-3199,3300-3399
                                     3500-3599,3700-3799,3900-3999
Bridge      address 001b.0c51.7580  priority  32770 (32768 sysid 2)
Root        this switch for MST02

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Gi1/0/1          Desg FWD 20000     144.1    P2p
Gi1/0/2          Desg FWD 20000     112.2    P2p
Fa1/0/1          Boun FWD 200000    128.3    P2p Bound(PVST)
Fa1/0/3          Desg FWD 200000    128.5    Shr
Fa1/0/22         Desg FWD 200000    128.24   P2p
Fa1/0/24         Desg FWD 200000    128.26   P2p

вторник, 14 августа 2012 г.

kloxo apache и ошибка "open_basedir restriction in effect"

В kloho панели может возникать такая ошибка

Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(/dev/shm/6848856145029f5d60788d.tmp) is not within the allowed path(s): (/home/admin:/home/admin/kloxoscript:/home/neff.net:/home/neff.net/httpdocs:/tmp:/usr/share/pear:/var/lib/php/session/:/home/kloxo/httpd/script) in /home/admin/neff.net/news/installer.php on line 374

это возникает потому что в конфиге для данного вирутального хоста /home/apache/conf/exclusive/neff.net.conf
есть секция
             

                        php_admin_value open_basedir "/home/admin:/home/admin/kloxoscript:/home/neff.net:/home/neff.net/httpdocs:/tmp:/usr/share/pear:/var/lib/php/session/:/home/kloxo/httpd/script:/dev/shm"
             

                        php_admin_value open_basedir "/home/admin:/home/admin/kloxoscript:/home/neff.net:/home/neff.net/httpdocs:/tmp:/usr/share/pear:/var/lib/php/session/:/home/kloxo/httpd/scripti:/dev/shm"

то что я добавил выделено жирным. И конечно рестартануть апач.



понедельник, 9 июля 2012 г.

mailman, настройка и глюки

На redhat es 5.8 был поставлен из пакета (особенность работы на сервере используется не настоящее доменное имя а имя в локальной сети)

1). Создание списков рассылки:
http://10.1.1.2/mailman/create — проще но не работает
/usr/lib/mailman/bin/newlist -u redhat (обязательно имя www hosta для правильно работы апача)
/usr/lib/mailman/bin/genaliases (необязательно — работае без него, он создает файл алиасов и включает туда алиасы для всех рассылок )
файл /etc/mailman/aliases (генерятся или при создании рассылки или /usr/lib/mailman/bin/genaliases) редактируют
postmap /etc/mailman/aliases  - НЕ РАБОТАЕТ !!!
postalias /etc/mailman/aliases
и тогда /etc/mailman/aliases.db получается нормальным
(теперь ваши псевдонимы сгенерированы, проверьте, что они добавлены правильно)
cat /etc/mailman/aliases

2). Удаление писем из архива рассылок:
cd /var/lib/mailman/archives/private/  # public (здесь симлинки на архивы в папке /var/lib/mailman/archives/private/)
rm -rf mailinglist
cd /var/lib/mailman/archives/private/test.mbox
edit test.mbox, удалите линии касательно удаляемых сообщений
Скрипт для очистки архива >
cat /root/scripts/mailman.sh
#!/bin/sh
rm -fR /var/lib/mailman/archives/private/*
for i in book eset everyone mailman memory order robota sales shipping software
        do
                mkdir /var/lib/mailman/archives/private/$i.mbox/
                touch /var/lib/mailman/archives/private/$i.mbox/$i.mbox
                mkdir /var/lib/mailman/archives/private/$i
                chown -R root.mailman /var/lib/mailman/archives/private/$i*
                /usr/lib/mailman/bin/arch $i
        done
запуская в 2 часа ночи 1 января
crontab -l
00 02 01 01 * /root/scripts/mailman.sh >/dev/null 2>&1
/usr/lib/mailman/bin/arch mailinglist

3). Удаление рассылки:
/usr/lib/mailman/bin/rmlist -a listname
(удалите также ссылки  /etc/mailman/aliases и  /etc/mail/virtusertable, if necessary)
http://10.1.1.2/mailman/admin/test — управление листами подписки
http://10.1.1.2/mailman/listinfo/test - підпись участников на список рассылки
Сброс пароля списка рассылки
/usr/lib/mailman/bin/change_pw -l listname -p newpass (без @ в названии списка рыссылки)

4). Базовые настройки новой подписки:
4.1). Общие
Если сообщение удержано для обработки, извещать об этом отправителя? - Нет
Должен ли модератор списка получать отдельные извещения о запросах наряду с их ежедневными подборками? - Нет
Максимальная длина (Кб) тела сообщения. Нулевое значение снимает ограничения. - 10000
Discard held messages older than this number of days. Use 0 for no automatic discarding.  - 1
4.2). Параметры обычной доставки
Нижний колонтитул, добавляемый к сообщениям для пользователей, предпочитающих обычную доставку - очистить 
4.3). Параметры приватности
4.3.1) Правила подписки
Кто может просматривать список подписчиков — только администратор подписки !!!
4.3.2) Фильтрация отправителей
Действия, которые нужно предпринять, если отправитель не входит ни в один из перечисленных выше списков. - Принять 
Еще (борьба со спамом)
Общие 
Отправлять заключительное сообщение пользователям, удаляющим свою подписку? - нет
Если сообщение удержано для обработки, извещать об этом отправителя? - нет
Проверять сообщения и перехватывать из них те, что похожи на административные запросы? - нет
Отправлять приветственное сообщение новым подписчикам? - нет
!!! Если хотим принимать письма со скрытыми адресатами то идем — Параметры приватности -> Фильтрация получателей -> Должны ли исходные значения полей To: и CC: заменяться адресом списка рассылка (если это не псевдонимы списка, указанные ниже)? и ставим Нет 
!!!Глюки!!! если долго не доходят письма в рассылку а также если не октрывается веб интерфейс управления какой-нибудь рассылкой чистим
/var/lock/mailman/
также
/var/spool/mailman/shunt/ - размер 2,7G
решение
mkdir /tmp/mail
find  -type f -ctime -1 | xargs mv -t /tmp/mail/ (сегодняшние файлы)
rm -f /var/spool/mailman/shunt/*
mv /tmp/mail/*  /var/spool/mailman/shunt/
rm -fR /tmp/mail/
разблокируем новые
/usr/lib/mailman/bin/unshunt
Нихрена не помогло
/var/spool/mailman/archive/ 
/var/spool/mailman/in/
содержат кучу файлов
/usr/lib/mailman/bin/show_qfiles (очередь)
/usr/lib/mailman/bin/show_qfiles /var/spool/mailman/in/*.pck *- конкретный файл указываем

Backup (какие файлы)
/usr/lib/mailman/Mailman/Defaults.py 
/usr/lib/mailman/Mailman/mm_cfg.py

Глюки
с некоторого момента при заходе по веб на один из списков рассылки ошибка и начинает медленно и уверенно рости потребление проца питоном - поэтому удалил mailman и сделал рассылку через алиасы в postfix.

вторник, 3 июля 2012 г.

VBR-руткит (Trojan.Mayachok) и как его обнаружить

Пуск -> выполнить -> cmd
echo Hello >null
если ничего не, то система не заражена, в противном случае вы увидите
The system can not find the file specified.

(Источник статья VBR-руткит (Александр Єккерт) Хакер 02/157/2012 - стр. 80)

четверг, 28 июня 2012 г.

поиск через google.com

1. Исключение из Google поиска
Чтобы исключить из поисковой выдачи какое либо слово, фразу, символ и т.п., достаточно перед ним поставить знак "-” (минус), и оно не появится в результатах поиска.
Для примера, я ввёл в строку поиска следующую фразу: "бесплатный хостинг – ru” и в поисковой выдаче нет ни одного .ru сайта, кроме оплаченных рекламных объявлений.

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

3. Неопределённый поиск
На тот случай, если вы не определились с конкретным ключевым словом для поиска, поможет оператор "*”.
Например фраза "лучший редактор * изображений” подберёт лучшие редакторы для всех типов изображений, будь то цифровые, растровые, векторные и т.д.

4. Поиск на выбор из вариантов
Используя оператор "|”, можно осуществить Google поиск по нескольким сочетаниям фраз, заменяя несколько слов в различных местах.
Например, введём фразу "купить чехол | ручку” выдаст нам страницы, содержащие либо "купить чехол”, либо "купить ручку”

5. Значение слова
Чтобы узнать значение того или иного слова, достаточно ввести в поисковую строку "define:” и после двоеточия искомую фразу.

6. Точное совпадение
Для нахождения точного совпадения поисковой выдачи с запросом достаточно заключить ключевики в кавычки.

7. Поиск по определённому сайту
Чтобы осуществить поиск ключевых слов только по одному сайту, достаточно прибавить к искомой фразе следующий синтаксис – "site:”.

8. Обратные ссылки
Чтобы узнать расположение ссылок на интересующий сайт, достаточно ввести следующий синтаксис: "links:” и далее адрес интересующего сайта.

9. Конвертер величин
Поисковая система Google также умеет конвертировать величины по запросу пользователя.
Например, нам нужно узнать, сколько составляет 1 кг в фунтах. Набираем следующий запрос: "1 кг в фунтах”

10. Конвертер валют
Для того, чтобы узнать курс валют по официальному курсу, набираем следующий поисковой запрос: "1 [валюта] в [валюта]”

11. Время по городу
Если хотите узнать время по какому либо городу, то используйте синтаксис: "time” или русский аналог "время" и название города.

12. Google калькулятор
Google умеет считать онлайн! Достаточно вбить пример в строку поиска и он выдаст результат.

13. Поиск по типам файлов
Если вам необходимо найти что-то по конкретному типу файла, то у Google есть оператор "filetype:” который осуществляет поиск по заданному расширению файла.

14. Поиск кэшированной страницы
У Google есть собственные сервера, где он хранит кэшированные страницы. Если нужна именно такая, то воспользуйтесь оператором: "cached:”

15. Прогноз погоды по городу
Ещё одним оператором поиска у Google является оператор погоды. Достаточно вбить "weather” и город, как вы увидите, будет у вас дождь или нет
Изображение

16. Переводчик
Можно переводить слова сразу, не отходя от поисковика. За перевод отвечает следующий синтаксис: "translate [слово] into [язык]”