Как стать автором
Обновить
0
0

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

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

Gmail может заблокировать ваш платный аккаунт на срок, более чем 24 часа

Время на прочтение4 мин
Количество просмотров157K
Необычное использование — аккаунт временно заблокирован. Эту надпись я наблюдаю со вчерашнего дня при попытке войти в свой gmail аккаунт. И все бы ничего, но вот только у меня платный аккаунт Google Apps for Business по тарифу 50 уе в год с гарантией 99,9% Uptime.

Пользуясь преимуществом платной поддержки обратился к ним в саппорт, с просьбой объяснить причину такого поведения. Надо сказать, что саппорт у них оперативный и вежливый, но отвечает преимущественно цитатами из хелпа. В первую очередь меня отправили читать статью с названием "Мой аккаунт заблокирован". Вот только дело в том, что после 8 лет работы в ай-ти я в таких ситуациях всегда сначала читаю доступную по проблеме информацию и только потом пишу в тех. поддержку, если не могу решить вопрос сам. Ну просто потому, что хотел бы, чтобы и наши клиенты так поступали :) (хотя мы всегда рады помочь и тем, кто не умеет пользоваться google).

Так вот, что рекомендует google тем, кто столкнется с такой же проблемой. А с ней столкнулись за последний месяц еще несколько моих друзей, из разных компаний.
Читать дальше →
Всего голосов 171: ↑153 и ↓18+135
Комментарии114

Внедрение корпоративного Linux в ПриватБанке

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

История


Внедрение Linux в ПриватБанке началось в 2007 году. За это время был пройден большой путь и хотелось бы поделиться с сообществом своим опытом внедрения. На данный момент мы достигли следующих показателей: более 36500 рабочих мест с ОС Linux в 4000 отделений, расположенных в 5 странах.
В 2007 году за основу был взят ASPLinux 11.2. Со временем для альтернативы были выбраны другие дистрибутивы — Fedora, openSUSE, Ubuntu. Позже стала очевидной необходимость создания собственного дистрибутива и системы управления рабочими станциями. Разработка началась в январе 2012 года. Для основы был выбран Ubuntu 12.04 LTS с рабочим окружением Gnome Classic (no effect). Основные аргументы: Ubuntu — самый распространённый десктопный дистрибутив последних лет; обширное комьюнити, где проще найти решение возникающих проблем; именно его в качестве основы внедрения выбрал Google, много примеров внедрения в государственных и муниципальных учреждениях Германии, Франции. Выбор системы управления остановился на Puppet.
В июне 2012 года стартовал переход и к январю 2013 на корпоративную ОС были переведены уже около 95% ПК. Такая скорость перехода обусловлена тем, что сотрудники уже имели опыт работы в Linux.

Основные задачи, которые удалось решить благодаря текущему внедрению:
  • cущественная экономия ресурсов при поддержке ОС на рабочих местах сотрудников;
  • поддержание программного обеспечения в актуальном состоянии;
  • возможность оперативного применения критических обновлений (до 1 часа на всех ПК);
  • cбор и анализ статистической информации о парке ПК и периферии;
  • создание системы проактивной реакции на сбои (Event Manager).

Дальше более детальное описание компонентов нашей реализации.
Читать дальше →
Всего голосов 256: ↑241 и ↓15+226
Комментарии168

Универсальный способ создания пакетов, для различных дистрибутивов GNU Linux

Время на прочтение4 мин
Количество просмотров17K
Различные дистрибутивы предоставляют свои утилиты, для сборки и установки программ.
Например в Debian/GNU Linux — это debuild и dpkg. В Red Hat Linux — rpmbuild и rpm.
Не редко нам приходится собирать пакеты самостоятельно.
Устанавливать программы через make, в обход системы управления пакетами в дистрибутивах — является дурным тоном.
В случаях, когда мы имеем исходный код, и автор программы позаботился о создании Makefile, можно использовать checkinstall.
Но бывает и так, что автор java приложения, не выкладывает ничего кроме jar файла. Или мы хотим на коленке создать какой-то пакет, и положить в репозиторий, что бы в дальнейшем устанавливать/обновлять его на множестве серверов с различными дистрибутивами. В этом нам поможет утилита под названием fpm.
В чем же ее достоинство? Она из коробки позволяет нам собирать пакеты под различные дистрибутивы и даже операционные системы.

Сейчас поддерживаются:
  • deb
  • rpm
  • solaris
  • tar
  • directories
  • Mac OS X .pkg files (osxpkg)

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

Избранное: ссылки по IT безопасности

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




