Как стать автором
Обновить
0
0
Alexander Kuznecov @x_T

Пользователь

Отправить сообщение

Команда sponge: «губка» для стандартного ввода

Время на прочтение3 мин
Количество просмотров12K
Все мы знаем, что при выполнении команд в шелле мы можем перенаправлять стандартный вывод на стандартный ввод других команд, а также записывать его в файл.

Это достаточно детально описано в главе I/O Redirection в «Продвинутом руководстве по программированию на Bash» (Advanced Bash-Scripting Guide).

В частности, иногда бывает так, что вам нужно прочитать какой-то файл, как-то его обработать (например, выбрать оттуда только те строки, которые подходят под некое регулярное выражение), и затем записать результат в тот же самый файл. Допустим, ваш файл называется «messages.log», и вы хотите оставить в нём только те строки, которые начинаются со слова «Success», двоеточия и пробела (а все остальные строки убрать).

Можно предположить, что для этого подойдёт такая команда:

grep "^Success:\s" messages.log > messages.log

Но это предположение окажется неправильным — при выполнении этой строчки файл messages.log будет открыт на запись и очищен ещё до того, как grep начнёт его просматривать.
Читать дальше →
Всего голосов 62: ↑53 и ↓9+44
Комментарии23

Multihome Policy-Based Routing на pf

Время на прочтение8 мин
Количество просмотров7.7K
Продолжаем публикацию полезных статей о непростых вещах.
Сегодня речь пойдёт о публикации различных сервисов через несколько провайдеров связи одновременно.

В связи с тем, что с течением времени почти во всех организациях появляются дополнительные каналы связи для резервирования или других нужд, возникает вопрос: «А можно ли использовать эти каналы связи для одновременной публикации корпоративных сервисов ?»
Некоторое время назад данный вопрос возник и у нас в компании, поэтому было решено перестроить внешний периметр.
В нашем случае было 4 провайдера и следующий список сервисов:
  • HTTP сервисы(около 60 сайтов)
  • XMPP сервис
  • HTTPS Сервер корпоративной почты(Exchange)
  • VPN сервис
  • SSH
  • IMAP, IMAPS, POP, POP3S, SMTP, SMTPS
  • OwnCloud

Читать дальше →
Всего голосов 2: ↑1 и ↓10
Комментарии11

Создание своего образа с чистым CentOS 5.9 в облаке Amazon

Время на прочтение5 мин
Количество просмотров8.8K
Как известно, в облаке Amazon виртуальные инстансы запускаются на основе образов (так называемые AMI). Amazon предоставляет большое их количество, также можно использовать публичные образы, подготовленные сторонними организациями, за которые облачный провайдер, естественно, никакой ответственности не несёт. Но иногда нужен образ чистой системы с нужными параметрами, которого нет в списке образов. Тогда единственный выход — сделать свой AMI.

В официальной документации описан способ создания «instance store-backed AMI». Минус такого подхода заключается в том, что готовый образ нужно будет ещё и сконвертировать в «EBS-backed AMI»

О том, как создать свой EBS-backed AMI в облаке Amazon без промежуточных шагов, пойдёт речь в этой статье.
Читать дальше →
Всего голосов 13: ↑8 и ↓5+3
Комментарии2

Zend Optimizer+ наконец выложен на гитхаб

Время на прочтение1 мин
Количество просмотров17K
Пару недель назад, Zeev Suraski, один из главных контрибьюторов PHP и по совместительству co-founder Zend, предложил включить в ядро PHP Zend Optimizer+.
Zend Optimizer+ это, так же как и Apc, кешер опкодов. Но, в отличии от Apc, он также неплохо умеет применять стандартные паттерны оптимизации кода.
Помимо этого, оптимайзер дает одну хорошую плюшку — его разработку поддерживает коммерческая организация, например стабильная поддержка трейтов в нем появилась почти одновременно с релизом PHP 5.4, в то время как APC нужно было ждать около полугода. В данный момент он уже поддерживает PHP 5.5.
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии21

redmine_wiki_encryptor — плагин шифрования данных Wiki Redmine

Время на прочтение2 мин
Количество просмотров6K
Redmine Если вы храните конфиденциальные данные в Wiki Redmine, наверняка задумывались, что случится, если кто-то сможет получить доступ к серверу и загрузить БД.
Предлагаю вашему вниманию, разработанный нашей компанией, плагин redmine_wiki_encryptor. С помощью этого плагина Redmine будет расшифровывать на лету данные из таблиц Wiki, таким образом, даже если кто-то и получит дамп БД, без ключа ничего прочитать не сможет.

Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии6

PostfixАdmin revamped (ViMbAdmin)

