14
декабря

Как сохранить файл в vim без прав root-a



Очень часто возникает ситуация, когда начав редактировать файл vsftpd.conf, httpd.conf и так далее внезапно вспоминаешь, что сохранить ты его не можешь, так как забыл использовать чудесную команду sudo при вызове любимого редактора vim.

Есть несколько способов выхода из данной ситуации. Самый простой и логичный — это сделать временный файл,а потом заменить им исходный. Тоесть в редакторе vim набрать:

:w $HOME/tmp/httpd.conf" 

а потом выполнить команду:

sudo mv $HOME/tmp/httpd.conf /etc/httpd 

Второй способ — воспользоваться многочисленным функционалом редактора vim (более подробно комбинации клавиш vim описаны в предыдущей статье), набрав комбинацию tee и команды sudo (предполагается, как и в первом случае, что использования команды sudo разрешено для вашей учетной записи). Для сохранения необходимо выполнить команду: Далее…

11
декабря

MongoDB: настройка, управление и использование сервиса, бекап данных



Mongo — это специальная объектно-ориентированная база данных или хранилище структурированных данных, что-то среднее между привычной реляционной СУБД и key-value хранилищем. Хранение данных происходит в виде JSON-подобных документов (document-based). Без особых трудностей mongod может работать с базой, насчитывающей несколько миллионов объектов. Имеется поддержка динамических запросов, индексов, профилирование запросов, репликация и поддержка fail-over.
MongoDB целесообразно использовать для хранения постоянно изменяющихся данных для сайта,т.е. гибкой работы с информацией в реальном времени, а также, отлично справляется с задачами кэширования.

Комплект поставки и запуск

После установки программы на FreeBSD имеем следующие исполняемые файлы:

cat /var/db/pkg/mongodb-1.6.2/+CONTENTS | grep "^bin/"
bin/mongo
bin/mongod
bin/mongodump
bin/mongoexport
bin/mongofiles
bin/mongoimport
bin/mongorestore
bin/mongos
bin/mongosniff
bin/mongostat 

Далее…

6
декабря

Защита от brute force или ограничение соединений с помощью PF во FreeBSD



Brute force — это самый грубый и легко уловимый в файлах журналов (в log-ах) метод проникновения на сервер, использующий перебор возможных паролей. В некоторых случаях это может сработать, так как многие используют простые легко запоминаемые пароли (состоящие, к примеру, только из цифр, непосредственно связанных с человеком). Автоматический подбор паролей ведет к заполнению логов множеством записей о попытках авторизации к сервису, прослушиваемый порт которого доступен для мира. Уже с этого можно сделать вывод, что желательно менять стандартный открытый порт демона на любой другой (лучше, в диапазоне 1024-65536, которые являются непривилегированными) для таких служб, к примеру, как SSH и ограничивать подключения с определенных IP-адресов, если есть такая возможность.

Для борьбы с brute force-атаками полезными будут знания специфики «тройного рукопожатия» при установке TCP-соединения. Далее…

22
ноября

Locate — поиск файлов в индексной базе



В UNIX-системах обычно по умолчанию есть утилита locate, которая позволяет искать файлы по его имени или части имени. Ищем все файлы и директории в именах которых встречается подстрока заданная в качестве аргумента и в выводе получаем полный путь к ним. В Linux можно использовать регулярные выражения, указывая ключ «-r». Хотя можно обойтись и без них, строя комбинации из конвееров (pipe-ов) в командной строке.

locate "locate" | grep -Ev "(src|ports)"
/etc/locate.rc
/etc/periodic/weekly/310.locate
/usr/bin/locate
/usr/libexec/locate.bigram
/usr/libexec/locate.code
/usr/libexec/locate.concatdb
/usr/libexec/locate.mklocatedb
/usr/libexec/locate.updatedb
/usr/local/man/man3/XdbeAllocateBackBufferName.3.gz
/usr/local/man/man3/XdbeDeallocateBackBufferName.3.gz
/usr/local/man/man3/XtAllocateGC.3.gz
/usr/local/man/man7/deallocate.7.gz
/usr/local/share/ri/1.8/system/Class/allocate-i.yaml
/usr/local/share/zsh/4.3.10/functions/Completion/Debian/_dlocate
/usr/local/share/zsh/4.3.10/functions/Completion/Unix/_locate
/usr/share/examples/etc/locate.rc
/var/db/locate.database 