Давно хотел написать этот пост с подборкой полезных ссылок, так как очень часто спрашивают подобное (думаю, у многих, кто в этой (да и в других) сфере). Ссылки разбиты на категории.




Читать дальше →
Всего голосов 92: ↑86 и ↓6+80
Комментарии18

Практическое применение LD_PRELOAD или замещение функций в Linux

Время на прочтение4 мин
Количество просмотров42K
Всем привет!
В 2010 году, shoumikhin написал замечательную статью Перенаправление функций в разделяемых ELF-библиотеках. Та статья очень грамотно написана, полная, но она описывает более харкордный способ замещения функций. В этой статье, мы будем использовать стандартную возможность динамического линкера — переменную окружения LD_PRELOAD, которая может загрузить вашу библиотеку до загрузки остальных.

Как это работает?

Да очень просто — линкер загружает вашу библиотеку с вашими «стандартными» функциями первой, а кто первый — того и тапки. А вы из своей библиотеки можете загрузить уже реальную, и «проксировать» вызовы, попутно делая что вам угодно.

Реальный Use-Case #1: Блокируем mimeinfo.cache в Opera


Мне очень нравится браузер Opera. А еще я использую KDE. Opera не очень уважает приоритеты приложений KDE, и, зачастую, так и норовит открыть скачанный ZIP-архив в mcomix, PDF в imgur-uploader, в общем, вы уловили суть. Однако, если ей запретить читать файл mimeinfo.cache, то она все будет открывать через «kioclient exec», а он-то уж лучше знает, в чем я хочу открыть тот или иной файл.

Чем может приложение открывать файл? На ум приходят две функции: fopen и open. В моем случае, opera использовала 64-битный аналог fopen — fopen64. Определить это можно, воспользовавшись утилитой ltrace, или просто посмотрев таблицу импорта утилитой objdump.
Читать дальше →
Всего голосов 75: ↑74 и ↓1+73
Комментарии14

«Идеальный» www кластер. Часть 1. Frontend: NGINX + Keepalived (vrrp) на CentOS

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


Этом цикле статей «Идеальный www кластер», я хочу передать базовые основы построения высокодоступного и высокопроизводительного www решения для нагруженных web проектов для неподготовленного администратора.
Статья будет содержать пошаговую инструкцию и подойдет любому человеку кто освоил силу copy-paste
Ошибки найденые вами, помогут в работе и мне и тем кто будет читать эту статью позже! Так что любые улучшение и правки приветствуются!

Хочу отметить, что эта инструкция родилась в процессе миграции web-систем компании Acronis в высокодоступный кластер. Надеюсь мои заметки будут полезны и для Вас!.

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

На frontend мы будем использоваться связку из двух службы:



keepalived — реализации протокола VRRP (Virtual Router Redundancy Protocol) для Linux. Демон keepalived следит за работоспособностью машин и в случае обнаружения сбоя — исключает сбойный сервер из списка активных серверов, делегируя его адреса другому серверу.

Другими словами, у нас 2 сервера на которых прописано по одному публичному адресу. Если любой из этих серверов падает, то адрес упавшего подхватывается вторым.
Демоны keepalived общаются по протоколу VRRP, посылая друг другу сообщения на адрес 224.0.0.18.
Если сосед не прислал свое сообщение, то по истечению периода он считается умершим и оба адреса обслуживает оставшаяся нода. Как только упавший сервер начинает слать свои сообщения в сеть, все возвращается на свои места


nginx [engine x] — это HTTP-сервер и обратный прокси-сервер, а также почтовый прокси-сервер, написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных российских сайтов, таких как Яндекс, Mail.Ru, ВКонтакте и Рамблер. Согласно статистике Netcraft nginx обслуживал или проксировал 15.08% самых нагруженных сайтов в октябре 2013 года.

Основная функциональность HTTP-сервера

  • Обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кэш дескрипторов открытых файлов;
  • Акселерированное обратное проксирование с кэшированием, простое распределение нагрузки и отказоустойчивость;
  • Акселерированная поддержка FastCGI, uwsgi, SCGI и memcached серверов с кэшированием, простое распределение нагрузки и отказоустойчивость;
  • Модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, XSLT-фильтр, SSI-фильтр, преобразование изображений; несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI, выполняются параллельно;
  • Поддержка SSL и расширения TLS SNI.