Время на прочтение11 мин
Количество просмотров20K

ViMbAdmin



ViMbAdmin проект (vim/-be/-admin/) предоставляет веб-интерфейс администрирования виртуальных
почтовых ящиков, позволяя почтовым администраторам легко управлять доменами, и псевдонимами.
ViMbAdmin является свободным программным обеспечением, вы можете распространять или изменять его в соответствии с условиями GNU General Public License версии 3.

ViMbAdmin был написан на PHP с использованием нашего собственного web application framework, который включает Zend Framework, ORM Doctrina и система шаблонов Smarty с JQuery и Bootstrap.

ViMbAdmin размещается на отдельной странице проекта GitHub, где можно найти документацию,
просмотреть исходный код. GitHub

UPDATE:
yum install dovecot-mysql

Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии13

И снова о… LAMP и базово защищённый мини-хостинг своими руками

Время на прочтение9 мин
Количество просмотров56K
Увидев в очередной раз презренный посыл в Google в ответ на вопрос о том, как развернуть собственную LAMP'у, решил написать данный пост. Чтобы хоть как-то разбавить тонны радостных отчётов об успешной установке из блогов, суть которых сводится к одной команде aptitude install blah-blah.

Нет, ну конечно понятно, PHP самый надёжный язык, а все движки сайтов, на нём написанные, являются живым воплощением непробиваемой защиты от взлома. Тогда да — aptitude install apache2 — и будет вам счастье. Не забудьте оставить phpmyadmin по дефолтному адресу, да поставьте какое-нибудь дырявое FTP решето.

Вообще, как оказалось, многие даже не в курсе, что взломав сайт и получив возможность исполнять свой PHP код, злоумышленник на системе с дефотными настройками сможет как минимум прочитать в вашей системе почти что угодно. Оно и понятно — работая с Linux привыкаешь как-то, что по дефолту безопасность находится на вполне достаточном уровне. А тут такая дыра…

В общем — в этой статье в очередной раз описывается банальщина на тему как развернуть LAMP и дать доступ внешним пользователям к файлам и базам ваших сайтов. Т.е. как быстро сделать мини-хостинг своими руками. Однако, в отличие от, хостинг у нас будет хотя бы базово защищённым.

Те, кому тема веб-серверов надоела, возможно смогут найти в статье интересные приёмы многопользовательского ограниченного доступа к серверу по SFTP.

И нет, это не ещё одна статья с описанием установки Linux и выполнением aptitude install apache2. Скорее наоборот: в этой статье я хотел показать фатальную недостаточность данных манипуляций и мягко говоря некомпетентность тех, кто их тиражирует в интернете.
Итак - снова LAMP
Всего голосов 78: ↑47 и ↓31+16
Комментарии76

Сборник полезных ссылок для системного администратора

Время на прочтение2 мин
Количество просмотров188K
Думаю у каждого грамотного системного администратора есть коллекция ссылок на полезные в работе ресурсы. Я имею в виду различные сайты и блоги, на которых выкладываются полезные с точки зрения системного администратора посты.
Предлагаю ими поделиться в формате ссылка — описание.
Пример: habrahabr.ru — разнообразные статьи и новости на IT и около-IT тематику.

Если Вы считаете ссылку полезной — ставьте плюсы нужному сообщению и я добавлю эту ссылку в свой пост (но и без плюсов тоже буду добавлять, просто медленнее т.к придется каждую ссылку изучать самостоятельно).
В результате (если поучаствует достаточно человек) мы получим неплохую подборку ссылок, которую я возможно разобью на категории.

P.S. Хабр, опеннет и лор можно не упоминать. Можно выкладывать ссылки на конкретные статьи, если считаете их очень полезными.

Начну с себя (т.к я администрирую linux, то и ссылки у меня в основном соответствующие):
Читать дальше →
Всего голосов 105: ↑88 и ↓17+71
Комментарии68

Ускоряем запуск Ruby on Rails используя набор патчей RVM railsexpress

Время на прочтение2 мин
Количество просмотров7.3K
Эта статья для тех, кто хочет ускорить запуск рельс, а заодно ускорить работу интерпретатора ruby.
О том как установить RVM (Ruby version manager) уже написано много статей, поэтому я перейду сразу к делу.
Список патчей в RailsExpress для Ruby 1.9.3-p362
(это последняя версия руби на момент написания статьи)
Applying patch railsexpress/01-fix-make-clean.patch
Applying patch railsexpress/02-railsbench-gc.patch
Applying patch railsexpress/03-display-more-detailed-stack-trace.patch
Applying patch railsexpress/04-fork-support-for-gc-logging.patch
Applying patch railsexpress/05-track-live-dataset-size.patch
Applying patch railsexpress/06-webrick_204_304_keep_alive_fix.patch
Applying patch railsexpress/07-export-a-few-more-symbols-for-ruby-prof.patch
Applying patch railsexpress/08-thread-variables.patch
Applying patch railsexpress/09-faster-loading.patch
Applying patch railsexpress/10-falcon-st-opt.patch
Applying patch railsexpress/11-falcon-sparse-array.patch
Applying patch railsexpress/12-falcon-array-queue.patch

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии14