По расписанию (crontab) запускается updatedb, которая индексирует файлы в ОС и создает БД. Для FreeBSD обновление базы запускается раз в неделю, в отличии от Linux, где это обычно происходит каждый день. Это можно проверить в настройках демона CRON, а вернее в директориях, где находятся скрипты, запускаемые каждый час/день/месяц.
Далее…

14
ноября

SWAP в файле на FreeBSD



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

kldload geom_md ;

а для загрузки вместе со стартом системы добавить в loader.conf:

echo «geom_md_load="YES"» >> /boot/loader.conf ;

Создаем файл размером 1G, который будет использоваться, как свап и выставляем нужные права:

dd if=/dev/zero of=/var/swap0 bs=1024k count=1024
chmod 0600 /usr/swap0

Далее…

7
ноября

PHP в режиме FastCGI средствами патча PHP-FPM + Nginx



Высокой производительности веб-сервера можно достичь используя в качестве front-end Nginx, а в качестве back-end PHP-FastCGI-сервер.

Преимущества Nginx и FastCGI:

Nginx легок, прост в настройке, является прокси-сервером, очень быстрый.
FastCGI это самый быстрый и наиболее безопасный способ обработки запросов внешними программами.

При такой схеме возможно обрабатывать большое количество запросов за небольшое время. Nginx может использоваться как самостоятельный HTTP-сервер или как reverse proxy перед Apache или любым другим тяжелым веб-сервером, чтобы снять часть нагрузки. Apache при этом выступает в качестве бэк-енда для генерации динамического контента, но Apache достаточно громоздкий и тяжелый, к тому же он требует много памяти.

Множество запросов к веб-серверу порождают много параллельных потоков/процессов, которые удерживаются в памяти, пока клиентское соединение не будет закрыто. Поэтому целесообразно использовать nginx для приема соединений и отдачи статики, а обработку динамики передавать «главному» серверу. Для обработки динамики в nginx используется проксирование и FastCGI. Кэширование и отдача статики выполняется самим nginx. Все будет работать абсолютно прозрачно для уже написанных скриптов.
Далее…

27
сентября

Система пакетов в FreeBSD



Как известно, программы во FreeBSD можно устанавливать непосредственно с исходных кодов либо через систему портов или пакетов. Дерево портов содержит в себе инструкции по получению и компиляции программ, а пакеты — это уже скомпилированные под определенную версию дистрибутива порты. Основное отличие заключается в возможности настройки и, конечно же, скорости установки. Если нужно установить большую программу, например OpenOffice.org, не требующую особой настройки, то лучше прибегнуть к помощи системы пакетов.

Управлять пакетами достаточно просто, а главное — это то, что после установки программы через коллекцию портов операционная система видит ее как пакет и можно применять те же команды, что и к установленным пакетам (pkg_delete/pkg_info). Установленный порт также регистрируется в /var/db/pkg.

На установочных дисках обычно есть каталог pakages и он имеет такую же структуру, как система портов, за исключением директории All, где находятся все пакеты, а в остальных директориях лишь символические ссылки на них. Для установки пакета достаточно примонтировать диск либо скачать пакет с FTP-зеркала под свою архитектуру и версию дистрибутива (pub/FreeBSD/ports/_arch_/packages-_version_) и выполнить:

pkg_add _name-version_.tbz;

но намного удобнее и проще устанавливать непосредственно с FTP-сервера:

pkg_add -r _name-version_.tbz;

автоматически также будут загружены и установлены зависимости пакета. Далее…

25
июля

Система портов в FreeBSD



После установки ОС FreeBSD имеется все, что необходимо для ее работы. Это «стандартные» утилиты входящие в состав систем UNIX, то есть ничего лишнего, а только необходимое.

Стороннее ПО в FreeBSD можно устанавливать несколькими способами:

— через систему портов или пакетов;
— установка из исходников.

Порты — это набор правил и команд для компиляции(сборки) программ.Порты предназначены для упрощения и автоматизации установки, модификации, обновления приложений из исходных кодов, а также отслеживания их зависимостей. С помощью дерева/коллекции/системы портов можно легко установить/обновить/переустановить с нужными настройками требуемую программу. Сама по себе коллекция портов не содержит в себе исходный код программ, а только все необходимое для его получения с некоторого источника и «манипулирования» им.

