вторник, 29 декабря 2009 г.
Ubuntu, стилизованный под Windows XP
В качестве основы использован пакет XpGnome в котором представлен набор визуальных компонентов и настроек. XpGnome позволяет выполнив одну команду придать GNOME вид Windows XP, а после экспериментов также быстро вернуть все обратно. Видеодемонстрацию превращения можно найти на YouTube.
Изменения затрагивают: пиктограммы, GTK, Metacity, Splash, визуальную тему GDM, курсоры мыши, панель инструментов, фоновые рисунки, визуальные иконки на десктопе, оформления вывода списка файлов в Nautilus, тулбар. С экрана удаляются все панели GNOME, внизу добавляется меню Start, кнопка отображения рабочего стола, переключатель окон, область уведомлений, часы и апплет управления громкостью.
Лично я эту вещь опробовал на бухгалтерах. Реакция более чем положительная.
алюминиевые окна, витрины
пятница, 6 ноября 2009 г.
Сколько стоит ваш сайт :)
В типографии "Альянс" Вас ждут лучшие предложения по производству наклеек и этикеток
вторник, 6 октября 2009 г.
Настройка Mango Office + Asterisk
Решили перейти на VOIP-провайдера Манго Офис. У данного провайдера есть 2 условия:
- Использование протокола H323
- Использование кодека g729
Про реализацию данных условний я расскажу чуть позже(в Интернете куча информации на тему подключения g729 и h323 к Asterisk-у). Я прикрутил h323, но вот тут возникли проблемы - входящий звонки самопроизвольно отрубались через несколько минут. Тогда я решил отказаться от h323 и заменить его на ooh323(установка не сложная - можно собрать за несколько минут аддонами для астериска с официального сайта). Но и тут обнаружились проблемы: Манго Офис при исходящем звонке требует авторизацию по pin-коду. А oooh323 никак не хотел использовать мой макрос для отправки кода. Поэтому, следуя по пути наименьшего сопротивления, я решил использовать оба модуля: для входящих звонков ooh323, а для исходящих h323.
debian:/etc/asterisk# netstat -lpn | grep asterisk | grep tcp
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 3879/asterisk
tcp 0 0 0.0.0.0 :1720 0.0.0.0:* LISTEN 3879/asterisk
tcp 0 0 0.0.0.0 :1721 0.0.0.0:* LISTEN 3879/asterisk
Здесь видно, что h323 висит на 1721 порту, а ooh323 я повесил на 1720. Выложу примеры конфигурационных файлов, в боях с которыми были потрачено несколько дней
ooh323.conf
[general]
port=1720
bindaddr=your_ext_ip
faststart=yes
h245tunneling=no
callerid=asterisk
gatekeeper = DISABLE
context=office
disallow=all ;
allow=g729
allow=ulaw
allow=alaw
dtmfmode=h245alphanumeric
h323.conf
[general]
port = 1721
bindaddr = your_ext_ip
[prov]
type=peer
context=office
host=81.88.84.10
port=1720
disallow=all
allow=g729
allow=alaw
allow=ulaw
extensions.conf
[macro-bubble] ; максрос для отправки pin-кода
exten => s,1,Wait(3) ; wait 1 second
exten => s,n,SendDTMF(your_pin_code);
exten => s,n,Wait(1) ;
exten => s,n,SendDTMF(${NUMBER}#);
exten => s,n,System(mkdir /home/shares/asterisk/out/${CALLER});
exten => s,n,MixMonitor(/home/shares/asterisk/out/${CALLER}/${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)}.wav)
[office]
exten => 100,1,Answer
exten => 100,2,Agi(auth.agi)
exten => 100,3,Hangup
exten => _XXXXXXX,1,Set(_NUMBER=${EXTEN})
exten => _XXXXXXX,2,Set(_CALLER=${CALLERID(num)})
exten => _XXXXXXX,3,Dial(H323/9999999@prov,,M(bubble),mtT)
Теперь при звонке на внешние номера будет автоматичкески отправляться pin-код. Правда, на его отправку уходит около 7-10 секунд, что очень плохо.
В панели управления вашей учетной записи для Mango Office нужно указать внешний ip-адрес, на который будут перенаправляться входящие звонки, а также номер. В данном примере я использовал номер 100. При входящем звонке будет срабатывать скрипт auth.agi, функционал которого был описан в этой статье про биллинг.
А вот тут можно почитать интересные цитаты, чтобы расслабиться на досуге.
воскресенье, 4 октября 2009 г.
Prometeus поглощает Google
Наткнулся на youtube на интересный видеоролик рассказывающий о будущем Интернета. Не уверен что так будет, но все возможно =)
А вот тут можно почитать поздравления с днем рождения с юмором
понедельник, 14 сентября 2009 г.
Ищем обнаглевших пользователей в организации
# apt-get install netdiagДалее, запускам trafshow на интерфейсе, подключенном к Интернету.
# trafshow -i eth1И наблюдаем, кто выжирает трафик. Идем к этому пользователю и даем ему по шапке =))
среда, 9 сентября 2009 г.
Защита ssh в debian с помощью denyhosts
Я покажу как за несколько минут защитить сервер от подбора паролей[знаю, что тема избитая, но решил написать для людей, кому не интересно долго ковыряться в настройках]. Итак, у вас уже должен быть установлен python. Если нет то устанавливаем:
apt-get install pythonСкачиваем сам скрипт [На момент написания заметки версия 2.6].
wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz/downloadДальше распаковываем архив, заходим в него и запускаем процесс установки[из под root]:
$ tar xvfz DenyHosts-2.6.tar.gzПосле этого необходимо скопировать конфигурационный файл в каталог /etc:
$ cd ./DenyHosts-2.6
# python setup.py install
cp ./denyhosts.cfg-dist /etc/denyhosts.cfgА также файл daemon-control-dist в /usr/sbin/daemon-control:
cp ./daemon-control-dist /usr/sbin/daemon-controlПосле того как все удачно завершилось переходим к конфигурированию /etc/denyhosts.cfg. Т.к. статья расчитана на "немного ленивых админов"[сам из таких =)], то я сразу прикладываю нужный вам конфиг:
debian:/# cat ./denyhosts.cfgДалее нужно открыть файл на редактирование /usr/sbin/daemon-control и внести изменение в несколько первых строк:
SECURE_LOG = /var/log/auth.log
HOSTS_DENY = /etc/hosts.deny
PURGE_DENY =
BLOCK_SERVICE = sshd
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /usr/share/denyhosts/data
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/run/denyhosts.pid
AGE_RESET_VALID=5d
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"Теперь просто стартуем наш denyhosts следующей командой и прописать эту же команду в автозагрузку например в /etc/rc.local:
DENYHOSTS_LOCK = "/var/run/denyhosts.pid"
DENYHOSTS_CFG = "/etc/denyhosts.cfg"
PYTHON_BIN = "/usr/bin/env python"
/usr/sbin/daemon-control start > /dev/hull &Через некоторое время у вас в файле начнут появляться заблокированные IP-адреса, с которых 5 раз[параметр DENY_THRESHOLD_INVALID = 5] был введены логин с паролем.
Замечательная автошкола приглашает всех желающих пройти курсы вождения.
вторник, 1 сентября 2009 г.
Биллинг для asterisk 1.6
1. Голосовое меню[Приветствие, выбор отдела или конкретного сотрудника, авторизация по pin-коду].После авторизации необходимо проверить наличие средств на лицевом счете и перевести звонок на ответственного сотрудника. В случае если средств не достаточно перевести на секретаря, который поможет пополнить[выписать] счет.
2. После разговора провести списание средств.
Поскольку при установке сторонних биллингов требуется учитывать множество нюансов - я решил написать биллинг сам.
Итак, в этой статье я не буду рассказывать как заставить писать логи asterisk в mysql базу. В интернете достаточно информации на эту тему [http://www.voip-info.org/wiki/view/Asterisk+cdr+mysql].
После успешного подключения связки Asterisk+cdr+mysql нам необходимо в этой же базе, куда пишутся логи, создать 2 новые таблицы[назовем ее "organizations" и "tariff"] со следующими полями:
organizations{
id int(11) auto_increment // ID организации
name text // Наименование организации
pin varchar(20) // Пин-код[необходмо обеспечить уникальность]
time int(11) // Оставшееся время
id_tarif int(11) // ID тарифа
}
tariff{
id int(11) auto_increment // ID тарифа
name varchar(50) // Название тарифа
price int(11) // Цена за минуту
descr varchar(300) // Описание
}
Конечно, вы можете добавить свои поля, если видите в этом необходимость. Далее качаете phpagi c официального сайта[http://phpagi.sourceforge.net/]. Распаковывайте файлы в папку /var/lib/asterisk/agi-bin. И в этом же каталоге создаете файл-скрипт с именем auth.php со следующим содержанием[сразу оговорюсь, что скрипт далек от совершенства :)]:
#!/usr/bin/php -q
require('phpagi.php');
function auth($agii)
{
// Определяем номера телефонов. Если абонент недоступен - идет переадресация на сотовый телефон.
$phones = array(
"79110071250" => "000", // Менеждер 1
"79217519838" => "001", // Менеждер 2
...................................................
"79216497787" => "505" // Менежер 505
);
$buffer='';
$dtmfwait=3000;
$result=$agii->fastpass_get_data($buffer,"hello",$dtmfwait,3);
$digits=$result['result'];
//Набран внутренний номер
if(strlen($digits)==3)
{
$agii->exec('Dial',"SIP/$digits");
foreach ($phones as $phone_1 => $phone_2) {
if($phone_2==$digits)
{
$agii->stream_file("net_na_meste");
$agii->exec('Set',"_NUMBER=$phone_1");
$agii->exec('Dial','H323/9999999@prov,,M(bubble),m');
}
}
}
if(strlen($digits)==1)
{
//Соединение с горячей линией 1С [тут авторизация по пин коду]
if($digits=='1')
{
for($i=1;$i<=3;$i++)
{
$agii->stream_file('pin_code');
$result = $agii->get_data('beep', 8000,6);
$code=$result['result'];
if($code=='0')
{
$agii->exec('Dial','SIP/000');
}
else {
$result = mysql_query("select time,id from organizations where pin='$code';");
if (mysql_num_rows($result)==1)
{
while ($row = mysql_fetch_array($result)) {
if($row[0]<=0) //если баланc <0
{
$agii->stream_file("balans_minus");
$agii->exec('Dial','SIP/000');
}
else
{
$agii->exec("Set CDR(userfield)=$row[1]");
mkdir('/home/shares/asterisk/'.$row[1]);
$path='/home/shares/asterisk/'.$row[1].'/'.date("d.m.y.H.i").'.wav';
$agii->exec('MixMonitor',$path.',b');
$agii->exec('Dial','SIP/302,20,tm');
$agii->exec('Dial','SIP/401&SIP/405&SIP/000,,tm');
}
}
}
//даем на ввод пин кода 3 попытки
else
{
$tries=3-$i;
$agii->stream_file('error_pin_code');
if($tries==0)
{
$agii->stream_file('3_error_pin_code');
$agii->exec('Dial','SIP/000');
}
}
}
}
}
//Техподдержка
if($digits=='2')
$agii->exec('Dial','SIP/405');
//Контроль качества
if($digits=='3')
$agii->exec('Dial','SIP/007');
//Секретарь
if($digits=='0')
$agii->exec('Dial','SIP/000');
}
if(strlen($digits)==0) $agii->exec('Dial','SIP/000');
$agii->stream_file("bye");
$agii->exec('Hangup');
return 0;
}
$link = mysql_connect("localhost", "asterisk", "password") or die("Could not connect: " . mysql_error());
mysql_select_db('asterisk', $link) or die ('Can\'t use database : ' . mysql_error());
$agi = new AGI();
$agi->answer();
$agi->exec('NoOp','Starting main module AGI script');
//Запуск основного модуля
auth($agi);
mysql_close($link);
?>
Далее в extensions.conf прописываем что при звонке с внешней линии - идет выполнение скрипта auth.php. [Если будут вопросы как это сделать - спрашивайте в комментах].
Теперь самый интересный вопрос: каким образом произойдет списание средств после разговора? Я очень долго искал информацию как можно выполнить свой скрипт после того как на одной из сторон кладется тубка, но ничего не нашел. А решение оказалось более чем простым. Для реализации списания средств со счета абонента, я использовал crontab. В /etc/crontab добавляется строка:
*/5 * * * * root /var/lib/asterisk/agi-bin/auth-pay.agi
Данной строкой мы каждые 5 минут запускам скрипт auth-pay.agi:
#!/usr/bin/php -q
$link = mysql_connect("localhost", "asterisk", "password") or die("Could not connect: " . mysql_error());
mysql_select_db('asterisk', $link) or die ('Can\'t use database : ' . mysql_error());
$result = mysql_query("SELECT userfield,billsec FROM cdr WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(calldate) <=300 AND userfield!=''") or die(mysql_error());
if (mysql_num_rows($result)>0)
{
while ($row = mysql_fetch_array($result)) {
mysql_query("UPDATE organizations SET time=time-$row[1] WHERE id=$row[0]");
}
}
$user =mysql_num_rows($result);
if ($user==1) {echo "$user User online";} else {echo "$user Users online";}
mysql_close($link);
?>
Данным скриптом мы выбераем все id организации, разговаривавших за последние 5 минут. Берем время разговора и вычитаем из поля time таблицы organizations.
Вот и все! Мини-биллинг готов. Такую схему можно перенести и на другие возможности астериска: например для ограничения звонков не с внешней линией, а с ваших абонентов.
пятница, 7 августа 2009 г.
Проверяем запущен ли asterisk
#!/bin/sh
p=`ps aux | grep asterisk | grep SCREEN | wc -l`
if [ $p -ne 1 ]
then
killall asterisk
/usr/bin/screen -L -d -m -S asterisk /usr/sbin/asterisk -vvvvcd
else
echo 'asterisk is started' > /dev/null
fi
ветеринарная помощь дома
понедельник, 3 августа 2009 г.
uptime
суббота, 4 июля 2009 г.
Как определить какими библиотеками и файлами пользуется программа
debian@localhost# ldd /usr/bin/mcА для того чтобы определить какие файлы открывает программа:
debian@localhost# sudo apt-get install strace
debian@localhost# strace mc
Как узнать какая программа слушает порт
netstat -lnp
Хотите узнать сколько стоит БУ авто , то вам сюда http://auto.irr.ru/ - из рук в руки авто
Установка windows шрифтов
sudo apt-get install msttcorefonts
четверг, 16 апреля 2009 г.
Небольшая заметка по утилите screen
Решением проблемы является утилита screen. В репозитариях она присутствует. Установить ее можно следающим образом:
$sudo apt-get install screenВ моем случае стоит задача запустить сервер ip-телефонии asterisk при загрузке Debian Linux не только в фоне, но и чтобы можно было подключиться к консоли asterisk. Для этого в файле /etc/rc.local я прописал автозапуск следующим образом:
/usr/bin/screen -L -d -m -S asterisk /usr/sbin/asterisk -vvvvcdТеперь у нас asterisk запуститься в отдельной консоли. Возникает вопрос: "как к ней(консоли) подключиться?". А очень просто. Необходимо выполнить команду:
screen -r asteriskЧтобы выйти из консоли необходимо просто нажать сочетание клавишь: зажимаете Ctrl и последовательно "A"->"D". Так мы уводим консоль "asterisk" снова в фоновый режим.
PS Для еще более быстрого переключения в консоль я в файле ".bashrc", который находиться в моем домашнем каталоге прописал алиас:
alias asterscr='screen -r asterisk'Теперь чтобы подключиться к asterisk в косоли можно просто ввести:
#asterscr
вторник, 3 марта 2009 г.
Добавление нового пользователя в mysql
GRANT ALL PRIVILEGES ON testbase.* TO testuser@localhost IDENTIFIED BY 'testpass';
flush privileges;
А тут можно купить бассейн надувной
Обновление MC
dpkg -i mc_4.6.3-1_i386.debВот некоторые комбинации клавиш Midnight Commander:
Alt+Enter, Esc+Enter - Вставить 'текущий объект' в командную строку.Сочетание клавишь взято отсюда.
Alt+p, Esc+p - Вернуть предыдущую выполненную командную строку.
Alt+t, Esc+t - Смена режима работы панели ('Стандартный','Укороченный','Расширенный')
Alt+i, Esc+i - Смена текущего каталога на неактивной панели, на каталог в котором вы находитесь в активной панели.
Alt+n, Esc+n - Вернуть последующую выполненную командную строку.
Alt+a,Esc+a - Посылает в командную строку результат выполнения команды pwd (полный путь до текущего каталога).
Alt+c,Esc+c - Вызывается меню быстрой смены текущего каталога на активной панели.
Alt+h,Esc+h - Вызов меню последних выполненных команд.
Insert - Выделение текущего объекта.
Ctrl+ - Вызывается меню часто используемых каталогов.
Shift+F1 - Вызывается меню быстрого перехода между точками монтирования на левой панели.
Shift+F2 - Вызывается меню быстрого перехода между точками монтирования на правой панели.
F3 - Просмотр файла. Shift+F3 - Просмотр файла raw без учета расширения.
Shift+F4 - Создает новый файл.
Ctrl+o - Скрытие панелей.
Ctrl+s - Быстрый поиск файла или каталога.
Ctrl+Space - Показать размер текущего каталога.
(Ctrl+x)+t (нажимаем Ctrl+x затем отпускаем и нажимаем t) - Вставка всех выделенных объектов в командную строку.
(Ctrl+x)+c (нажимаем Ctrl+x затем отпускаем и нажимаем c) - Просмотр/правка прав доступа текущего объекта.
(Ctrl+x)+o (нажимаем Ctrl+x затем отпускаем и нажимаем o) - Просмотр/правка владельца/группы для текущего объекта.
(Ctrl+x)+l (нажимаем Ctrl+x затем отпускаем и нажимаем o) - Создать жесткую ссылку с текущего объекта.
(Ctrl+x)+s (нажимаем Ctrl+x затем отпускаем и нажимаем s) - Создает символьную ссылку symlink для текущего объекта.
(Ctrl+x)+(Ctrl+s) (нажимаем Ctrl+x затем отпускаем и нажимаем Ctrl+s) - Редактировать symlink.
(Ctrl+x)+j (нажимаем Ctrl+x затем отпускаем и нажимаем j) - Показываем все фоновые задачи.
(Ctrl+x)+q (нажимаем Ctrl+x затем отпускаем и нажимаем q) - Быстрый просмотр содержимого файла на второй панели.
(Ctrl+x)+i (нажимаем Ctrl+x затем отпускаем и нажимаем i) - Быстрый просмотр информации о текущем объекте на второй панели.
(Ctrl+v) - Циклическое переключение режима отображения пробелов и/или табов.
Esc+(Shift+?) - Вызывается меню расширенного поиска файлов.
Alt+o - неактивная панель переходит в каталог на который указывает активная панель.
Alt+. - не показывать или показать скрытые файлы или каталоги (начинаются на точку '.').
Alt+, - Переключить режим отображения панелей (вертикально/горизонтально).
Alt+i - В mcedit отключает "Автовыравнивание возвратом каретки", удобно при вставке отформатированного текста из буфера обмена.
навесы из поликарбоната
Смена MAC адреса в Linux
ifconfig eth0 downЧтобы MAC менялся и при загрузке открываем файл /etc/network/interfaces и к интерфейсу добавляем в качестве параметра к сетевому интерфейсу:
ifconfig eth0 hw ether 00:00:00:00:00:00
/etc/init.d/networking restart
hwaddress ether 00:00:00:00:00:00
А вот тут можно обменять деньги webmoney
Инициализация iptables при загрузке debian
iptables --listСохраняем настройки командой:iptables-save > /etc/firewall.confПосле чего выполняем последовательность командecho "#!/bin/sh" > /etc/network/if-up.d/iptables echo "iptables-restore < /etc/firewall.conf" >> /etc/network/if-up.d/iptables chmod +x /etc/network/if-up.d/iptables
В тут можно узнать цены на услуги colocation в москве
пятница, 27 февраля 2009 г.
Быстро поднимаем DNS-сервер (BIND9) под debian
Дано:
локальная сеть 192.168.0.0/24
сервер: debian 5. Предположим, что у него ip 192.168.0.1
Требуется: поднять dns-сервер, таким образом, что бы для внутренней локалки были как свой домен, так и root-DNS Интернета. Домен 1-го уровня: пусть будет ex. Тогда хосты будут иметь имена test.ex, h1.ex и т.п. Жирным выделено то, что было добавлено к стандартному конфигу.
Решение(все действия из-под root или через sudo; здесь примеры конфигов, и то что нужно поправить в них для решения нашей задачи):
debian:/#apt-get install bind9
debian:/etc/bind# cat ./named.conf.options
acl "corpnets" {192.168.0.0/24; 127.0.0.1;};
options {
directory "/var/cache/bind";
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
allow-query {"corpnets";};
};
debian:/etc/bind# cat ./named.conf
include "/etc/bind/named.conf.options";
zone "." {
type hint;
file "/etc/bind/db.root";
};
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
zone "ex." {
type master;
file "/etc/bind/db.ex";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.ex.rev";
};
include "/etc/bind/named.conf.local";
debian:/etc/bind# touch ./db.ex
debian:/etc/bind# cat ./db.ex
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA ex. root.ex. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.ex.
ns A 127.0.0.1
nikitar A 192.168.0.70
debian A 192.168.0.167
debian:/etc/bind# touch ./db.ex.rev
debian:/etc/bind# cat ./db.ex.rev
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA ex. root.ex. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
70 PTR nikitar.ex
167 PTR debian.ex
debian:/etc# cat /etc/resolv.conf
search ex
nameserver 127.0.0.1
debian:/etc# /etc/init.d/bind9 restart
Stopping domain name service...: bind9.
Starting domain name service...: bind9.
Все. Теперь можно пинговать nikitar.ex и ya.ru.
http://www.biocontrol.ru
вторник, 24 февраля 2009 г.
How to restore Grub from a live Ubuntu cd
This will restore grub if you already had grub installed but lost it to a windows install or some other occurence that erased/changed your MBR so that grub no longer appears at start up or it returns an error.
(This how to is written for Ubuntu but should work on other systems. The only thing to take note of, when you see "sudo" that will mean to you that the following command should be entered at a root terminal.)
Boot into the live Ubuntu cd. This can be the live installer cd or the older live session Ubuntu cds.
When you get to the desktop open a terminal and enter. (I am going to give you the commands and then I will explain them later)
Code:
sudo grubThis will get you a "grub>" prompt (i.e. the grub shell). At grub>. enter these commands
Code:
find /boot/grub/stage1This will return a location. If you have more than one, select the installation that you want to provide the grub files.
Next, THIS IS IMPORTANT, whatever was returned for the find command use it in the next line (you are still at grub>. when you enter the next 3 commands)
Code:
root (hd?,?)Again use the value from the find command i.e. if find returned (hd0,1) then you would enter root (hd0,1)
Next enter the command to install grub to the mbr
Code:
setup (hd0)Finally exit the grub shell
Code:
quit
That is it. Grub will be installed to the mbr.
When you reboot, you will have the grub menu at startup.
Here it is possible to familiarise with the interesting insurance company which is engaged in free auto insurance quotes california car insurance auto quotes online
воскресенье, 15 февраля 2009 г.
Вышел релиз Debian GNU/Linux 5.0 (Lenny).
Основные новшества:
- Обновление программного обеспечения: Linux ядро 2.6.26, Gnome 2.22 (из-за проблем с интеграцией gvfs Nautilus и панель взяты из версии 2.20), KDE 3.5.10 (в бэкпортах доступна сборка KDE 4.1.4), XFCE 4.2, LXDE 0.3.2.1, Xorg 7.3, OpenOffice.org 2.4, Firefox 3, Apache 2.2.9, MySQL 5.0.51, PHP 5.2.6, Ruby 1.8 и 1.9, Python 2.5.2. Всего в репозитории Debian Lenny насчитывается около 22 тыс. пакетов.
- В состав дистрибутива решено включить спорные проприетарные бинарные компонены (firmware). Работа по проверке и чистке неоднозначных бинарных вставок отложена на неопределенный срок. Напомню, что правила проекта Debian запрещают помещение в состав дистрибутива компонент для которых отсутствуют исходные тексты, в то время как у большого числа драйверов из состава Linux ядра имеется привязка к проприетарным бинарным прошивкам, для которых исходные тексты недоступны. Также в репозитории main появились программы с лицензией AGPLv3 (GNU Affero General Public License);
- Init-скрипты переведены на новую систему инициализации с учетом зависимостей, позволяющую организовать параллельный запуск сервисов;
- В состав Lenny, вместо старой архитектуры ARM, включена новая реализация "ARMEL". Порт "Armel" (EABI) теперь предлагается по умолчанию, кроме того Lenny последний релиз Debian в котором поддерживается старый порт "Arm" (ABI).
- Дистрибутив переведен сборку пакетов при помощи GCC-4.3, который теперь используется как компилятор по умолчанию для всех архитектур;
- Осуществлен переход на использование Python 2.5 и Perl 5.10 (изменено более 400 связанных с Perl пакетов). Обновлены версии пакетов ocaml и gcc-defaults. Проведена замена g77 на gfortran реализацию языке Фортран;
- Дистрибутив полностью подготовлен для использования в качестве /bin/sh оболочки dash. Но решено еще не использовать dash в качестве shell по умолчанию, переключиться на dash можно опционально;
- Полностью реализована поддержка интернационализации (I18n) в системе управления конфигурацией Debian, пакеты использующие подсистему debconf полностью поддерживают перевод сообщений на разные языки. Файлы changelog и control во всех пакетах переведены на использование кодировки UTF-8;
- Осуществлен полный уход от использования debmake. Все пакеты в репозиторие 'main' теперь связаны рекомендательными зависимостями только внутри 'main', не ссылаясь на дополнительные репозитории;
- Во всех приложениях которые могут работать через IPv4 добавлена полная поддержка IPv6;
- Проведен аудит приложений на предмет устранения ограничений на размер обрабатываемых файлов (некоторые программы не читали файлы больше 2/4 Гб).
- Добавлена поддержка NFS v4;
- В "main" репозиторий включены бинарные пакеты qmail и djbdns, которые ранее были доступны для пользователей Debian только в исходных текстах или через сторонние репозитории пакетов, из-за лицензионной политики автора;
- Улучшения связанные с безопасностью
- Stack protector - сборка пакетов с включенной в GCC опцией "-fstack-protector" для защиты от атак, направленных на переполнение буфера и стека.
- Fortify Source - активация средства glibc ("-D_FORTIFY_SOURCE=2" ) для дополнительной внутренней проверки выхода за пределы буфера функций, таких как strcpy.
- Format warnings - защита от атак через параметры форматирования строки (format-string), обеспечивается сборкой с параметрами "-Wformat" и "-Wformat-security".
- Address Space Layout Randomization - случайный выбор позиции для размещения стека и области выделяемой через mmap памяти;
- relro - переключение определенных областей памяти, после загрузки исполняемого приложения, в режим только для чтения. Включается через сборку с "-Wl,zrelro";
- Улучшение в инсталляторе:
- В образ установочного компакт диска добавлены модули для PATA/IDE устройств (частично решает проблемы с установкой на машины с дисковыми контроллерами Marvell);
- Улучшена поддержка BRLTTY устройств (точечные дисплеи для слепых);
- Добавлена поддержка загрузки прошивок (firmware) с дополнительных носителей информации (например, с USB Flash или SD/MMC карты) в процессе установки дистрибутива;
- Полная поддержка установки на зашифрованные разделы. Улучшена поддержка работы с шифрованными разделами в режиме восстановления после сбоя;
- Из состава CD удалена директория tools/, в которой были такие утилиты, как loadlin, unzip, gzip.
- Добавлена поддержка создания SATA RAID через dmraid;
- Возможность обновления пакетов, содержащих уязвимости, на ранней стадии установки;
- Для архитектур i386 и amd64 реализовано новое интерактивное меню, выдаваемое при загрузке (syslinux vesamenu);
- Возможность установки из Windows при помощи ПО win32-loader;
- Реализована поддержка установки системы на NAS серверы, основанные на платформе Marvell Orion, базирующейся на архитектуре ARMv5 (например QNAP TS-109, TS-209 и TS-409, HP Media Vault mv2120, Buffalo Kurobox Pro).
- В графическом инсталляторе увеличено удобство выбора языка для локализации: улучшена наглядность, добавлена возможность перехода между диалоговыми окнами, страны разбиты на блоки, привязанные к континентам. При выборе языка, для которого перевод установочных сообщений не доведен до конца, теперь выводится предупреждение с возможностью выбора второго языка, на котором будут выводиться непереведенные тексты;
- Доведено до рабочего состояния монтирование файловых систем в режиме relatime, появившемся в Linux ядре 2.6.20 и в отличии от монтирования ФС с noatime флагом, учет времени чтения файла производится только если прошлый atime старее чем mtime (время изменения) или ctime (время создания);
- Возможность выбора дополнительных действий при использовании установочных образов с KDE или Xfce CD.
- Возможность подключения дополнительных репозиториев с CD/DVD дисков, убранная в “etch”, вновь вернулась в lenny. Это значительно улучшит поддержку i18n в инсталляторе, т.к. не все языковые пакеты умещались на первом CD;
- Установщик, в случае, если сконфигурировано сетевое подключение, будет теперь пытаться синхронизировать часы компьютера с одним из доступных ntp-серверов;
- Прекращена поддержка DECstation (mips), RiscPC (arm) и sparc32 машин.
А вот тут можно прочитать информацию про московские агентства недвижимости
воскресенье, 18 января 2009 г.
Установка ClamAV из исходников(исправление ошибки)
Распаковываем. Конфигурируем...
configureУ кого возникает ошибка
checking for a supported version of gcc... ok (4.0.2)checking for gcc bug PR27603... ok, bug not presentchecking for gcc bug PR28045... configure: error: your compiler has gcc PR28045 bug, use a different compiler, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28045конфигурацию выполняем такой командой:
configure CFLAGS="-O0"
make
make install
цена ремонта
четверг, 15 января 2009 г.
Удаление старых файлов в Linux
find /usr/shares/public -mtime +120 -exec rm \{\} \;Первая найдет все файлы, которые не модифицировались более 120 дней и удалит их. 2-ая подчистит все пустые каталоги.
find /usr/shares/public -type d -exec rmdir -p {\} \;
Hашел на сайте http://sb-megapolis.ru/ КАЛЬКУЛЯТОР КАСКО по всем страховым компаниям
понедельник, 12 января 2009 г.
Организация подключения по SSH через HTTP прокси
Для Debian/Ubuntu:
apt-get install corkscrewСоздаем в домашней директории файл настроек .proxy-auth в который прописываем логин и пароль
для подключения к прокси, в формате "имя:пароль", например:
moi_login:moi_parolНастраиваем проброс туннеля в SSH. В ~/.ssh/config добавляем:
Host *Вместо %h и %p ssh подставит хост и порт удаленной машины
ProxyCommand corkscrew хост_прокси_сервера порт_прокси_сервера %h %p ~/.proxy-auth
Подключаемся к внешнему хосту стандартно:
ssh testhost.ru
панорамные лифты otis
А вот тут можно заказать аренду серверов
вторник, 6 января 2009 г.
Антивирус AVG для Debian Linux
Установка:
1. Идем на сайт AVG.
2. Качаем последнюю версию (на момент публикации 7.5.51).
3. Из-под рута:
debian:~# dpkg -i avg75fld-r51-a1243.i386.deb4. Устанавливаем лицензию:
debian:~# dpkg -i /opt/grisoft/avggui/bin/avggui_update_licinfo.sh5. Делаем ярлык на рабочий стол, например: "gksu avggui"(без кавычек)
6. Обновлять можно через GUI или через консольную команду:
/opt/grisoft/avg7/bin/avgupdate -o7. Сканировать также через GUI или консольную команду:
/opt/grisoft/avg7/bin/avgscan /home/user