EC2 — анализ цен для стартапа

Время на прочтение3 мин
Количество просмотров6.7K
В данный момент я занимаюсь поиском подходящих серверов для инфрастуктуры моего проекта. Я остановился на EC2 и решил проанализировать, какое решение будет наиболее экономически выгодным для меня. Эта статья по сути является продолжением AWS Insight: Резервации в EC2 — как это работает, но приводит анализ для молодого веб-стартапа (24x7).

Проблема


Сервер должен работать 24 часа в сутки напротяжении X месяцев (количество не определено). Какой вариант (On Demand / Light Utilization Reserved / Medium Utilization Reserved / Heavy Utilization Reserved) выбрать для Micro/Small/Medium/Large серверов?

Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии27

High resolution patches — новая жизнь старых игр

Время на прочтение4 мин
Количество просмотров140K
Доброй пятницы, уважаемый хабр!

Думаю, многие хабравчане проводят какую-то часть своего досуга за компьютерными играми. И если дело касается игр последних лет, то проблем нет, лишь бы мощности компьютера хватало. Но со старыми играми всё не так просто.

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

Предположим, что ваша любимая игра все же запустилась. Сначала радости нет предела. Но только до тех пор, пока вы не обнаружите, что максимальное доступное разрешение — 1024х768, а то и вовсе 800х600. На современном мониторе это означает огромные элементы GUI игры, смазанную картинку, а если монитор широкоформатный — еще и сильно искаженные, «пузатые» пропорции. Некоторых фанатов такие мелочи, конечно же, не смущают. Но зачем отказывать себе в максимальном удовольствии от игры, если решить проблему не так уж и сложно?

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

Читать дальше →
Всего голосов 131: ↑125 и ↓6+119
Комментарии94

Ключ от всех дверей в непрерывной интеграции — rundeck

Время на прочтение4 мин
Количество просмотров31K
При большом количестве серверов и виртуальных машин и еще большем количестве кода в постоянном деплое, неизбежно возникают проблемы администрирования всего этого огромного хозяйства. Существует множество инструментов, позволяющих организовать continuous integration. В нашем списке точно уже есть GIT, Jenkins, Chef, Proxmox, Graylog2. Сегодня мы расскажем еще об одном удобном инструменте для автоматизации рутинных задач с помощью сценариев — rundeck. Эта статья — не подробный мануал с примерами конфигов, а скорее размышления на тему.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии28

Ruby на вашем сервере может работать в 2 раза медленее из-за RVM

Время на прочтение2 мин
Количество просмотров17K

Просматривая сегодня «Ruby Inside», наткнулся на статью Justin Kulesza Is Your Application Running with Ruby – Slow?. Статья от 6 ноября, но на Хабре об этой ситуации ни слова. А суть статьи вот в чем: ребята переносили свое приложение с сервера на Solaris на сервер с Ubuntu и использовали RVM для компиляции Ruby. Однако после переноса они заметили, что приложение стало как-будто бы тормознутее. Сначала погрешили на железо, но быстро выяснили, что дело в RVM, а именно в том, что RVM совершенно не использует оптимизацию при компиляции.
Читать дальше →
Всего голосов 61: ↑59 и ↓2+57
Комментарии34

Подборка цветовых схем подсветки синтаксиса для Sublime, TextMate и Vim

Время на прочтение1 мин
Количество просмотров63K
Дейл Риз — один из разработчиков PHP-фреймворка Laravel — выложил на Гитхаб весьма приятную подборку цветовых схем, совместимую с Sublime Text 2, Vim и TextMate. В неё входят преимущественно тёмные темы (21 из 25), и, что бывает не так уж часто, практически все они выглядят очень прилично — есть из чего выбрать. Инструкции по установке и скриншоты каждой темы — в репозитории.
Под катом — скриншоты всех 25 схем.
Читать дальше →
Всего голосов 59: ↑45 и ↓14+31
Комментарии63

Приемы написания скриптов в Bash

Время на прочтение7 мин
Количество просмотров173K
Администраторам Linux писать скрипты на Bash приходится регулярно. Ниже я привожу советы, как можно ускорить эту работу, а также повысить надежность скриптов.

Совет 1

Не пишите скриптов, которые выполняют действия ничего не спрашивая. Такие скрипты нужны довольно редко. А вот всевозможного «добра» для копирования, синхронизации, запуска чего-либо, хоть отбавляй. И если в любимом Midnight Commander Вы вдруг нажали не на тот скрипт, то с системой может произойти все что угодно. Это как правила дорожного движения — «написано кровью».

Совет 2

Отталкиваясь от предыдущего, в начало каждого скрипта неплохо помещать что-то вроде:
read -n 1 -p "Ты уверен, что хочешь запустить это (y/[a]): " AMSURE 
[ "$AMSURE" = "y" ] || exit
echo "" 1>&2
Команда echo, кстати, здесь нужна потому, что после нажатия кнопки <y> у вас не будет перевода строки, следовательно, следующий любой вывод пойдет в эту же строку.

Совет 3

Это ключевой совет из всех. Для того, чтобы не писать каждый раз одно и то же — пользуйтесь библиотеками функций. Прочитав много статей по Bash, я вынужден констатировать, что этой теме уделяется мало внимания. Возможно в силу очевидности. Однако я считаю необходимым напомнить об этом. Итак.
Заведите свою библиотеку функций, например myfunc.sh и положите ее, например в /usr/bin. При написании скриптов она не только поможет сократить ваш труд, но и позволит одним махом доработать множество скриптов, если Вы улучшите какую-либо функцию.
Например, в свете совета 2 можно написать такую функцию:
Читать дальше →
Всего голосов 121: ↑83 и ↓38+45
Комментарии46

Так как же удалить миллионы файлов из одной папки?

Время на прочтение5 мин
Количество просмотров146K

Феерическая расстановка точек над i в вопросе удаления файлов из переполненной директории.

Прочитал статью Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки и очень удивился. Неужели в стандартном инструментарии Linux нет простых средств для работы с переполненными директориями и необходимо прибегать к столь низкоуровневым способам, как вызов getdents() напрямую.

Для тех, кто не в курсе проблемы, краткое описание: если вы случайно создали в одной директории огромное количество файлов без иерархии — т.е. от 5 млн файлов, лежащих в одной единственной плоской директории, то быстро удалить их не получится. Кроме того, не все утилиты в linux могут это сделать в принципе — либо будут сильно нагружать процессор/HDD, либо займут очень много памяти.

Так что я выделил время, организовал тестовый полигон и попробовал различные средства, как предложенные в комментариях, так и найденные в различных статьях и свои собственные.
Читать дальше →
Всего голосов 155: ↑145 и ↓10+135
Комментарии103

Памятка пользователям ssh

Время на прочтение13 мин
Количество просмотров1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Всего голосов 360: ↑352 и ↓8+344
Комментарии148

Лучший способ изучить Rails

Время на прочтение5 мин
Количество просмотров200K
Доброго времени суток!

Предисловие


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

Введение


У меня за спиной огромный опыт работы с PHP, но сейчас я работаю Rails разработчиком. Огромную сложность для большинства людей, которые пытаются освоить что-то новое — это сам процесс обучения. Когда вы владеете каким-либо языком или фреймворком и знаете его вдоль и поперёк, переход на что-то новое не представляется необходимым.

Однако, изучение Ruby on Rails является достаточно простым занятием. Это невероятно мощный фреймворк, который имеет огромное сообщество, продвигающее его вперёд. Итак, у нас возникает вопрос: какой способ изучить Rails является лучшим? Вот он — план занятий.
Читать дальше →
Всего голосов 83: ↑69 и ↓14+55
Комментарии118

Централизованный сбор, хранение и просмотр Syslog в Debian Linux

Время на прочтение2 мин
Количество просмотров58K
В качестве стандартного syslog-сервиса в Debian используется rsyslog. Дальше рассказывается, как отправлять копии журналов на сервер, сохранять их в SQL-базе и просматривать через удобный Веб-интерфейс.

Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии12

Учим bash-скрипты, пишем Sokoban

Время на прочтение4 мин
Количество просмотров138K
Мне кажется, что на свете еще есть люди, которые хорошо знают несколько языков программирования, но при этом не пишут скриптов для bash, потому что скриптовый язык bash выглядит для них слишком странным. Чтобы доказать, что bash — это несложно, я написала игру Сокобан (или Грузчик, кому как нравится), и хочу рассказать, как она работает.
Краткая справка по bash, скриншот игры, исходный код и ссылка на файл - под катом
Всего голосов 170: ↑164 и ↓6+158
Комментарии67
1

Информация

В рейтинге
Не участвует
Откуда
Омск, Омская обл., Россия
Дата рождения
Зарегистрирован
Активность