12
мая

MFS, создание диска в памяти (RAM-диска)



Для реализации данной возможности в FreeBSD нужно чтобы драйвер виртуального диска md (device md # Memory «disks») был вкомпилен в ядро либо подгружен как модуль с помощью kldload geom_md. MFS (Memory File System, файловая система в оперативной памяти) — это частный случай использования драйвера md, как создание swap-а в файле. MFS позволяет монтировать директорию в оперативную память и работать с файлами там, как в обычной файловой системе, но при этом будет наблюдаться значительный прирост в скорости. Данную возможность полезно использовать при работе с большим колличеством часто обновляемых мелких файлов, к примеру, директория для временных файлов разнообразных демонов или скриптов.

Можно добавить запись об этом в /etc/fstab для создания при старте системы диска в памяти (также указав выделяемый размер оперативной памяти в разумных пределах, чтобы не получить в итоге нехватки ядерной памяти и паники ОС). Данные в этой директории, конечно же, после перезагрузки будут потеряны, поэтому это обязательно следует учесть, например, при пересборке мира через make данные в директории после перезагрузки системы будут утеряны и обновление не будет осуществлено. Далее…

1
мая

Настройка/изменение порта в FreeBSD для установки программы определенной версии/ревизии



Случаются ситуации, что нужно установить/обновить приложение, версии которого в портах еще нет, либо откатить до определенного состояния разработки и нужный исходный код приложения доступен на каком-либо источнике.

Рассмотрим подобный случай на примере с поисковым полнотекстовым движком Sphinx. Для него существует два порта: содержащий официальный релиз /usr/ports/textproc/sphinxsearch (на данный момент версия 0.9.9) и /usr/ports/textproc/sphinxsearch-devel (бета-версию 1.10-beta). Исходные тексты, которые нужно будет скачать, доступны в SVN-репозитории с ревизиями на разные моменты исправления ошибок.

В подавляющем своем большинстве разработчиками какого-либо ПО для работы с исходниками (и не только) используется система управления версиями. Это, можно сказать, некая разновидность файлового сервера, но позволяет хранить версию дерева файлов (файлов и каталогов) за разные моменты времени, т. е. когда вносились какие-либо изменения (добавление, удаление, редактирование файлов) и история этих изменений. С таким хранилищем может работать любое количество человек, обладающих правом чтения и/или записи. В общем, системы управления версиями главным образом предназначены для записи и отслеживания изменений информации во времени. Очень распространенной системой управления версиями является Subversion (SVN), которая обладает рядом дополнительных полезных возможностей, по сравнению, к примеру с CVS. Далее…

20
апреля

Резервное копирование данных MongoDB



Существует несколько способов создания бекапа информации, находящейся в БД mongo. Наилучшим способом для регулярного использования, т. е. без простоя/блокирования/остановки сервиса, является использование утилиты mongodump. Она действует по принципу, как и утилита mysqldump в MySQL, делая бекап/дамп данных c работающего/используемого в данный момент сервера. Дамп в последующем может быть восстановлен с помощью утилиты mongorestore, которая также идет в комлекте поставки.

Лучше всего после внедрения сервиса, использующего mongodb, сразу настроить репликацию master-slave и в дальнейшем резервные копии снимать с подчиненного сервера, чтобы не нагружать главный сервер, работающий кроме чтения еще и на запись. Кроме того, slave-сервер будет очень полезен, если неожиданно «умрет» master-сервер, так как сделать его новым главным сервером достаточно простая процедура (подчиненный сервер выступает в качестве failover-а).
Далее…

18
апреля

Использование cron и crontab



Cron — это программа, которая используется в unix-системах для выполнения заданий в определенное время. Задания могут запускаться как единоразово, так и переодически.

Служба пранирования заданий состоит из демона, который обычно называется crond и набора конфигурационных файлов – для каждого из пользователей в /var/spool/cron, общесистемного /etc/crontab и /etc/cron.d.

При загрузке системы, запускается демон cron и проверяет очередь заданий at и заданий пользователей в файлах crontab. При запуске, демон cron сначала проверяет каталог /var/spool/cron на наличие файлов crontab, которые имеют имена пользователей, соответствующие именам пользователей из /etc/passwd, также он проверяет /etc/crontab и наличие файлов в директории /etc/cron.d/. Найденные файлы загружаются в память, далее крон проверяет ежеминутно нужно ли запускать какое либо из заданий в данную минуту, кроме этого проверяется происходило ли обновления директории spool, cron.d или файла /etc/crontab.В случае обновлений, измененные файлы заново перечитываются. Таким образом, при обновлении файла крона нет необходимости производить его перезагрузку, все файлы будут считаны автоматически при последующей проверке. Далее…

5
апреля

Настройка ротации логов с помощью newsyslog



Ротация (rotate) — это замена текущего открытого, т. е. используемого приложением для записи в данный момент, лог-файла новым и переименование (возможно с архивированием) старого, который замещает еще более старый, существовавший до этого лог. Самый старый файл удаляется.

Помимо настройки самого логирования, которое обычно производиться с помощью syslogd в /etc/syslog.conf, важное значение имеет дальнейшее слежение и управление файлами журналов, которые хранят записи о произошедших событиях. Лог-файлы должны хранится за определенный период времени или содержать определенный размер данных. Так как это влияет на процент свободного места на диске и в частности на место в разделе с логами, за которым необходимо следить, поскольку полное его заполнение может привести к разнообразным проблемам. По современным меркам информация является самой ценной и ее потеря просто недопустима. Тем более если причину возникновения какой-либо проблемы можно выявить только используя журнальные файлы. Да и в конце концов, большой размер самого лог-файла приносит некоторые неудобства при работе с ним, т. к. иногда приходится разбивать его на более мелкие с помощью, к примеру, утилиты split.
Далее…

5
марта

Мониторинг репликации в postgresql90-server



Встроенная репликация в PostgreSQL 9 реализована благодаря журналу опережающей записи (WAL — Write-Ahead Log) с помощью пересылки XLOG-ов с главного сервера на подчиненный. При настроенной репликации на мастере и слейве запускаются дополнительные процессы: «postgres: wal sender process» и «postgres: wal receiver process», соответственно.

Судить о времени отставания slave-сервера от master-сервера можно сопоставляя текущие позиции записей журнала WAL: текущей на мастере и принятой/примененной на слейве. Их можно получить используя pg_current_xlog_location и pg_last_xlog_receive_location/pg_last_xlog_replay_location, соответственно.

На главном сервере:

psql -c "SELECT pg_current_xlog_location()" -Upgsql postgres
<!--more-->pg_current_xlog_location
--------------------------
0/B8C45908
(1 row) 

Далее…

10
февраля

mysqldump — бекап/дамп данных в Mysql



Mysqldump — это одна из утилит, входящих в пакет с клиентскими программами mysql-client. Используется для создания дампа одной или нескольких баз данных, отдельных таблиц или только их структуры с целью резервирования нужной информации и дальнейшего его восстановления в будущем. Дамп содержит в себе набор SQL-команд, которые выполняются последовательно при разворачивании.

При запуске mysqldump в качестве аргумента передается название базы данных либо ее определенные таблицы или перечисляются несколько баз с помощью ключа «—databases \ -B» либо все «—all-databases \ -A». Также можно указывать дополнительные опции, наиболее полезными из которых являются:
—quick \ -q – дамп непосредственно направляется на stdout (стандартный вывод — экран), не используя буфер;
—opt – соответствует заданию опций —quick —add-drop-table —add-locks —extended-insert —lock-tables, которые максимально ускоряют создание дампа;
Далее…

31
января

Вкладки, регистры, макросы, замена текста в VIM



Эта статья для тех, кто уже знаком с основами работы в текстовом редакторе VIM. Надеюсь, что в данной заметке каждый найдет что-то полезное для себя в дальнейшей работе. Здесь мы рассмотрим использование вкладок для более удобной манипуляции с открытыми файлами, разных буферов обмена для хранения используемого в работе текста, запись часто повторяющихся действий, быструю и легкую замену фрагментов текста в документе и сохранение ранее открытых сессий со всеми настройками.

Вкладки или табы

Если при начальном запуске vim с несколькими файлами-аргументами задать ключ «-p», то они будут открыты во вкладках. Вкладки — это те же буферы, в которые помещается документ после открытия, только навигация по ним проходит по другому. Более наглядно и привычно происходит перемещение между файлами.

Основные команды для работы с вкладками:

:tabnew [file] / :tabe[dit] [file] – создать новую вкладку, а если указано название файла, то создать его либо открыть в новой вкладке;
:tabc[lose] [N] – закрыть текущую вкладку или под номером «N»;
Далее…

25
января

VIM — редактирование файлов, основы работы



Главное предназначение редактора vim — правка всех видов простого текста. Обладает массой полезных возможностей:

— подсветка синтаксиса для разных типов файлов (с возможностью правки настроек);
— множественность вкладок и буферов для одновременного редактирования нескольких файлов;
— разбивка экрана на несколько окон как по горизонтали, так и по вертикали;
— легкость в перемещении по тексту и открытыми файлами, расставление меток;
— управляемость с командной строки;
— авто-дополнение слов и строк в тексте, команд и имён файлов;
— возможность определение собственных комбинаций клавиш на определенные действия;
— повторение последнего действия нажатием одной клавиши;
— запись макросов (действий пользователя) для выполнения повторяющихся операций в дальнейшем;
— неограниченная глубина отмены (undo) и возврата (redo) действий;
— история введенных команд и выражений поиска; Далее…

18
января

Vimrc — настройка VIM



В мире UNIX-систем без знания какого-либо текстового редактора просто невозможно обойтись. Комфортное и удобное его использование значительно сокращает время работы с более важными задачами, для решения которых собственно этот редактор служит инструментом. Операционная система в подавляющем своем большинстве использует текстовые файлы, как основной элемент настройки сервисов и системы в целом. Это множество системных, конфигурационных файлов, скриптов и т.д. Поэтому в «правильно» работающем редакторе намного приятнее, а главное быстрее вносить изменения, сосредоточившись на самом содержании.

Можно сконфигурировать, т.е. настроить редактор VIM сразу же до начала работы с ним так, как бы хотелось чтобы он себя вел. Для этого существует, как и для большинства программ, файл с настройками. После установки можно почитать пример конфигурационного файла, находящегося где-то здесь: Далее…

13
января

Перенос и бекап FreeBSD с помощью dump/restore



С большой долей вероятности может возникнуть ситуация, когда нужно систему перенести на другой жесткий диск или другой раздел больший по объему. Например в случае, когда текущий диск «сыпется» или раздел (в Windows-понимании) для FreeBSD является недостаточным по месту, а систему переустанавливать не хочется. Наилучшим и самым простым решением для этого будет воспользоваться утилитами dump/restore и sysinstall.

Я надеюсь, что вам уже приходилось создавать разделы на Freebsd, поэтому ограничусь только перечислением опций которые необходимо указать и последовательностью действий.Для начала нужно создать слайс FreeBSD. Загружаемся с образа, идем в «Configure», потом «Fdisk», а далее выбираем либо новый жесткий диск либо текущий, где нужно создать слайс на одном из разделов. На доступном пространстве диска или отдельном разделе нужно сделать «Create Slice», получив в полях Desc и Subtype значения freebsd и 165. Далее выставляем флаг «Set Bootable» и записываем все что было проделанно на диск с помощью «Write Changes». После выхода спросит про установку Boot Manager в MBR на данном диске. Выбираем «Standard» если производится перенос системы на новый диск, либо «BootMgr», что будет полезно, если установлено несколько ОС на диске. Далее…

7
января

Флаги файлов в FreeBSD



В UNIX-системах, кроме стандарных прав доступа для файлов можно также устанавливать дополнительные флаги, которые поддерживает файловая система. Благодаря им достигается более гибкий контроль с точки зрения безопасности системы. Эти флаги могут обеспечить невозможность удаления/модификации файлов даже тем, кто их установил в зависимости от уровня безопасности на котором работает система.

В BSD системах (OpenBSD, FreeBSD) установка и снятие флагов осуществляется командой chflags (в Linux системах используется chattr), а их просмотр ls с опциями -lo. Синтаксис команды достаточно прост: chflags flags file … Можно задавать сразу несколько флагов, перечислив их через запятую. Полезным ключем будет «-R», позволяющий обходить файлы в директории рекурсивно. Флаги могут быть системными (может установить только root) и пользовательскими (установленные владельцем). Обычно, в названии флага префиксом является буква «u» или «s». Далее…

1
января

Атрибуты файлов в Linux



В UNIX-системах, кроме стандарных прав доступа, существуют также дополнительные или специальные атрибуты файлов, которые поддерживает файловая система. Благодаря им достигается дополнительные контроль и безопасность системы.

В файловой системе Linux ext2(/3/4) управление происходит с помощью команды chattr, которая имеет схожий синтаксис с командой изменения прав доступа chmod:

chattr [-RV] [+-=AacDdijsSu] [-v version] files... 

-R – рекурсивное измение каталогов и их содержимого;
-V – более подробный вывод;
+-=[AacDdijsSu] – указывает какие дополнительные атрибуты (биты) должны быть добавлены (+), сняты (-) или только точно установлены (=).

Далее…

25
декабря

Права доступа к файлам



В любой многопользовательской UNIX-системе существует понятие прав доступа на файлы, которые подразумевают под собой действия, которые позволено совершить пользователю не затрагивая интересы других пользователей. Это какой-то набор из чтение-запись-выполнение (r-w-x, read-write-execution) для отдельно взятых владельца-группы-других (u-g-o, user-group-other).

Для каждого файла, вне зависимости от его типа, будь то обычный файл, директория, файл псевдо-устройства и т.д., можно посмотреть его атрибуты командой ls -l, где в первой колонке в виде последовательности с десяти символов можно посмотреть права доступа. Первый символ указывает на тип файла, а каждые следующие три символа — права доступа, соответственно, пользователя-группы-остальных. Далее…

19
декабря

Master-Slave репликация MongoDB



Как было упомянуто в предыдущей статье, MongoDB поддерживает репликацию данных. Чтобы получить отказоустойчивость системы должен быть как минимум один реплицируемый сервер, который примет тяжелое бремя master-а, в случае скоропостижной потери онного. Такое переделегирование обязанностей требует вмешательства системного администратора, если используется схема репликации master-slave, которая будет рассмотрена ниже.

При асинхронной master-slave репликации в каждый конкретный момент времени только один сервер работает на запись (master), а остальные на чтение (slave). Для реализации рассмотрим пример из двух серверов, но не забываем, что слейвов может быть много.

После установки и запуска mongod на FreeBSD с параметрами по умолчанию демон будет «слушать» соединения на порту 27017: Далее…

Страница 2 из 3123