Другие возможности HTTP-сервера

  • Виртуальные серверы, определяемые по IP-адресу и имени;
  • Поддержка keep-alive и pipelined соединений;
  • Гибкость конфигурации;
  • Изменение настроек и обновление исполняемого файла без перерыва в обслуживании клиентов;
  • Настройка форматов логов, буферизованная запись в лог, быстрая ротация логов;
  • Специальные страницы для ошибок 3xx-5xx;
  • rewrite-модуль: изменение URI с помощью регулярных выражений;
  • Выполнение разных функций в зависимости от адреса клиента;
  • Ограничение доступа в зависимости от адреса клиента, по паролю (HTTP Basic аутентификация) и по результату подзапроса;
  • Проверка HTTP referer;
  • Методы PUT, DELETE, MKCOL, COPY и MOVE;
  • FLV и MP4 стриминг;
  • Ограничение скорости отдачи ответов;
  • Ограничение числа одновременных соединений и запросов с одного адреса;
  • Встроенный Perl.


Читать дальше →
Всего голосов 46: ↑40 и ↓6+34
Комментарии79

Десятка лучших консольных команд

Время на прочтение2 мин
Количество просмотров198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше
Всего голосов 382: ↑346 и ↓36+310
Комментарии215

Создание 1k/4k intro для Linux, часть 1

Время на прочтение10 мин
Количество просмотров9.3K
«на русской сцене мы удивляем друг друга тем, что вообще что-то делаем», © manwe
(из статуса SCRIMERS на demoscene.ru/forum)

Пятиминутка мета: в этом тексте вам, котятки, предстоит прочитать о том, как потратить свое время совершенно неэффективно с точки зрения отношения размера полученного продукта к потраченным времени и усилиям.
Предположим, что мы хотим сделать что-нибудь эдакое, например, интру размером до 4кб, но мы нищеброды, и у нас нет денег на виндовс и видеокарту с шейдерами, поддерживающими ветвления. Или мы просто не хотим брать стандартный набор из apack/crinkler/sonant/4klang/боже-что-там-еще-есть, делать очередную «смотрите все! я тоже умею рэймарчинг дистанс филдс!» и теряться среди десятков-сотен таких же. Ну или же мы просто любим выпендриваться как попало в надежде, что девочки на нас наконец-то обратят внимание.

В общем, не важно. Пусть у нас просто есть какой-нибудь линукс со слабой видеокартой и вся юность впереди. Попробуем со всем этим теперь создать запускаемый файл размером не более, скажем, 1024 байт, который при запуске умудрялся бы каким-нибудь образом создавать и показывать пользователю что-нибудь (эдакое).



омг сколько текста
Всего голосов 192: ↑183 и ↓9+174
Комментарии54

Как не потерять данные в PostgreSQL

Время на прочтение5 мин
Количество просмотров61K
PostgreSQL предлагает несколько вариантов резервирования данных. Обо всех них уже рассказано не раз, в том числе и на хабре. Но в основном рассказывается про технические особенности методов. Я же хочу постараться рассказать про общую стратегию резервного копирования, объединив все методы в эффективную систему, которая поможет вам сохранить все данные и уменьшить число погибших нервных клеток в критических ситуациях.
Вводные данные: сервер PostgreSQL 9.2, База размером >100Gb.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии16

Об одной особенности теоремы Котельникова

Время на прочтение3 мин
Количество просмотров71K
Написать данную статью меня вдохновила следующая задача:

Как известно из теоремы Котельникова, для того, чтобы аналоговый сигнал мог быть оцифрован а затем восстановлен, необходимо и достаточно, чтобы частота дискретизации была больше или равна удвоенной верхней частоте аналогого сигнала. Предположим, у нас есть синус с периодом 1 секунда. Тогда f = 1∕T = 1 герц, sin((2 ∗ π∕T) ∗ t) = sin(2 ∗ π ∗ t), частота дискретизации 2 герца, период дискретизации 0,5 секунды. Подставляем значения, кратные 0,5 секунды в формулу для синуса sin(2 ∗ π ∗ 0) = sin(2 ∗ π ∗ 0,5) = sin(2 ∗ π ∗ 1) = 0
Везде получаются нули. Как же тогда можно восстановить этот синус?

Читать дальше →
Всего голосов 52: ↑39 и ↓13+26
Комментарии19

Поддержка PHP в Google App Engine!

Время на прочтение1 мин
Количество просмотров15K
3 дня назад, 8 октября, Google анонсировал поддержку PHP в App Engine для всех пользователей. Ранее она была доступна только ограниченному кругу лиц для тестирования.
В API есть некоторые ограничения, но, в общем-то, популярные приложения работают!

Итак, точно поддерживаются:
  • phpMyAdmin
  • Drupal
  • phpBB
  • Wordpress
Фреймворки:
  • Laravel
  • Silex
  • Codeigniter

