Вскрытие покажет, почему они прожили столь долгие жизни, хотя и находясь в коме.
понедельник, 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';
среда, 12 мая 2010 г.
Пляски с бубном
Меня радует, когда винадмины начинают вякать насчёт линукса и бубна. Вот прямо сейчас у меня лежит сервак, на который CentOS ставится за 20 минут, я пытаюсь уже 2 часа поставить на него винду 2003:
Вот так вот. В дистрибутив ОС не входят дрова для довольно распространённого контроллера, а на дровах производителя, которые надо подсунуть на дискете, винда блюскринит. Так что бубен нужен именно для винды )
Вот так вот. В дистрибутив ОС не входят дрова для довольно распространённого контроллера, а на дровах производителя, которые надо подсунуть на дискете, винда блюскринит. Так что бубен нужен именно для винды )
вторник, 11 мая 2010 г.
Ротация бекапов в fsbackup
fsbackup - замечательная штука, но сохраняет токо последний бекап. Немного переделал скрипт, заменив сохранение старого бекапа на ротацию до 10 бекапов:
# Удаление старых бекапов
print "Remove old backup\n";
foreach $cur_dir ($ftp->ls()) {
if ($cur_dir =~ /\.9$/) {
$ftp->delete($cur_dir);
}
}
# Ротация бекапов
print "Backup rotating:\n";
for ($i = 8; $i > 0; --$i) {
$j = $i + 1;
foreach $cur_dir ($ftp->ls()) {
$name = $new_name = $cur_dir;
if ($name =~ /\.$i$/) {
$new_name =~ s/\.$i$/\.$j/;
print "$name -> $new_name\n";
$ftp->rename($name, $new_name) or die "Can't rename $name\n";
}
}
}
foreach $cur_dir ($ftp->ls()) {
$name = $new_name = $cur_dir;
if ($name =~ /\.\w{2,5}$/) {
$new_name = $name.".1";
print "$name -> $new_name\n";
$ftp->rename($name, $new_name) or die "Can't rename $name\n";
}
}
вторник, 4 мая 2010 г.
MD5 hash bruting
Хорошая база хэшей:
http://www.netmd5crack.com/cracker/
Ну и вот тут хороший пост:
http://www.stottmeister.com/blog/2009/04/14/how-to-crack-md5-passwords/
http://www.netmd5crack.com/cracker/
Ну и вот тут хороший пост:
http://www.stottmeister.com/blog/2009/04/14/how-to-crack-md5-passwords/
Подписаться на:
Сообщения (Atom)