Для начала работы с деревом портов было бы неплохо их установить, для чего существует несколько способов, к примеру, через: sysinstall, cvsup или portsnap. Рассмотрим метод получения дерева портов через CVSup, который представляет собой получение и синхронизацию исходных текстов с основного репозитория CVS на удаленном сервере, в нашем случае одного из зеркал FreeBSD. Для начала необходимо установить cvsup-клиент — cvsup-without-gui. Далее…

18
июля

Программный RAID в FreeBSD, RAID-1 — gmirror



GEOM — модули ядра для работы с дисками, в том числе и создание программных RAID-массивов. Для создания RAID все диски должны в идеале быть одинакового размера, если какой-то диск имеет больший объем, то место, составляющее разницу, использоваться не будет. Лучшим вариантом будет использовать диски одного производителя той же модели. Основное предназначение RAID — избыточность, производительность, надежность, емкость массива. В зависимости от этого массивы и делятся на разные типы, реализованные соответствующими модулями GEOM для их использования:

RAID-0 — чередование записи на разные диски (gstriping), повышается производительность, но отсутствует избыточность;
RAID-1 — зеркалирование дисков (gmirror), содержимое дублируется между дисками;
RAID-3 — чередование с сохранением контрольных сумм на выделенном диске (graid3), когда диск выпадет с рейда, содержимое можно восстановить с помощью контрольных сумм;
RAID-5 — чередование с сохранением контрольных сумм на всех дисках, в отличии от RAID-3 может сразу обслуживать несколько I/O (ввода/вывода) и массив равен сумме всех жестких дисков, с которых он собран;
RAID 0+1 — зеркалирование дисков, разбитых на чередующиеся области, то есть сначала создается виртуальный диск с массива типа RAID0, а потом зеркало его на такой же набор жестких дисков. Этот тип не обеспечивает отказоустойчивости, как RAID 10.
Далее…

30
июня

Клавиши и комбинации клавиш VIM



VIM — Vi IMproved (Улучшенный Vi). Это очень мощный и гибкий редактор, который открывает большое поле для эффективной и продуктивной деятельности.
Чем большего мастерства вы достигли в работе с редактором VIM, тем больше времени вы будете проводить в его основном режиме, где доступно множество команд. И дабы свести к минимуму работу с текстом и сохранить себе время, которое можно провести с большей пользой, нужно сначала потратить некоторое время для освоения редактора, которое потом многократно окупится.

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

19
июня

Командный процессор ZSH



ZSH — Shell, командная оболочка, командный интерпретатор или же командный процессор, принадлежащий к sh-совместимым, который имеет расширенные возможности и улучшения чем bash.

Шелл имеет расширенные возможности автодополнения, алиасов, перенаправлений ввода/вывода, глоббинг, модульную структуру. Грамматика команд по большей части совпадает с грамматикой других командных процессоров семейства bourne shell, хотя имеются различные расширения.
Далее…

17
июня

Горячие комбинации клавиш shell



Истинная сила *nix систем в командном интерпретаторе, который позволяет пользователю понятно излагать свои мысли для ОС.

Поэтому для более быстрого, удобного и продуктивного общения можно овладеть искусством общения с собеседником в виде эффективного управления происходящим в командной оболочке.

Нужно как можно больше минимизировать затраты времени и сил выполняя какую-либо работу, поэтому объем введенного текста и команд должен -> 0.

Приступим к облегчению затрат труда на получение результата.
Далее…

10
июня

Использование утилиты screen



SCREEN — оконный менеджер, применяемый для создания нескольких оболочек в одном виртуальном терминале. Т.е. с помощью него можно в одной сессии работать с несметным количеством окон. Обычно используется при удаленном доступе по SSH для вjobывания с удовольствием.

Полезные особенности:

— при разрыве соединения, процессы продолжают выполняться на удаленном сервере, т.е. нет привязки к запущенной сессии;
— можно запускать несколько экземпляров программы с требуемым количеством окон в каждом;
— просто очень и очень удобная штука для удаленного администрирования, можно даже сказать незаменимая.

Горячие комбинации клавиш и команд, наиболее полезные и востребованные, дабы труд, который никто не оценит, протекал проще и быстрее.
Далее…

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