25.02.2010
14.02.2010
Автотекст в Microsoft Word
Ярлыки: how to, интересное, ИТ
04.02.2010
Есть ли жизнь на Марсе?... Или как установить Ubuntu в Citrix XenServer
1. Скачать один из уже подготовленных вариантов тимплейтов Ubuntu Server с сайта компании Alyseo
2. Распаковать скачанный тимплейт и экспортировать в Citrix XenServer
3. Развернуть новую виртуальную машину
4. Обновить XenTools аналогично инструкции по обновлению в Vyatta
Приятного полета!
25.01.2010
Установка Openfiler 2.3 в Citrix XenServer 5.5
1. Настроить доступ к интернет из Openfiler
2. Из XenCenter подключить образ с xen-tools
3. В командной строке выполнить следующую последовательность:
openfiler# conary update beecrypt=contrib.rpath.org@rpl:devel
openfiler# conary update rpm=rpm.rpath.org@rpl:devel/4.4.4
openfiler# mount /dev/xvdb /mnt
openfiler# rpm -ivh --nodeps xe-guest-utilities-x.x.x-xxx.i386.rpm
openfiler# umount /mnt
openfiler# reboot
Все. Теперь Citrix XenServer не будет больше ругаться на некорректно установленные xen-tools.
P.S. Рекомендуется провести обновление Openfiler через интернет сразу же после его установки и обновления xen-tools.
Ярлыки: how to, виртуализация, ИТ
11.01.2010
Ребрендинг Zimbra
1. Загрузить файлы оригинального логотипа для правки из директории
/opt/zimbra/jetty/webapps/zimbra/skins/_base/logos
AppBanner.png
AppBanner_white.png
LoginBanner.png
LoginBanner_white.png2. Подготовить свой логотип аналогично оригинальному. Названия файлов необходимо сохранить такими же.
3. Загрузить свой логотип с заменой файлов в директорию
/opt/zimbra/jetty/webapps/zimbra/skins/_base/logosТакже можно изменить иконку Вашего почтового сервера в браузере (favicon.ico). Для этого потребуется:
1. Подготовить изображение для будущей иконки. Важно чтобы все стороны будущей картинки были одинаковыми. Изображение можно сделать прозрачным, используя формат .png, чтобы избежать "белого квадрата". Дальше необходимо создать иконку при помощи сайта и сохранить ее локально.
2. Загрузить новую иконку по адресу:
Для интерфейса пользователя:
/opt/zimbra/jetty/webapps/zimbra/img/logoДля интерфейса администратора:
/opt/zimbra/jetty/webapps/zimbraAdmin/img/logo
07.01.2010
Настройка защищенного NTP сервера на маршрутизаторе Cisco
23.12.2009
Увеличение предельного размера вложения в Zimbra
zmprov mcf zimbraMtaMaxMessageSize xxxxxxxx
Где xxxxxxxx - новый предельный размер в байтах.
Для расчета рекомендую использовать замечательный калькулятор.
22.12.2009
Переход на летнее и зимнее время в маршрутизаторах Cisco
router(config)# clock summer-time UA recurring last Sun Mar 1:00 last Sun Oct 1:00
Этой командой мы говорим маршрутизатору, что для временной зоны UA, переход на летнее время происходит в час ночи последнего воскресенья марта, а на зимнее - в час ночи последнего воскресенья октября
20.11.2009
04.09.2009
Настройка VPN на базе маршрутизатора Vyatta
31.08.2009
Настройка DNS сервера на FreeBSD
28.08.2009
Настройка SSH в Cisco
Настроить SSH в Cisco. Сделать SSH средой по умолчанию для терминальных линий.
Решение:
1. cisco> enable
2. cisco# clock set 17:10:00 28 Aug 2009
3. cisco# configure terminal
4. cisco(config)# ip domain name test.dom
5. cisco(config)# crypto key generate rsa
6. cisco(config)# service password-encryption
7. cisco(config)# username user privilege 15 password 7 Pa$$w0rd
8. cisco(config)# aaa new-model
9. cisco(config)# line vty 0 4
10. cisco(config-line)# transport input ssh
11. cisco(config-line)# logging synchronous
12. cisco(config-line)# exec-timeout 60 0
13. cisco(config-line)# exit
14. cisco(config)# exit
15. cisco# copy running-config startup-config
Пояснение:
1. Входим в привилегированный режим
2. Устанавливаем точное время для генерации ключа
3. Входим в режим конфигурирования
4. Указываем имя домена (необходимо для генерации ключа)
5. Генерируем RSA ключ (необходимо будет выбрать размер ключа)
6. Активируем шифрование паролей в конфигурационном файле
7. Заводим пользователя с именем user, паролем Pa$$w0rd и уровнем привилегий 15
8. Активируем протокол ААА. (до активации ААА в системе обязательно должен быть заведен хотя бы один пользователь)
9. Входим в режим конфигурирования терминальных линий с 0 по 4
10. Указываем средой доступа через сеть по умолчанию SSH
11. Активируем автоматическое поднятие строки после ответа системы на проделанные изменения
12. Указываем время таймаута до автоматического закрытия SSH сессии в 60 минут
13. Выходим из режима конфигурирования терминальных линий
14. Выходим из режима конфигурирования
15. Сохраняем конфигурационный файл в энергонезависимую память
07.08.2009
Восстановление разделов дисков при переустановке OpenFiler 2.3
Делаем так в консоли:
openfiler# cd /root
openfiler# wget http://plastilin.org.ua/files/upload/remake_vol_info
openfiler# chmod 700 remake_vol_info
openfiler# ./remake_vol_infoПосле этого должны подключится все разделы.
Ярлыки: how to
Заставляем дружить Citrix XenServer 5.5 и Openfiler 2.3
1. Хостовые сервера под управлением Citrix XenServer - 2 шт.
2. Общее сетевое хранилише для пула серверов Citrix XenServer (SAN, NFS, FC) - 1 шт.
Если с первым пунктом все, в принципе, понятно, то со вторым придется немного подумать о реализации.
Вариантов может быть два. Либо аппаратное ХД, либо программное ХД. Аппаратные хранилища не всегда оправдывают свою цену, поэтому я решил остановить свой выбор на программной реализации, а именно openfiler 2.3. На странице закачки можно выбрать необходимую версию под свою платформу. Установка достаточно проста. Если все делать согласно инструкции то трудностей возникнуть не должно. После установки, рекомендую сразу же обновить OpenFiler через веб интерфейс, а после разметки дисков сохранить бекап, так как, в последствии, если придется переустановить хранилище оно не увидит уже созданные разделы на дисках.
А теперь о нюансах.
При использовании OpenFiler через iSCSI как общее сетевое хранилище для Citrix XenServer, возникает проблема с "отваливанием" хранилища и не восстановлением с ним связи, в случае перезагрузки хранилища. При этом в самом хранилище нельзя сделать unmap созданному для Citrix LUN.
Лечится эта беда следующим образом:
1. Заходим с консоли хранилища и вводим команду:
openfiler# chkconfig aoe offДанной командой мы отключаем сервис ATA Over Ethernet, который перехватывает на себя управление шарингом дисков по сети и iSCSI сервис уже не может начать управление.
2. Комментируем в редакторе vi или nano, входящих в состав дистрибутива OpenFiler, для версии 2.3, строки 333-337 в файле /etc/rc.sysinit
# if [ -x /sbin/lvm.static ]; then
# if /sbin/lvm.static vgscan --mknodes --ignorelockingfailure > /dev/null 2>&1 ; then
# action $"Setting up Logical Volume Management:" /sbin/lvm.static vgchange -a y --ignorelockingfailure
# fi
# fi3. Перезагружаемся
openfiler# rebootПосле перезагрузки хранилища, оно снова станет доступным для Citrix XenServer и можно начинать создавать виртуальные машины.
П.С.
Альтернативы. Можно же использовать всеми любимый FreeNAS, ведь он тоже позволяет делать iSCSI target..., скажет кто то... Можно но FreeNAS, не делает LUN, а как раз их и требует Citrix XenServer. Также можно использовать как общее хранилище NFS, но для меня iSCSI более унифицированный, хотя по всем показателям NFS меньше грузит систему и практически не проигрывает в скорости iSCSI.
Ярлыки: how to, виртуализация
03.08.2009
Настройка OSPF между маршрутизаторами Cisco
Настроить динамическое обновление маршрутов между двумя маршрутизаторами при помощи OSPF на базе маршрутизаторов Cisco. Маршрутизатор №1 при OSPF анонсирует маршрутизатору №2 маршрут по умолчанию (0.0.0.0/0) и принимает по OSPF от маршрутизатора №2 все маршруты из сети 192.168.0.0/24. Маршрутизатор №2 соответственно наоборот.
Дано:
Маршрутизатор №1
Интерфейс в внешнюю сеть (FastEthernet0/0) - 10.10.10.2/32
Интерфейс к маршрутизатору №2 (FastEthernet0/1) - 192.168.0.1/32
Маршрутизатор №2
Интерфейсы к внутренним ресурсам (FastEthernet0/0) - 192.168.0.4/29
Интерфейс к маршрутизатору №1 (FastEthernet0/1) - 192.168.0.2/32
Решение:
1. На маршрутизаторе №1 проводим следующие настройки:
1. router#configure terminal
2. router(config)#interface FastEthernet0/0
3. router(config-if)#no shutdown
4. router(config-if)#description --==EXTERNAL==--
5. router(config-if)#ip address 10.10.10.2 255.255.255.252
6. router(config-if)#exit
7. router(config)#interface FastEthernet0/1
8. router(config-if)#no shutdown
9. router(config-if)#description --==TO ROUTER 2==--
10. router(config-if)#ip address 192.168.0.1 255.255.255.252
11. router(config-if)#ip ospf message-digest-key 1 md5 Pa$$w0rd
12. router(config-if)#ip ospf network point-to-point
13. router(config-if)#exit
14. router(config)#ip routing
15. router(config)#ip cef
16. router(config)#ip route 0.0.0.0 0.0.0.0 FastEthernet 0/0
17. router(config)#router ospf 1
18. router(config-router)#router-id 192.168.0.1
19. router(config-router)#log-adjacency-changes detail
20. router(config-router)#passive-interface default
21. router(config-router)#no passive-interface FastEthernet0/1
22. router(config-router)#network 192.168.0.0 0.0.0.3 area 0.0.0.0
23. router(config-router)#default-information originate always
24. router(config-router)#exit
25. router(config)#exit
26. router#copy running-config startup-config
где:
1. Входим в режим конфигурирования маршрутизатора
2. Входим режим конфигурирования интерфейса в внешнюю сеть
3. Включаем интерфейс
4. Назначаем описание интерфейса
5. Назначаем IP адрес и маску подсети
6. Выходим из режима конфигурирования интерфейса в внешнюю сеть
7. Входим режим конфигурирования интерфейса к маршрутизатору №2
8. Включаем интерфейс
9. Назначаем описание интерфейса
10. Назначаем IP адрес и маску подсети
11. Назначаем ключ аутентификации OSPF на данном интерфейсе (Ключи на обоих сторонах должны быть одинаковы)
12. Так как планируется построение OSPF только между 2 маршрутизаторами, явно указываем среду передачи
13. Выходим из режима конфигурирования внешнего интерфейса
14. Включаем маршрутизацию между интерфейсами
15. Включаем режим Cisco Express Forwarding (При включенном режиме уменьшается нагрузка на процессор маршрутизатора)
16. Устанавливаем маршрут по умолчанию. (Без него не будет работать)
17. Входим в режим конфигурирования протокола OSPF с номером 1
18. Назначаем идентификатор маршрутизатора
19. Включаем журналирование протокола и выставляем его уровень
20. Включаем принудительное подавление OSPF обновлений на всех интерфейсах
21. Разрешаем обмен OSPF обновлениями через интерфейс FastEthernet0/1
22. Анонсируем по OSPF сеть 192.168.0.0/32 в области 0 (BACKBONE) (Будут проаносированы все подсети попадающие под маску /32)
23. Включаем постоянную генерацию маршрута по умолчанию
24. Выходим из режима конфигурирования протокола OSPF
25. Выходим из режима конфигурирования маршрутизатора
26. Сохраняем конфигурацию в энергонезависимую память
2. На маршрутизаторе №2 проводим следующие настройки:
1. router#configure terminal
2. router(config)#interface FastEthernet0/0
3. router(config-if)#no shutdown
4. router(config-if)#description --==CLIENTS==--
5. router(config-if)#ip address 192.168.0.4 255.255.255.252
6. router(config-if)#exit
7. router(config)#interface FastEthernet0/1
8. router(config-if)#no shutdown
9. router(config-if)#description --==TO ROUTER 1==--
10. router(config-if)#ip address 192.168.0.2 255.255.255.252
11. router(config-if)#ip ospf message-digest-key 1 md5 Pa$$w0rd
12. router(config-if)#ip ospf network point-to-point
13. router(config-if)#exit
14. router(config)#ip routing
15. router(config)#ip cef
16. router(config)#router ospf 1
17. router(config-router)#router-id 192.168.0.2
18. router(config-router)#log-adjacency-changes detail
19. router(config-router)#passive-interface default
20. router(config-router)#no passive-interface FastEthernet0/1
21. router(config-router)#network 192.168.0.0 0.0.0.255 area 0.0.0.0
22. router(config-router)#exit
23. router(config)#exit
24. router#copy running-config startup-config
где:
1. Входим в режим конфигурирования маршрутизатора
2. Входим режим конфигурирования интерфейса к внутренним ресурсам
3. Включаем интерфейс
4. Назначаем описание интерфейса
5. Назначаем IP адрес и маску подсети
6. Выходим из режима конфигурирования интерфейса к внутренним ресурсам
7. Входим режим конфигурирования интерфейса к маршрутизатору №1
8. Включаем интерфейс
9. Назначаем описание интерфейса
10. Назначаем IP адрес и маску подсети
11. Назначаем ключ аутентификации OSPF на данном интерфейсе (Ключи на обоих сторонах должны быть одинаковы)
12. Так как планируется построение OSPF только между 2 маршрутизаторами, явно указываем среду передачи
13. Выходим из режима конфигурирования внешнего интерфейса
14. Включаем маршрутизацию между интерфейсами
15. Включаем режим Cisco Express Forwarding (При включенном режиме уменьшается нагрузка на процессор маршрутизатора)
16. Входим в режим конфигурирования протокола OSPF с номером 1
17. Назначаем идентификатор маршрутизатора
18. Включаем журналирование протокола и выставляем его уровень
19. Включаем принудительное подавление OSPF обновлений на всех интерфейсах
20. Разрешаем обмен OSPF обновлениями через интерфейс FastEthernet0/1
21. Анонсируем по OSPF сеть 192.168.0.0/24 в области 0 (BACKBONE) (Будут проаносированы все подсети попадающие под маску /24)
22. Выходим из режима конфигурирования протокола OSPF
23. Выходим из режима конфигурирования маршрутизатора
24. Сохраняем конфигурацию в энергонезависимую память
Примечание:
Управление процессом OSPF происходит при помощи следующих команд:
1. router#clear ip ospf process
2. router#show ip ospf
3. router#show ip ospf neighbor
4. router#show ip route ospf
Где:
1. Перезапуск OSPF процесса
2. Просмотр информации о состоянии OSPF процесса
3. Просмотр информации о OSPF соседях
4. Просмотр маршрутов полученных по OSPF
Настройка NAT и шейпера на FreeBSD
Настроить NAT для локальной сети используя FreeBSD и ограничить скорость доступа при помощи шейпера на аплоад 10 мегабит в секунду, на даунлоад 1 мегабит в секунду.
Дано:
Внутренний интерфейс de0 (192.168.0.1/24)
Внешний интерфейс de1 (10.10.10.2/32)
Решение:
1. Пересобираем ядро с такими опциями:
1. options IPFIREWALL
2. options IPFIREWALL_VERBOSE
3. options IPFIREWALL_VERBOSE_LIMIT=10
4. options IPFIREWALL_DEFAULT_TO_ACCEPT
5. options IPDIVERT
6. options DUMMYNET
7. options HZ=1000
где:
1. Активируем Firewall при загрузке
2. Включаем возможность журналирования
3. Ограничиваем журналирование до 10 записей в секунду
4. По умолчанию разрешаем прохождение любого трафика, тоесть ничего не блокируем
5. Включаем демон NAT
6. Включаем демон шейпера
7. Устанавливаем таймер точности работы для шейпера (Начинает интенсивнее использоваться процессор)
2. Дописываем в файл /etc/rc.conf следующие строки:
1. ifconfig_de0="inet 192.168.0.1 netmask 255.255.255.0 up media 100baseTX mediaopt full-duplex"
2. ifconfig_de1="inet 10.10.10.2 netmask 255.255.255.252 up media 100baseTX mediaopt full-duplex"
3. defaultrouter="10.10.10.1"
4. gateway_enable="YES"
5. firewall_enable="YES"
6. firewall_type="firewall"
7. firewall_quiet="YES"
8. firewall_logging="YES"
9. firewall_script="/usr/local/etc/rc.firewall"
10. natd_enable="YES"
11. natd_flags="-f /etc/natd.conf"
где:
1. Конфигурируем внутренний интерфейс
2. Конфигурируем внешний интерфейс
3. Указываем шлюз по умолчанию
4. Активируем режим пересылки пакетов между интерфейсами
5. Активируем Firewall
6. Указываем тип Firewall (Идентификатор. Мы используем свои настройки, поэтому выбираем название отличное от стандартных типовых - OPEN, CLIENT, SIMPLE, CLOSED, UNKNOWN)
7. Активируем "тихий" режим Firewall (при загрузке/перезагрузке правил не будут выдаваться предупредительные сообщения)
7. Активируем режим журналирования
8. Указываем путь к файлу для загрузки правил Firewall
10. Активируем демон natd
11. Указываем путь к файлу для загрузки опций natd
3. Создаем скрипт /usr/local/etc/rc.firewall и добавляем в него следующие строки:
1. #!/bin/sh
2. ipfw -f flush
3. ipfw -f pipe flush
4. ipfw add 100 allow ip from any to any via lo0
5. ipfw add 200 deny ip from any to 127.0.0.0/8
6. ipfw add 300 deny ip from 127.0.0.1/8 to any
7. ipfw add 400 divert natd all from any to any via de1
8. ipfw add 500 pipe 500 ip from 192.168.0.0/24 to any via de0
9. ipfw add 600 pipe 600 ip from any to 192.168.0.0/24 via de1
10. ipfw pipe 500 config bw 1024Kbit
11. ipfw pipe 600 config bw 10240Kbit
12. ipfw add 65535 allow ip from any to any
где:
1. Указываем интерпретатор в начале скрипта
2. Очищаем правила Firewall
3. Очищаем пайпы (трубы) шейпера
4. Добавляем разрешающее правило 100 для прохода всего трафика через лупбек
5. Добавляем запрещающее правило 200 для доступа к сети 127.0.0.0/8
6. Добавляем запрещающее правило 300 для доступа из сети 127.0.0.0/8
7. Добавляем разрешающее правило 400 для запуска NAT через интерфейс de1
8. Добавляем правило 500, добавляющее пайп 500 от сети 192.168.0.0/24 через интерфейс de0
9. Добавляем правило 600, добавляющее пайп 600 к сети 192.168.0.0/24 через интерфейс de1
10. Конфигурируем пайп соответствующий номеру 500. Устанавливаем скорость 1 мегабит
11. Конфигурируем пайп соответствующий номеру 600. Устанавливаем скорость 10 мегабит.
3. Создаем файл /etc/natd.conf, описывающий настройки демона natd
1. use_sockets yes
2. same_ports yes
3. unregistered_only yes
4. interface de1
где:
1. Выделять для NAT соединений сокеты. Используется больше ресурсов, но уменьшается вероятность некорректной трансляции
2. Пытаться сохранять тот же номер порта если данные для исходящих соединений изменились, полезно для протокола RPC
3. Транслировать только "серые" адреса, читать RFC 1918
4. Указываем имя исходящего NAT интерфейса, полезно в случае если на внешнем интерфейсе IP изменяется динамически.
4. Управляем IPFW при помощи команд
1. freebsd# /etc/rc.d/ipfw start
2. freebsd# ipfw list
3. freebsd# ipfw show
4. freebsd# ipfw pipe list
5. freebsd# ipfw -f flush
6. freebsd# ipfw -f pipe flush
где:
1. Стартуем IPFW. Также доступны опции restart, stop, status
2. Просмотр правил IPFW
3. Просмотр правил IPFW с счетчиками трафика
4. Просмотр пайпов
5. Очистка в тихом режиме правил IPFW
6. Очистка в тихом режиме пайпов
01.08.2009
Настройка NAT и шейпера на маршрутизаторе Cisco
Настроить NAT для локальной сети 192.168.0.0/24 на новом маршрутизаторе и обрезать скорость на даунлоад 10 Мегабит на аплоад 1 Мегабит.
Дано:
Внутренний интерфейс (FastEthernet 0/0) - 192.168.0.1/24
Внешний интерфейс (FastEthernet 0/1) - 10.10.10.2/32
Решение:
1. router#configure terminal
2. router(config)#interface FastEthernet 0/0
3. router(config)#no shutdown
4. router(config-if)#description --==Internal==--
5. router(config-if)#ip address 192.168.0.1 255.255.255.0
6. router(config-if)#ip nat inside
7. router(config-if)#rate-limit input 1024000 192000 384000 conform-action transmit exceed-action drop
8. router(config-if)#rate-limit output 10240000 1920000 3840000 conform-action transmit exceed-action drop
9. router(config-if)#exit
10. router(config)#interface FastEthernet 0/1
11. router(config)#no shutdown
12. router(config-if)#description --==External==--
13. router(config-if)#ip address 10.10.10.2 255.255.255.252
14. router(config-if)#ip nat outside
15. router(config-if)#exit
16. router(config)#ip routing
17. router(config)#ip cef
18. router(config)#ip route 0.0.0.0 0.0.0.0 FastEthernet 0/1
19. router(config)#access-list 10 permit 192.168.0.0 0.0.0.255
20. router(config)#ip nat inside source list 10 interface FastEthernet0/0 overload
21. router(config)#exit
22. router#copy running-config startup-config
Пояснение:
1. Входим в режим конфигурирования маршрутизатора
2. Входим режим конфигурирования внутреннего интерфейса
3. Включаем интерфейс
4. Назначаем описание интерфейса
5. Назначаем IP адрес и маску подсети
6. Указываем, что это внутренний интерфейс для NAT
7. Задаем ограничение скорости на вход интерфейса (Аплоад для клиентов)
8. Задаем ограничение скорости на выход интерфейса (Даунлоад для клиентов)
9. Выходим из режима конфигурирования внешнего интерфейса
10. Входим режим конфигурирования внутреннего интерфейса
11. Включаем интерфейс
12. Назначаем описание интерфейса
13. Назначаем IP адрес и маску подсети
14. Указываем, что это внешний интерфейс для NAT
15. Выходим из режима конфигурирования внешнего интерфейса
16. Включаем маршрутизацию между интерфейсами
17. Включаем режим Cisco Express Forwarding (При включенном режиме уменьшается нагрузка на процессор маршрутизатора)
18. Устанавливаем маршрут по умолчанию. (Без него не будет работать)
19. Создаем список доступа с номер 10, в котором разрешаем подсеть 192.168.0.0 с обратной маской 0.0.0.255
20. Включаем NAT и разрешаем доступ из списка номер 10 через интерфейс FastEthernet 0/0 в режиме трансляции всех внутренних адресов в один внешний
21. Выходим из режима конфигурирования маршрутизатора
22. Сохраняем конфигурацию в энергонезависимую память
Примечания:
1. Для расчета данных по рекомендациям Cisco для ограничения скорости используются 3 числа, которые расчитываются по следующей формуле:
Число 1 = Количество бит в секунду задается пользователем
Число 2 = Число 1 / 8 * 1,5
Число 3 = Число 2 * 2
2. Информацию о работе NAT можно просмотреть командами:
router#show ip nat statistics (Общее состояние)
router#show ip nat translations (Активные NAT трансляции)
17.07.2009
Нормальная остановка и перезагрузка FreeBSD в Hyper-V
> Get-WmiObject -Namespace root\virtualization msvm_computersystem | Format-Table ElementName, ProcessId
> kill номер процесса
pcicfgregs *cfg = &dinfo->cfg;
Ярлыки: freebsd, how to, windows, виртуализация
16.07.2009
Корректное отображение содержимого файла помощи Hyper-V на русском
07.07.2009
Вывод логов BIND в отдельный файл в FreeBSD
04.07.2009
Скрытие иконки Opera из системного трея
opera:config
После этого в строке поиска настроек набрать:
Show E-mail Client
Далее нужно снять галочку и перезапустить броузер..
Ярлыки: how to
01.07.2009
Медленный запуск Midnight Commander в FreeBSD
domain dom.local
24.06.2009
Затирание свободного места на жестком диске под управлением Windows
Пример команды для затирания свободного места на диске с:\
02.06.2009
Полное удаление сетевого адаптера из системы
- В меню Пуск выберите команду Выполнить, введите cmd.exe и нажмите клавишу ВВОД.
- Введите команду set devmgr_show_nonpresent_devices=1 и нажмите клавишу Enter.
- Затем введите start devmgmt.msc и нажмите клавишу Enter.
- В меню Вид выберите пункт Показать скрытые устройства.
- Разверните дерево сетевых адаптеров.
- Щелкните правой кнопкой мыши затененный сетевой адаптер и выберите пункт Удалить.
31.05.2009
10.05.2009
Установка и настройка Subversion (SVN) сервера под управлением FreeBSD
Система управления версиями (от англ. Version Control System или Revision Control System) — программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение и многое другое.
Есть несколько таких систем. Мы будем использовать Subversion.
1. Установка
freebsd# cd /usr/ports/devel/subversion
freebsd# make && make install && make clean
Конфигурационное меню оставляем по умолчанию.
freebsd# rehash
2. Настройка
Создадим каталог для хранения репозитория:
freebsd# mkdir -p /home/svn/repository
Добавим группу и пользователя svn для разграничения привилегий к файлам Subversion:
freebsd# pw group add svn
freebsd# pw user add svn -g svn -s /usr/sbin/nologin -d /home/svn/repositories/
Добавим в файл /etc/rc.conf добавляем следующие строки:
# Стартуем SVN при загрузке
svnserve_enable="YES"
# Указываем путь к каталогу, где будет хранится репозиторий
svnserve_data="/home/svn/repository"
# Указываем пользователя и группу для определения привелегий доступа к файлам SVN
svnserve_user="svn"
svnserve_group="svn"
Создадим репозиторий:
freebsd# svnadmin create /home/svn/repository/
Выставим права:
freebsd# chown -R svn:svn /home/svn/
Настроим авторизированный доступ к репозиторию:
freebsd# cd /home/svn/repository/conf/
freebsd# ee svnserve.conf
Раскомментируем, изменяем строки, как показано ниже, и сохраняем файл.
anon-access = none
auth-access = write
password-db = passwd
Создаем пользователей, для доступа к SVN:
freebsd# cd /home/svn/repository/conf
freebsd# ee passwd
Добавляем нужное количество пользователей в формате логин = пароль и сохраняем:
developer = Pa$$w0rd
Стартуем SVN сервер:
freebsd# /usr/local/etc/rc.d/svnserve start
Вот и все, в принципе. Ваш SVN сервер настроен, теперь можно взять SVN клиент и попробовать подключиться к серверу. Если настройки произведены правильно, то в клиенте выпадет окошко для ввода логина/пароля.
P.S. Для тех кто разрабатывает веб проекты и хранит репозиторий на том же сервере где находится веб сервер, для удобства, можно сделать автоматическую публикацию текущего состояния разрабатываемого проекта на веб сервере после утверждения изменений в SVN клиенте. Для этого необходимо сделать следущее:
freebsd# cp /home/svn/repository/hooks/post-commit.tmpl /home/svn/repository/hooks/post-commit
freebsd# chmod 755 /home/svn/repository/hooks/post-commit
freebsd# ee /home/svn/repository/hooks/post-commit
Привести содержимое файла к следующему виду.
#!/bin/sh
/usr/local/bin/svn up '/usr/local/www/nginx/vhosts/plastilin.org.ua/html' --username 'developer' --password 'Pa$$w0rd'
Теперь после проведения коммита последняя версия проекта будет публиковаться на веб сервере.
13.04.2009
Ошибка 0x80072EE2 при установке Google Chrome
Ярлыки: how to
09.04.2009
Polling в FreeBSD
- Режим прерывания (IRQ):
По умолчанию сетевой интерфейс работает в режиме прерывания (IRQ). Выглядит это примерно так:
1. Интерфейс отправляет или получает пакет.
2. Интерфейс генерирует прерывание (IRQ) в ответ на это событие.
3. ЦП останавливает свою текущую деятельность, чтобы обработать прерывание.
4. После обработки прерывания сгенерированого интерфейсом ЦП продолжает свою работу.
Такой вариант обработки пакетов сетевым интерфейсом подходит для низкой активности сети (до 10 тысяч пакетов в секунду). При увеличении количества пакетов для обработки интерфейсом начнется их отбрасывание, в связи с тем что сам интерфейс не будет успевать генерировать прерывания или ЦП не будет успевать обрабатывать их...
Вывод: Система неуправляема. Плюс низкая пропускная способность.
- Режим опроса (Polling):
Итак что же такое поллинг (polling)... Поллинг в FreeBSD это режим опроса системой сетевого интерфейса с определенной частотой на наличие на нем сетевых пакетов. Работает это приблизительно таким образом:
Система отключает на сетевом интерфейсе прерывания (IRQ), а вместо этого сама опрашивает сетевой интерфейс на наличие в его буфере сетевых пакетов. И если такие присутствуют - она их обрабатывает. Выглядит это примерно так:
1. Сетевой интерфейс работает в режиме прерываний.
2. При приеме/отправке пакета, сетевой интерфейс регистрирует себя в poll списке и отключает прерывания.
3. Через определенные таймауты система опрашивает интерфейс на предмет новых пакетов.
Вывод: За счет режима опроса снимается нагрузка на процессор, увеличивается пропускная способность, потому как на каждый пакет не нужно генерировать прерывание, но увеличивается возможность потери пакетов за счет того что система может не в нужный момент времени опросить устройство.
Есть один момент, на который нужно обратить внимание. Не все сетевые адаптеры поддерживают режим поллинга список можно просмотреть на странице мануала к поллингу
Настройка:
1. Пересобираем ядро с опциями:
options DEVICE_POLLING (включение режима опроса)
options HZ=1000 (таймер проверки 1000 равен пропускной способности 100 Мбитной сети подробнее. Тоесть если скорость больше 100 мегабит нужно выставить большее значение)
2. Включаем поддержку поллинга на интерфейсе
В старых версиях поллинг включается через файл /etc/sysctl.conf
нужно добавить строку
kern.polling.enable=1
В новых версиях включается через Ifconfig
freebsd# ifconfig em0 polling
Для автозагрузки поллинга в файле /etc/rc.conf прописываем:
ifconfig_em0="polling"
также не забываем добавить в этой строке сетевые параметры типа IP адрес, маска подсети и тд.
3. Тюнингуем параметры polling`a
Все настройки производятся в файле /etc/sysctl.conf
kern.polling.user_frac - определяет использование процессорного времени между ядром и пользовательскими процессами. Чем меньше значение, тем меньше времени будет уделено пользовательским процессам и больше ядру. Стоит заметить, что если у одного из уровней задач (пользовательский) не имеет достаточно работы, то остатки процессорного времени переходят другому (ядру), так что процессорное время не теряется. По умолчанию, значение этой переменной - 50. Меньшее значение стоит выставлять на маршрутизаторах. Допустимый предел значений от 1 до 99.
kern.polling.handlers - определяет количество устройств, которые могут быть зарегистрированы как polling.
kern.polling.burst - максимальное количество пакетов, которое может быть обработано с одного устройства за каждый проход. Это значение подстраивается ядром, основываясь на текучем уровне загрузки, мощности процессора, потока трафика и т.д.
kern.polling.burst_max - определяет верхнюю границу kern.polling.burst.
kern.polling.reg_frac - в процессе опроса не проверяется состояние регистров на ошибки, текущее состояние связи и.т.д., это значение указывает, как часто (каждые reg_frac / HZ секунд) проводить подобные проверки. Значение по умолчанию - 20.
kern.polling.idle_poll - определяет, использовать ли опрос устройств в свободное время. Нет причин отключать его, разве что для проведения тестов или при возникновении ошибок. По умолчанию включено.
intr_queue_maxlen - очередь для входящих пакетов (аналогична backlog под Linux). Изменяется при помощи sysctl: net.inet.ip.intr_queue_maxlen. Значение по умолчанию = 50, что очень мало.
intr_queue_drops - статистика по работе intr_queue_maxlen, отображает количество отброшенных пакетов из очереди. Посмотреть её можно через sysctl: net.inet.ip.intr_queue_drops.
net.inet.tcp.rfc1323 - контролирует работу временной марки и масштабируемого окна. (0 - выключено, 1 - включено)
kern.ipc.maxsockbuf - максимальный размер TCP буфера.
net.inet.tcp.recvspace - размер TCP буфера для приема. Влияет на размер "скользящего окна".
net.inet.tcp.sendspace - размер TCP буфера для отправки. Влияет на размер "окна переполнения".
Например:
net.inet.ip.intr_queue_maxlen=5000
kern.ipc.maxsockbuf=8388608
net.inet.tcp.sendspace=3217968
net.inet.tcp.recvspace=3217968
net.inet.tcp.rfc1323=1
Много информации было почерпнуто отсюда. За что автору спасибо.
03.04.2009
Отключение вывода информации ядра при загрузке FreeBSD
1. В файле /etc/ttys находим строку
ttyd0 "/usr/libexec/getty std.9600" dialup off secure
изменяем на
ttyd0 "/usr/libexec/getty std.9600" vt100 on secure
2. В файле /boot/loader.conf добавляем следующую строку
console="comconsole"
3. Перезагружаемся и видим только старт загрузчика...
02.04.2009
Вывод Syslog на 7 консоль FreeBSD
ttyv7 "/usr/libexec/getty Pc" cons25r on secure
и изменяем значение on на off. Теперь можно перенаправить Syslog. Для этого в файле /etc/syslog.conf
находим строку:
.*err;kern.warning;auth.notice;mail.crit /dev/console
и приводим к виду:
*.*.err;kern.warning;auth.notice;mail.crit /dev/ttyv8
Перезагружаем Syslog:
freebsd# /etc/rc.d/syslogd restart
Комбинацией Alt+F8 переходим на 7 консоль и видим журнал системы
Украшение FreeBSD
Увеличение разрешающей способности в FreeBSD:
- Пересобрать ядро с опциями:
options VESA
options SC_PIXEL_MODE
Также можно изменить цвет шрифта по умолчанию добавив в ядро:
options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)
Что означает: Зеленый шрифт на черном фоне.
- Добавить в /etc/rc.conf строку:
allscreens_flags="MODE_xxx"
Например для отображения 800х600 будет режим MODE_320
Режим отображения можно выбрать просмотрев варианты командой:
freebsd# vidcontrol -i mode
Изменение стандартного курсора на мигающий:
- Добавить в /etc/rc.conf строку:
allscreens_flags="-с destructive"
В /etc/rc.conf параметр allscreens_flags может быть только один. Тоесть для того чтобы одновременно сделать мигающий курсор, изменить разрешение экрана и изменить цвета консоли, нужно привести строку allscreens_flags к виду:
allscreens_flags="-с destructive lightgreen black MODE_320"
Где:
MODE_xxx - режим отображения
-c destructive - мигающий курсор
2. Украшение загрузки
Добавление заставки (SplashScreen) при загрузке:
В файле /boot/loader.conf добавить строки:
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"
Добавить в каталог /boot файл картинки-заставки в формате .bmp, разрешением 256 цветов и размером, который установлен в режиме отображения в параметре allscreens_flags файла /etc/rc.conf (Для более ровного отображения) Например если у Вас задан режим MODE_320, то картинка должна быть размером 800х600)
Изменение логотипа BSD при загрузке:
В файле /boot/loader.conf добавить строку:
loader_logo="beastie"
При загрузке вместо буковок BSD появится, привычный по предыдущим версиям, чертенок.
После загрузки будет видна только строка для авторизации.
Изменение времени отображения меню загрузки:
В файле /boot/loader.conf добавить строку:
autoboot_delay="*"
Где * - время отображения в секундах.
01.04.2009
Обновление портов FreeBSD через прокси-сервер
Если запускаем обновление впервые:
freebsd# portsnap fetch
freebsd# portsnap extract
freebsd# portsnap update
Если уже единожды запускали:
freebsd# portsnap fetch
freebsd# portsnap update
Но вот откуда ни возьмись у нас на пути повился пресловутый прокси-сервер, да еще и с авторизацией... Что же делать...? Все довольно просто
freebsd# ee /etc/csh.cshrc
Добавляем туда несколько строк:
setenv HTTP_PROXY http://usename:password@xxx.xxx.xxx.xxx:yyyy
setenv FTP_PROXY http://username:password@xxx.xxx.xxx.xxx:yyyy
Где:
xxx.xxx.xxx.xxx - IP адрес прокси-сервера
yyyy - порт прокси-сервера
username - имя пользователя
password - пароль пользователя
После этого можно пробовать запускать обновления...
31.03.2009
Перекомпиляция ядра FreeBSD
1. Установить исходники системы. Для этого установить диск с FreeBSD и выполнить:
freebsd# mount /cdrom
freebsd# cd /cdrom/7.0-STABLE-200805/src/
freebsd# ./install.sh all
2. Для перестраховки создать отдельную директорию с будущим ядром, скопировать туда оригинал ядра и создать на него символическую ссылку для последующей компиляции.
freebsd# mkdir /root/kernel
freebsd# cd /root/kernel
freebsd# cp /usr/src/sys/i386/conf/GENERIC /root/kernel/MYKERNEL
freebsd# ln -s /root/kernel/MYKERNEL /usr/src/sys/i386/conf/MYKERNEL
3. Добавить или удалить компоненты ядра, не забыв изменить пункт ident на новое имя ядра
ident MYKERNEL
4. Собрать ядро
freebsd# cd /usr/src/
freebsd# make buildkernel KERNCONF=MYKERNEL
5. Установить ядро
freebsd# make installkernel KERNCONF=MYKERNEL
6. Перезагрузиться
freebsd# reboot
Или эту процедуру можно проделать альтернативным, на мой взгляд, более удобным способом:
Пункты 1, 2, 3 - идентичны. Поправка: Для сборки ядра нижеописанным способом, достаточно, через Sysinstall, установить только исходники самого ядра, а именно /src/sys
4. Создаем конфигурацию ядра
freebsd# cd /usr/src/sys/i386/conf/
freebsd# /usr/sbin/config MYKERNEL
5. Переходим в папку с созданой конфигурацией ядра
freebsd# cd ..
frebsd# cd /compile/MYKERNEL
6. Собираем ядро
freebsd# make cleandepend
freebsd# make depend
freebsd# make
freebsd# make install
7. Перезагружаемся
freebsd# reboot
Основной источник
26.03.2009
Сброс пароля в маршрутизаторах Cisco
1. При включении питания маршрутизатора в терминальной программе например Putty выполнить комбинацию Ctrl+Break
2. Войти в режим Rommon (Режим восстановления)
3. Набрать команду confreg 0x2142
4. Набрать команду reload
5. После перезагрузки (Маршрутизатор будет загружен со сброшеными параметрами) пропустить инициализационный диалог ответив [NO]
6. Выполнить команду enable
7. Выполнить команду copy runnig-config startup-config
8. Выполнить команду configure terminal
9. Выполнить команду config-register 0x2102
10. Выполнить команду exit
11. Выполнить команду reload
После этих манипуляций маршрутизатор будет восстановлен к заводским установкам.
17.02.2009
Создание дополнительного петлевого интерфейса в FreeBSD
ifconfig lo* create
Для того чтобы созданный loopback автоматически поднимался при загрузке/перезагрузке системы, в файле rc.conf нужно дописать
cloned_interfaces="lo*"
Где:
* - номер loopback`а в системе.
Необходимо учесть, что интерфейс lo0 автоматически создается системой.
16.02.2009
Настройка Watchquagga под FreeBSD
watchquagga_enable="YES"
watchquagga_flags="-dz -R '/usr/local/etc/rc.d/quagga restart' * * *"
Где:
-d - Параметр запуска в режиме демона
-z - Параметр перезапуска демонов маршрутизации в случае если один или больше не отвечают на опрос но запущены
-R - Параметр перезапуска всех демонов маршрутизации если один или больше не доступны для опроса но мониторятся.
* * * - Перечисление через пробел демонов маршрутизации для мониторинга (напр. zebra bgpd ospf)
28.01.2009
Меню порта в FreeBSD
1. Перейти в директорию с портом
2. Выполнить команду make
Если мы компилируем порт впервые, тогда у нас может высветится текстовое меню опций сборки порта, по типу Sysinstall, если же мы пересобираем заново уже ранее компилированый порт, то такое меню больше не покажется..., а с помощью него довольно удобно выбирать опции для компилирования порта.
Для того чтобы вызвать снова вызвать такое меню необходимо набрать команду
make config
Ну а если Мы уже единожды вызывали такое меню и хотим сбросить настройки, которые были выбраны, необходимо выполнить команду
make rmconfig
25.01.2009
Дефолтный маршрут в Zebra
ip route 0.0.0.0 0.0.0.0 ***.***.***.***
Где ***.***.***.*** - IP следующего следующего маршрутизатора, через который наш маршрутизатор будет выходить в сеть.
10.01.2009
Изменение MAC адреса в FreeBSD
ifconfig * down
2. Изменяем MAC
ifconfig * link ether **:**:**:**:**:**
3. Включаем интерфейс
ifconfig * up
Для того чтобы смена MAC адреса проходила автоматически при загрузке/перезагрузке системы необходимо в файле rc.conf добавить строку:
ifconfig_*="inet xxx.xxx.xxx.xxx netmask yyy.yyy.yyy.yyy"
ifconfig_*_alias**="ether **:**:**:**:**:**"
Где:
* - Название физического интерфейса (напр.: le0);
** - Номер синонима интерфейса (алиаса), связанного с физическим. (напр.: alias0);
xxx.xxx.xxx.xxx - IP адресс интерфейса;
yyy.yyy.yyy.yyy - Сетевая маска;
**:**:**:**:**:** - Новый Mac адресс.
27.12.2008
Использование Telnet команд при работе с SMTP и POP3 серверами.
Очень часто для того чтобы проверить работоспособность СМТП или ПОП3 сервера, требуется отправить или принять почтовое сообщение... А как это сделать без наличия web интерфейса или почтовой программы?... В этом нам поможет горячо любимый всеми Telnet.
Вводимые команды делятся на 2 части:
1 - основная (значение строгое, не изменяемое), например mail from:, list
2 - дополнительная (значение может изменяться), например имя подключаемого пользователя .
SMTP
1. telnet mail.example.dom 25
1.1 220 Wellcome to mail.example.dom
2. helo mail.example.dom
2.1 250 mail.example.dom
3. mail from: mail@example.dom
3.1 250 Ok
4. rcpt to: mail@example.dom
4.1 250 Ok
5. data
5.1 354 End data with
5.2 subject: Test Message
5.3 Sample Test Text
5.4
5.5 250 Ok: queued as 9CF7131E939
6. quit
6.1 221 Bye
Что обозначают вводимые команды:
1. Соединяемся с почтовым серевером
1.1 Уведомление об успешном выполнении команды
2. Вводим приветствие
2.1 Уведомление об успешном выполнении команды
3. Вводим адресс отправителя
3.1 Уведомление об успешном выполнении команды
4. Вводим адресс получателя
4.1 Уведомление об успешном выполнении команды
5. Вводим данные
5.1 Уведомление об успешном выполнении команды
5.2 Вводим тему письма
5.3 Вводим тело письма
5.4 Вводим символ окончания ввода
5.5 Уведомление об успешном выполнении команды
6. Отключаемся
6.1 Уведомление об успешном выполнении команды
POP3
* - номер сообщения
1. telnet mail.example.dom 110
1.1 +OK Hello there.
2. user test
2.1 +OK Password required.
3. pass test
3.1 +OK logged in.
4. list
4.1 +OK POP3 clients that break here, they violate STD53.
1 7487
.
5. retr *
5.1 +OK 501 octets follow.
Return-Path:
X-Original-To: mail@example.dom
Delivered-To: mail@example.dom
Received: from 1 (unknown [192.168.0.10])
by mail@example.dom (Postfix) with SMTP id 9CF7131E939
for
subject: Test Message
Message-Id: <20081227211349.9cf7131e939@mail@example.dom>
Date: Sat, 27 Dec 2008 23:12:39 +0200 (EET)
From: mail@example.dom
To: undisclosed-recipients:;
X-EsetId: 2374222A446061693C72227D4E362C
Sample Test Text
.
6. dele *
6.1 +OK Deleted.
7.
7.1 +OK Bye-bye.
Что обозначают вводимые команды:
1. Соединяемся с почтовым серевером
1.1 Уведомление об успешном выполнении команды
2. Вводим имя пользователя
2.1 Уведомление об успешном выполнении команды
3. Вводим пароль
3.1 Уведомление об успешном выполнении команды
4. Команда вывода списка всех сообщений в ящике
4.1 Результат выполнения команды
5. Просмотр сообщения
5.1 Результат выполнения команды
6. Удаление сообщения
6.1 Результат выполнения команды
7. Отключаемся
7.1 Уведомление об успешном выполнении команды
Ярлыки: how to
19.12.2008
Настройка Vlan на FreeBSD
#ifconfig vlan* create
#ifconfig vlan* vlan ** vlandev ***
#ifconfig vlan* xxx.xxx.xxx.xxx netmask yyy.yyy.yyy.yyy up
Где:
* - Номер создаваемого Влан устройства;
** - Влан идентификатор (VID), чем будет тегироваться трафик;
*** - Физический интерфейс, к которому привязывается виртульный интерфейс (напр.: le0).
Однако Вы будете неприятно удивлены отсутствием виртуальных интерфейсов после перезагрузки... Во избежания такого недоразумения необходимо в файле rc.conf прописать:
Пример если мы хотим создать 2 Влана.
cloned_interfaces="vlan* vlan*"
ifconfig_vlan*="inet xxx.xxx.xxx.xxx netmask yyy.yyy.yyy.yyy vlan ** vlandev ***"
ifconfig_vlan*="inet xxx.xxx.xxx.xxx netmask yyy.yyy.yyy.yyy vlan ** vlandev ***"
Вот и все. После перезагрузки наши Вланы поднимутся автоматически.
Да. и самое главное. Если IP адреса на Вланы Вы назначаете из дополнительной программы, например Quagga, то в rc.conf дополнительно необходимо прописать: ifconfig_***="up", для того чтобы стартовать сам физический интерфейс...
07.11.2008
Простая настройка FTP на FreeBSD
ftpd_flags="-A -m"
Где первая строка запускает самого FTP демона, а вторая разрешает подключаться к нему только анонимных пользователей с возможностью записи, удаления файлов и папок.
19.06.2008
Руссификация FreeBSD

Решил наконец то начать посвящать какое то время леди ФРИ!
Начнем с понимания друг друга тоесть языка системы и файлов помощи.
Для того чтобы руссифицировать саму систему необходимо:
1. /etc/rc.conf
keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"
2. /etc/profile
export LANG=ru.KOI8-R
export LC_ALL=ru_RU.KOI8-R
3. /etc/ttys
Меняем все значения с cons25 на cons25r
ttyv0 "/usr/libexec/getty Pc" cons25r on secure
ttyv1 "/usr/libexec/getty Pc" cons25r on secure
ttyv2 "/usr/libexec/getty Pc" cons25r on secure
ttyv3 "/usr/libexec/getty Pc" cons25r on secure
ttyv4 "/usr/libexec/getty Pc" cons25r on secure
ttyv5 "/usr/libexec/getty Pc" cons25r on secure
ttyv6 "/usr/libexec/getty Pc" cons25r on secure
ttyv7 "/usr/libexec/getty Pc" cons25r on secure
Для того чтобы руссифицировать Шелл необходимо:
/etc/csh.cshrc
setenv CHARSET KOI8-R
setenv MM_CHARSET KOI8-R
setenv LANG ru_RU.KOI8-R
setenv USE_LANG ru_RU.KOI8-R
Для того чтобы получить руссифицированные МАНы необходимо:
1. В домашней директории создаем файл конфигурации:
freebsd# touch rus_man.conf
freebsd# ee rus_man.conf
2. Добавляем следущие строки и сохраняем:
*default host=cvsup.FreeBSD.org.ua
*default base=/var/db
*default prefix=/usr/src
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
doc-ru
3. Запускаем csup из директории где лежит конфигурационный файл и ждем пока закончится синхронизация текстов:
csup -g -L 2 rus_man.conf
4. Инсталлируем мануалы
freebsd# cd /usr/src/frdp/doc/ru_RU.KOI8-R/man/
freebsd# make && make distrib-dirs \
? && make install && make cleandir
5. Проверяем и пользуемся:
freebsd# man uptime
Formatting page, please wait...Done.
UPTIME(1) Справочник основных команд FreeBSD UPTIME(1)
НАЗВАНИЕ
uptime -- показать как долго работает система
...
ИСТОРИЯ
Команда uptime появилась в 3.0BSD.
FreeBSD 6.1 18 апреля 1994
Также есть интересный скрипт, позволяющий довольно быстро перевести систему. Благодарность выражаем некому Роману Богданову