*NIX

Подписаться на эту рубрику по RSS

Консольный оконный менеджер Screen. Работаем в терминале с удобством.

Сентябрь, 30th 2011

Было время, когда параллельно основному месту работы, я подрабатывал удаленно в техподдержке у одного хостинг-провайдера (занимались в основном выделенными серверами на FreeBSD). Так вот там я узнал и стал активно использовать одну замечательную консольную программу - screen.

Screen – это полноэкранный оконный менеджер, который позволяет разделить физический терминал между несколькими независимыми процессами (обычно интерактивными облочками)

Да уж... определение из man звучит несколько заумно и вовсе не способствует приливу энтузиазма для изучения. Значит придется самому раскрыть некоторые прелести этой, без сомнения, нужной и удобной программы.

Чем может помочь screen при работе на удаленных серверах по ssh?

Наверное самым удобным, лично для себя, считаю возможность в любой момент покинуть активную ssh-сессию и в дальнейшем возобновить её.

Поясню на примере - допустим вы начали пересобирать ядро, или запустили какой-то длительный процесс, но дождаться его завершения нет возможности. Screen позволяет отключиться от текущего сеанса не прерывая выполняемой работы. В любой момент вы имеете возможность продолжить работу так, как будто вы и не отключались. Кроме того, при внезапном разрыве ssh соединения с сервером screen-сессия не прерывается, что очень удобно при работе по слабым каналам связи (к примеру GSM модемы).

читать полностью →

Делаем резервную копию системы FreeBSD

Август, 17th 2011

клонирование HDD FreeBSD

Удивительно, аномально жаркое лето прошлого года, сервера организаций, с которыми сотрудничаю, пережили спокойно. В этом году техника решила испытать моё терпение - за не полных 2 месяца (июль и август) посыпалось три винта в разных серверах. Для любителей искать закономерности замечу, что все винты разных производителей. Два их них удалось поднять средствами FreeBSD. Для реанимации было достаточно запуска команды fsck в однопользовательском режиме для каждого раздела диска.

К третьему винту судьба была менее благосклонна, ему пришлось хуже остальных и помогла только полная переустановка и настройка системы на новый хард. Благо это был всего-навсего роутер.

Нет худа без добра, в результате на этих серверах теперь по новому жесткому диску с полной копией системы на случай войны. Кроме того были заменены BAD-ные (ну кто в здравом уме оставит их в постоянную работу).

Итак, имеем не вполне надежные винты, но с удачно стартовавшей системой. Задача состоит в создании полной копии всех разделов с данными и настройками системы на новых HDD такой же ёмкости. Использвать команду dd в данном случе нельзя, да посекторное копирование диска в полтерабайта, мягко говоря не самая быстрая операция.

FreeBSD предоставляет нам более изящное и правильное решение - утилиты dump|restore. В хендбуке описано как ими пользоваться. Но есть ещё более удобное решение, не требующее ручного разбиения нового винчестера на разделы - утилита clonehdd.

читать полностью →

Сборка ядра FreeBSD. Если что-то пошло не так...

Август, 12th 2011
# make installkernel KERNCONF=NEW_KERNEL

В основном, процесс сборки, обновления и установки нового ядра FreeBSD проходит довольно гладко. Однако иногда бывает что-то пойдет не так, (увлёкшись чисткой лишнего, можно исключить и что-то нужное из состава ядра). Кстати, и на моей практике такое случалось пару раз. Ситуация осложнялась тем, что сервера находились удаленно и физического доступа к консоли сервера для принятия мер по оживлению системы нет.

Тут выхода два - либо самому ехать, либо объяснять по телефону как и что нужно сделать. И успех этой операции полностью зависит от вменяемости человека на другом конце провода. Собственно поэтому и решил написать статью, всегда проще дать ссылку, чем объяснять человеку на слух. Заодно расскажу про некоторые меры предосторожности при сборке нового ядра во FreeBSD.

читать полностью →

read (subshell_pty…): No such file or directory (2)

Июнь, 08th 2011

При запуске mc (Midnight Commander) выскочило сообщение:

read (subshell_pty…): No such file or directory (2)

Отправим процессу сигнал продолжения работы (CONT). При получении сигнала CONT процесс возобновит свою работу с того момента как он был остановлен. В качестве shell у меня используется bash как в примере ниже.

killall -CONT bash

В результате этой манипуляции MC благополучно ожил.

FATAL: xcalloc: Unable to allocate 1 blocks of 4120 bytes!

Апрель, 28th 2011

После сборки нового SQUID (в моем случае 3.1.10) и запуска его в работу, в логах стал замечать такую неприятную вещь:

FATAL: xcalloc: Unable to allocate 1 blocks of 4120 bytes!

