*NIX

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

Изменение даты создания файла в *nix

Январь, 13th 2012

Потребовалось сменить дату создания нескольких файлов во FreeBSD, думал дел на 5 минут и честно говоря встрял... с ходу решить эту простую задачку как-то не сложилось. Пришлось поискать и результатом поисков явилась команда touсh, изменяющая временные штампы файла.

Честно говоря совсем не повседневная команда, потому и пришлось покопаться.

touch -t 201201130000 myfile

Опция -t задает новое значения для изменяемого временного штампа. Время устанавливается десятичным числом следующего вида:

[[ВВ]ГГ]ММДДччмм[.СС]

(ВВ - век, ГГ - год, ММ - месяц, ДД - день, чч - часы, мм - минуты, СС - секунды). Если ВВ не задан, то год ВВГГ берется из диапазона 1969-2068. Если СС не задано, то берется 0.

Проблема с SAMBA. Error Broken pipe

Ноябрь, 07th 2011

Жила-была одна бухгатерия, по старой русской традиции жила на 1С v7.7. Но пришли времена перемен и стали они переезжать на восьмёрку... Вот тут сказочка закончалась и начались суровые будни.

Хранением баз данных для 1С v8.1 и 8.2 (зачем-то сразу две версии используются - секретные программеры 1С меня в детали не посвятили) по прежнему занимался сервачок под управлением FreeBSD 7, с установленой SAMBA-3.0.36

Собственно пока бухгалтерия работала на семерке, нареканий не было, а вот новое творение компании 1С, время от времени стало вываливаться то на одной, то на другой машине. После чего приходилось индексировать базы.

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

Проброс портов в ядерном IPFW NAT

Октябрь, 24th 2011

Проброс портов в ядерном IPFW NAT

Обещанное продолжение статьи про настройку IPFW NAT в FreeBSD 8, работающего на уровне ядра системы. Из заголовка не трудно понять, что речь сегодня пойдет о том, как организовать проброс портов. Рассказывать, для чего вообще используется перенаправление портов здесь не стану - раз тема заинтересовала, то и определенные знания есть. Возможно, позже и напишу небольшой обзор для начинающих.

В сети достаточно много подробных инструкций, как настроить NAT во FreeBSD, используя демон natd. А вот про настройку ядерного NAT информацию найти достаточно сложно. Как-то эта тема обходится вниманием, видимо кто настраивал сам не спешит делиться своими наработками. Вообще, последнее время, замечаю мало интересных технических статей... так что буду, по мере сил, продолжать вносить свой маленький вклад в дело продвижения Open Source и FreeBSD в частности.

Для простоты продолжим настраивать открытый firewall - чтобы не загромождать пример правилами блокировки. Первым делом проверим в конфиге rc.conf следующие строки (интерфейс, смотрящий в интернет vr0):

firewall_enable="YES"
firewall_nat_enable="YES"
firewall_nat_interface="vr0"
firewall_type="OPEN"

Синтаксис написания правил ядерного IPFW NAT следующий:

ipfw [-q] nat number config config-options

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

Консольный оконный менеджер 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 на десктоп... а тут сразу рабочий сервер завода в полное распоряжение и крутись как знаешь.

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