пятница, 21 мая 2010 г.

m100

На подходе к m100. сам он почти в самом конце (правом) этого длиннющего здания.

И наше хозяйство:






Решил фоткать стойки по мере заполнения, а потом сложить в гиффффффко.

вторник, 18 мая 2010 г.

Планирование однократных задач

АйБиэМ как всегда выручает годными статьями.
Как пользоваться at:
http://www.ibm.com/developerworks/ru/library/l-job-scheduling/index.html

А вкратце так:
Есть скрипт hello.sh:
#!/bin/sh
echo hello world
Отрабатываем завтра в 3 часа ночи:
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
echo crypt('12345678', '$1$adevtdnu$');
?>
Получаем строчку $1$adevtdnu$BXoKOb9rWVuC7jCZuMooH/
И делаем апдейт в базе:
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 г.

пятница, 30 апреля 2010 г.

Лок на выполнение команды в Линуксе.

При организации процесса бекапа контейнеров OpenVZ столкнуся с необходимостью проверки - 'кончился ли предыдущий бекап или он затянулся?'. В образце для FreeBSD, который мне дали, использовался lockf.
Под линь этой утилиты нет, но есть похожая - flock.
Сделал так: в скрипте-обёртке написал
flock -w 0 backup.lock -c "/root/scripts/backup.sh"
Естественно, там всё в виде переменных, но в целом получается такая картина.
Как работает:
Когда обёртка дошла до запуска бекапа - проверяется лок файл.
Если он есть, то обёртка не ждёт (-w 0) и пропускает бекап,
ежели нет - ставил лок и запускает бекап.
И всё одной командой.
Предыдущий мой вариант занял строк 5 ))

четверг, 29 апреля 2010 г.

Воровство софта

Вот тут один товарищ, который не пропускает ни одной серии самораспиаренного чёрнобелого мультика и всех достаёт попытками завязать спор на тему "А вот он прав.." и т.д., увидел у меня в руках честно купленный Доктор Веб. И говорит: "До чего ты докатился - софт _покупать_!". Позабавило. Отвечаю: "Ты же сам что-то делаешь за деньги, почему же ты так относишься к труду других людей?". А он: "У меня индивидуальные заказы, а это для масс. Я для души делаю, а эти для бабла". Вот так вот ))) Делает для души, но за деньги, а вебовцы, оказывается, на потребу быдлу делают и это быдло доят )) Меня всегда радовали таки товарищи.
Тема получила продолжение через неск.дней.
Я ему говорю: "Почему ты за винду не заплатишь, раз юзаешь её". Ответ изумительный(вернее, не ответ, а пространная отмазка): "Когда делают не для бабла, а для души - лучше получается". Я говорю - тогда зачем пользоваться таким продуктом? Ответа не было. Ну и говорю: "Парень, да ты просто вор". А он: "От этого никому не убудет".
Вот оно - оправдание своего преступления всех казнокрадов всех времён и народов: "От одного не убудет!". Человека даже не смущает, что спиздил он винду не у мелкософта, а у честного юзера, чей ключ забил при установке.
Но при этом сколько пафоса пожизни от этого чела. Мол, вы все быдло, нихера вы не стоите, а я вот один _думающий_ )))))
ЗЫ
Он тут пытался завернуть на тему - Вы же сами воруете музыку, фильмы и книги, но очень обиделся, когда узнал, что мы время от времени покупаем то, что понравилось ))))

exipick

В CentOS он называется exiqgrep