Также, доступны API для взаимодействия с Google Drive и Google+, Google Storage, App Engine Task Queues и App Engine Modules
Всего голосов 60: ↑52 и ↓8+44
Комментарии31

Картинки с внешних ресурсов — добро или зло?

Время на прочтение6 мин
Количество просмотров33K
Большинство многопосещаемых площадок позволяют размещать у себя картинки с внешних ресурсов. Это очень удобная и полезная фича не только для простых пользователей, но и для людей, собирающих информацию о вас.

Большой брат следит за тобой

Вы хотите узнать больше информации о самых действенных методах? Вам интересно, как с помощью маленькой картинки определить разрешение экрана, локальное время и сменить парочку паролей? Добро пожаловать под кат!
Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии20

Детальный ликбез про корпоративный бэкап, как сравнивать системы + пара практических советов

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

Cистема резервного копирования может работать вот так

Чем корпоративный бэкап отличается от домашнего?
Масштаб — инфраструктуры до петабайта. Скорость – тысячи транзакций в секунду, поэтому, например, нужно уметь забирать бэкап из базы данных на лету, не останавливая запись. Зоопарк систем: рабочие машины, мобильные телефоны и планшеты, профили людей в «облаке», копии баз данных CRM/ERP, все это на разных ОС и в тяжелых разветвленных системах.

Ниже я расскажу про решения от IBM, EMC, CommVault, Symantec и то, что они дают как бизнесу в целом, так и IT-отделу. Плюс о некоторых подводных камнях.

Давайте посмотрим на эти особенности бэкапа в обычных российских компаниях. В том числе таких, которые бэкапятся только на случай изъятия оборудования.
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии25

Сломается ли база, если выдернуть сервер из розетки, или потроха DB ORACLE для чайников

Время на прочтение5 мин
Количество просмотров29K
Писал для коллег — программистов, далёких от предметной области, которые действительно, искренне не понимали, что такого сложного в базе данных. Они хотели хранить критические данные в простых файлах. Я задавал им каверзные вопросы о надёжности, скорости и одновременном доступе, они пытались «на ходу» придумать хитрые решения. В конце они трезво оценили требуемый объём кода и поняли, что им придётся написать свой маленький ORACLE или, хотя бы, MySQL. Затем я рассказал им, как были решены эти проблемы в DB ORACLE, их поразило изящество некоторых алгоритмов. Лекция понравилась, и я решил выложить её в открытый доступ.

Читать дальше →
Всего голосов 40: ↑29 и ↓11+18
Комментарии46

Linux pipes tips & tricks

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

Pipe — что это?


Pipe (конвеер) – это однонаправленный канал межпроцессного взаимодействия. Термин был придуман Дугласом Макилроем для командной оболочки Unix и назван по аналогии с трубопроводом. Конвейеры чаще всего используются в shell-скриптах для связи нескольких команд путем перенаправления вывода одной команды (stdout) на вход (stdin) последующей, используя символ конвеера ‘|’:
cmd1 | cmd2 | .... | cmdN

Например:
$ grep -i “error” ./log | wc -l
43

grep выполняет регистронезависимый поиск строки “error” в файле log, но результат поиска не выводится на экран, а перенаправляется на вход (stdin) команды wc, которая в свою очередь выполняет подсчет количества строк.

Логика


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

Размер буфера начиная с ядра версии 2.6.11 составляет 65536 байт (64Кб) и равен странице памяти в более старых ядрах. При попытке чтения из пустого буфера процесс чтения блокируется до появления данных. Аналогично при попытке записи в заполненный буфер процесс записи будет заблокирован до освобождения необходимого места.
Важно, что несмотря на то, что конвейер оперирует файловыми дескрипторами потоков ввода/вывода, все операции выполняются в памяти, без нагрузки на диск.
Вся информация, приведенная ниже, касается оболочки bash-4.2 и ядра 3.10.10.

Простой дебаг