Причем такая ситуация происходила с завидной регулярностью, пару часов работает и привет - перезапускаемся с такой ошибкой. В общем проблему удалось решить уменьшив параметр cache_mem в конфиге. Заодно поправил и maximum_object_size_in_memory.

cache_mem 64 MB
maximum_object_size_in_memory 32 KB

Аварийный запуск системы из командной строки GRUB

Апрель, 25th 2011

Краткая инструкция по загрузке Windows и Linux из командной строки GRUB на случай каких-либо неполадок. Сразу оговорюсь, что сам grub2 должен запускаться, если же вы не можете попасть в консоль grub2, то вам скорее всего потребуется переустановка grub.

Запуск Linux с помошью командной строки GRUB

Нам понадобится написать всего 3 строчки: "set root", "linux" и "initrd" и в конце дать команду "boot".

set root=(hd0,5)
linux /boot/vmlinuz-2.6.32-generic root=/dev/sda5
initrd /boot/initrd.img-2.6.32-generic
boot

читать полностью →

Почему FreeBSD а не Linux

Апрель, 08th 2011

FreeBSD

Некоторые читатели моего блога интересуются почему я пишу в основном о FreeBSD и мало уделяю внимания Linux. Видимо пришло время рассказать чем мне так нравится FreeBSD на серверах. Данная статья не коим образом не умаляет достоинств Linux систем, я лишь попытаюсь изложить некоторые моменты, которые, возможно, кому-то помогут определиться с выбором ОС для своего сервера.

Первой системой, доставшейся мне "в наследство" от прежнего сиcадмина была Red Hat 6. В то время я ещё совершенно не был знаком ни с Linux, ни тем более с FreeBSD. Вернее знания мои заканчивались пробной установкой какого-то дистрибутива Linux на десктоп... а тут сразу рабочий сервер завода в полное распоряжение и крутись как знаешь.

читать полностью →

Cтатическая маршрутизация в FreeBSD

Апрель, 07th 2011

Не так давно нужно было объединить 2 сети - обеспечить видимость серверов. Как-то до этого времени задач по маршрутизации не стояло. Эта небольшая статья о том как сделать статическую маршрутизацию на FreeBSD. Пример сети возьмем из хендбука:

статическая маршрутизация FreeBSD

RouterA - наш компьютер с FreeBSD, он же является маршрутизатором в Интернет. Его маршрут по умолчанию для связи с внешним миром 10.0.0.1. Собственно на его примере и покажу настройку маршрутизации.

RouterB в качестве шлюза использует 192.168.1.1, что видно из схемы.

Для начала посмотрим таблицу маршрутизации на RouterA (команда netstat -nr):

% netstat -nr
Routing tables
Internet:
Destination        Gateway         Flags    Refs      Use  Netif  Expire
default            10.0.0.1        UGS         0    49378    xl0
127.0.0.1          127.0.0.1       UH          0        6    lo0
10.0.0/24          link#1          UC          0        0    xl0
192.168.1/24       link#2          UC          0        0    xl1

читать полностью →

IPFW NAT в FreeBSD 8

Март, 27th 2011

nat freebsd

Сегодня речь пойдет о NAT, а точнее о kernel nat (IPFIREWALL_NAT). На новом сервере решил опробовать свеженькую FreeBSD 8 для организации выхода в интернет.

Изначально о встроенном в ядро NAT не помышлял и cделал по старинке, использую демон NATD. Всё замечательно заработало, однако при запуске сервера в реальную работу вылезло одно не приятное "но".

При подключении по SSH на сервер наблюдались жуткие тормоза программ, использующих псевдографику, например MC прорисовывал панельки в течение минуты! Такая же ситуация наблюдалась и в sysinstall. Медленный заход в MC мог наблюдаться например, если не правильно указаны или не верно настроены DNS адреса, но здесь был не тот случай, да и характер прорисовки экрана иной. Причем локально с консоли всё работало шустро. Выяснилось, что при отключении NATD скорость работы по SSH восстанавливается.

Честно говоря природу данного явления так и не выяснил. Зато решил опробовать встроенный в ядро NAT (эта возможность появилась начиная c 7 версии FreeBSD).

читать полностью →

Настройка PPPoE-соединения во FreeBSD

Февраль, 04th 2011

О настройке PPP соединения в FreeBSD я уже писал на страницах блога - настройка ADSL PPPoE соединения в FreeBSD. Данная статья во многом её повторяет и создана с одной лишь целью - помощь в подключении к новому региональному провайдеру Мега-НН.

Впрочем, подойдет и для любого другого провайдера, предоставляющего доступ к Интернет посредством PPPoE-соединения по имени и паролю.

Для начала следует привести файл /etc/ppp/ppp.conf к такому виду:

default:
  set log Phase tun command
megann:
  set device PPPoE:msk0
  set authname ISP_login
  set authkey ISP_password
  set dial
  set login
  enable dns
  add default HISADDR

читать полностью →