Утилита strace позволяет отследить системные вызовы в процессе выполнения программы:
$ strace -f bash -c ‘/bin/echo foo | grep bar’
....
getpid() = 13726                   <– PID основного процесса
...
pipe([3,  4])                       <– системный вызов для создания конвеера
....
clone(....) = 13727                <– подпроцесс для первой команды конвеера (echo)
...
[pid 13727] execve("/bin/echo",  ["/bin/echo",  "foo"],  [/* 61 vars */] 
.....
[pid 13726] clone(....) = 13728    <– подпроцесс для второй команды (grep) создается так же основным процессом
...
[pid 13728] stat("/home/aikikode/bin/grep",   
...
Видно, что для создания конвеера используется системный вызов pipe(), а также, что оба процесса выполняются параллельно в разных потоках.
Читать дальше →
Всего голосов 105: ↑97 и ↓8+89
Комментарии36

Почему не растет частота?

Время на прочтение7 мин
Количество просмотров165K
Clocking PCМногие, наверное, помнят, какими темпами увеличивалась тактовая частота микропроцессора в 90-х и начале 2000-х годов. Десятки мегагерц стремительно переросли в сотни, сотни мегагерц почти мгновенно сменились цельным гигагерцем, затем гигагерцем с долями, двумя гигагерцами и т.д.
Но последние несколько лет частота уже не растет так быстро. От десятка гигагерц мы сейчас почти так же далеки, как и 5 лет назад. Так куда же исчез прежний темп? Что препятствует, как и раньше, «задирать» частоту вверх?

Текст ниже ориентирован на людей, не знакомых или слабо знакомых с архитектурой микропроцессора. Для подкованных читателей рекомендуются соответствующие посты yurav

Читать дальше →
Всего голосов 178: ↑162 и ↓16+146
Комментарии204

FQ_CoDel — планировщик пакетов, который сделает все за вас

Время на прочтение3 мин
Количество просмотров26K
Качаете и раздаете торренты на высокой скорости, но из-за этого прыгает пинг в онлайн-играх, и играть становится невозможно? Сожитель совершает видеозвонок по скайпу, а вы не хотите ему мешать? Держите файлопомойку, которая занимает весь канал, а QoS настраивать лень? Заливаете видео на youtube с телефона, скорость ограничить не можете?

fq_codel — планировщик пакетов (qdisc) с активным управлением очередью, который решит все ваши проблемы!
Все еще не верите? Посмотрите видео!

На видео видно, что компьютер слева, подключенный через обычный домашний роутер с прошивкой cerowrt (измененный OpenWRT), открывает сайты значительно быстрее, чем правый компьютер с тем же роутером, но со стандартной прошивкой.
Читать дальше →
Всего голосов 42: ↑42 и ↓0+42
Комментарии31

Аутентификация в Cisco IOS

Время на прочтение4 мин
Количество просмотров127K
AAA (Authentication Authorization and Accounting) — система аутентификации авторизации и учета событий, встроенная в операционную систему Cisco IOS, служит для предоставления пользователям безопасного удаленного доступа к сетевому оборудованию Cisco. Она предлагает различные методы идентификации пользователя, авторизации, а также сбора и отправки информации на сервер.

Однако мало того, что ааа по умолчанию выключена; конфигурация этой системы — дело довольно запутанное. Недочеты в конфигурации могут привести либо к нестабильному, небезопасному подключению, либо к отсутствию какого-либо соединения в принципе. В данной статье мы подробно разберем схему настройки аутентификации при помощи aaa.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии21

MikroTik QoS — развенчание мифов

Время на прочтение8 мин
Количество просмотров138K
Перед тем, как настраивать роутер (не важно — офисный аппаратный роутер за 50 долларов или программный роутер на базе сервера с двумя 4-х ядерными процессорами) — важно понимать, как пакеты двигаются по цепочкам (изучить в онлайн документации Диаграммы движения пакетов — Packet Flow Diagrams).
Невозможно должным образом управлять и поддерживать сложные конфигурации без понимания того — что, где, когда и почему происходит.

В случае бриджинга трафика (Layer 2 (MAC)) — роутинг представлен ввиде черного серого «ящика» Layer3,




Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии36

Http запросы — мы все это делаем неправильно

Время на прочтение3 мин
Количество просмотров188K
В проекте, над которым я работаю, мы используем огромное количество сторонних библиотек. Многие из них — адаптеры для различных сервисов. Что их объединяет, это то, что они работают с сетью. Json поверх http, soap поверх http, какие-то свои протоколы поверх http. Т.е. все так или иначе используют http. И как ни удивительно, мало кто из них пользуется преимуществами его последней версии. Я не поленился заглянуть в википедию, прошло ровно 14 лет как была принята спецификация http 1.1. И потому я решил обратиться с призывом:
image

Да, речь пойдет о keep alive. Суть в том, что, начиная с http 1.1, клиент и сервер могут договориться не закрывать установленное tcp-соединение после завершения запроса, а переиспользовать его для следующих запросов. Это нужно потому, что на установку соединения требуется время. Иногда это время больше, чем время самого запроса. И если все серверы уже давным-давно такую возможность поддерживают, а все браузеры и большинство других клиентов её используют, то у разработчиков различных библиотек для популярных языков программирования здесь почему-то пробел.
Читать дальше →
Всего голосов 167: ↑142 и ↓25+117
Комментарии169

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность