Pull to refresh
0
0
Send message

Простой и удобный шаблон для bash-скриптов выполняемых по расписанию

Level of difficultyEasy
Reading time4 min
Views25K

Хочу поделиться с сообществом простым и полезным шаблоном скрипта-обёртки на bash для запуска заданий по cron (а сейчас и systemd timers), который моя команда повсеместно использует много лет.

Сначала пара слов о том зачем это нужно, какие проблемы решает. С самого начала моей работы системным администратором linux, я обнаружил, что cron не очень удобный планировщик задач. При этом практически безальтернативный. Чем больше становился мой парк серверов и виртуальных машин, тем больше я получал абсолютно бесполезных почтовых сообщений "From: Cron Daemon". Задание завершилось с ошибкой - cron напишет об этом. Задание выполнено успешно, но напечатало что-нибудь в STDOUT/STDERR - cron всё равно напишет об этом. При этом даже нельзя отформатировать тему почтового сообщения для удобной автосортировки. Сначала были годы борьбы с использованием разных вариаций из > /dev/null, 2> /dev/null, > /dev/null 2>&1, | mail -E -s '<Subject>' root@.

Читать далее
Total votes 52: ↑49 and ↓3+55
Comments4

GOST: швейцарский нож для туннелирования и обхода блокировок

Level of difficultyMedium
Reading time13 min
Views109K

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

Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...

Читать далее
Total votes 145: ↑142 and ↓3+174
Comments114

Нужные HTTP-заголовки

Reading time5 min
Views45K
Наши клиенты в Fastly любят манипулировать заголовками HTTP. Подбор правильной комбинации заголовков — одна из лучших вещей, какую вы можете сделать для безопасности своего сайта и значительного вклада в его производительность.

Большинство разработчиков знают о важных и нужных HTTP-заголовках. Самые известные — Content-Type и Content-Length, это почти универсальные хедеры. Но в последнее время для повышения безопасности начали использоваться заголовки вроде Content-Security-Policy и Strict-Transport-Security, а для повышения производительности — Link rel=preload. Несмотря на широкую поддержку в браузерах, лишь немногие их используют.

В предыдущей статье мы рассмотрели ненужные заголовки. Сейчас разберёмся, какие заголовки действительно следует настроить для своего сайта.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments5

Удивительно полезный инструмент: lsof

Reading time9 min
Views133K
Я привык искать проблемы в коде или в системе, пользуясь логами или показателями мониторинга, которые выводятся на симпатичных панелях управления с простым и понятным интерфейсом. Однако, если по какой-то причине данные на панель управления не поступают, или логи какой-нибудь службы недоступны, отладка усложняется. Теперь подобных проблем немного, встречаются они редко, но они, всё же, случаются. Поэтому и в наше время весьма ценно знание инструментов, которые помогают понять, что не так с неким процессом на каком-нибудь компьютере.

image
Читать дальше →
Total votes 73: ↑69 and ↓4+65
Comments30

Большой FAQ про разные виды коррекции зрения: все вопросы гиков в одном месте

Reading time29 min
Views181K
Ниже – прямое сравнение видов коррекции (операций) с удобной сводкой по возможным осложнениям и применимости, плюс море других вопросов от профессиональных параноиков: от «что будет, если махнуть головой во время операции» до «а отдадут ли мне ткань, которую вынули из моего глаза» и «что будет в старости с моим зрением».

– Что лучше: очки, линзы или лазерная коррекция?

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

– Я решил остановиться на очках, но боюсь, что мне в лицо откроется подушка автомобиля и они станут контактными линзами. Что делать?

По моему хирургическому опыту, современные подушки безопасности не травмируют очкариков. Глаза и лицо обычно повреждаются осколками лобового стекла. Если вы беспокоитесь о сохранности очков, то подумайте про современные, с поликарбонатными линзами. Они невероятно прочные: на краш-тестах по ним машина ездит.

Если вы видите плохо и не надеваете очки, то вы теряете часть информации об окружающем мире и при этом создаёте дополнительную нагрузку на зрительный аппарат. Есть проблема – нужна оптическая коррекция. А испортить глаза очками можно, как один из наших коллег из клиники в г. Марбурге – он уснул в стеклянных очках за компьютером дома, упал лицом на клавиатуру, и осколок стекла вошёл в хрусталик. В итоге сначала заменили хрусталик, потом через год понадобилась трансплантация.
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments91

OpenSSL, ssl_ciphers и nginx: прокачиваем на 100%

Reading time11 min
Views90K


Много где написано о том, как получить 100% и A+ по тесту от Qualys. При всём при том практически везде директивы ssl_ciphers и подобные даются как эдакие магические строки, которые нужно просто вставить, и надеяться, что автор не подводит вас под монастырь. Эта статья призвана исправить это недоразумение. По прочтению этой статьи директива ssl_ciphers потеряет для вас всякую магию, а ECDHE и AES будут как друзья да братья.


Также вы узнаете почему 100% по тестам — не всегда хорошо в реальности.

Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments92

Ansible: настраиваем zsh терминал с antigen, autosuggestions, fzf и красивым prompt одной командой

Reading time6 min
Views47K

Я провожу в терминале много времени, поэтому хочется, чтобы все было красиво, быстро и удобно. Из этого рождается постоянное желание его настраивать, пробовать разные плагины. Шеллом я выбрал для себя zsh лет 5 назад, пару лет назад нашел oh-my-zsh для его удобной настройки.


Со временем к этому конфигу добавились некоторые сбоку торчащие части в виде powerline и percol.


Недавно я решил пересобрать все так, чтобы избавиться от ненужных плагинов, добавить нужные, сделать легкую установку и обновление. В итоге появилась роль ansible-role-zsh, которая полностью настраивает терминалы на локалке и на моих серверах.


Особенности:


  • устанавливается одной командой (кроме шрифта и темы вашего терминального клиента)
  • быстро загружается, быстро работает
  • полностью настраивается через ansible, ~/.zshrc
  • полностью локальная (в систему ничего не ставится, все хранится в ~/.oh-my-zsh)
  • оставляет возможность юзеру вносить свои настройки через ~/.zshrc.local
  • одинаково работает на macOS, старом Debian, Ubuntu, CentOS
  • нормально выглядит на разных цветовых схемах (но лучше всего на Solarized Dark)
  • встроенная подсветка синтаксиса (помогает реже ошибаться и лучше читать длинные команды)
  • автодополнение по истории команд (помогает реже нажимать Ctrl+R)
  • отображение времени для долго выполняемых команд (помогает реже использовать time)

Демонстрация фич за 1 минуту:


Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments20

Экосистема разработчиков в Telegram

Reading time10 min
Views72K
Лого

Многим уже известно, что в мессенджере Telegram помимо прямого общения между двумя людьми также реализованы другие полезные инструменты:

  • Каналы — некий симбиоз сообщений и списков рассылки, где автор или коллектив авторов обращаются к своей аудитории, но аудитория не может влиять на содержимое канала.
  • Группы — своеобразные чаты между большим количеством пользователей, где каждый участник является полноправным представителем сообщества и может влиять на повестку дня.
  • Боты — специальные аккаунты в Telegram, созданные для того, чтобы автоматически обрабатывать и отправлять сообщения, часто используются для интеграции c сервисами.

На днях на просторах Github, наткнулся на список каналов, групп, ботов в Telegram, который пополняется непосредственно разработчиками, использующими этот проект совместной разработки. Под катом можно увидеть саму IT-подборку, из которой каждый сможет выбрать что-то интересное для себя.
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments46

Производительность запросов в PostgreSQL – шаг за шагом

Reading time15 min
Views90K


Илья Космодемьянский ( hydrobiont )


Для начала сразу пару слов о том, о чем пойдет речь. Во-первых, что такое оптимизация запросов? Люди редко формулируют и, бывает так, что часто недооценивают понимание того, что они делают. Можно пытаться ускорить какой-то конкретный запрос, но это не обязательно будет оптимизацией. Мы немного на эту тему потеоретизируем, потом поговорим о том, с какого конца к этому вопросу подходить, когда начинать оптимизировать, как это делать, и как понять, что какой-то запрос или набор запросов никак нельзя оптимизировать – такие случаи тоже бывают, и тогда нужно просто переделывать. Как ни странно, я почти не буду приводить примеров того, как запросы оптимизировать, потому что даже 100 примеров не приблизят нас к разгадке.
Total votes 46: ↑44 and ↓2+42
Comments16

Grep все, что можно

Reading time6 min
Views56K

Про grep знают если не все, то многие читатели Хабра, однако его многочисленных родственников знают немногие.




Давайте узнаем, как можно грепать все, что таит в себе хоть крупицу текста.

Читать дальше →
Total votes 93: ↑91 and ↓2+89
Comments48

htop и многое другое на пальцах

Reading time26 min
Views293K


На протяжении долгого времени я не до конца понимал htop. Я думал, что средняя загрузка [load average] в 1.0 означает, что процессор загружен на 50%, но это не совсем так. Да и потом, почему именно 1.0?

Затем я решил во всём разобраться и написать об этом. Говорят, что лучший способ научиться новому — попытаться это объяснить.
Читать дальше →
Total votes 138: ↑130 and ↓8+122
Comments43

Подводные камни Bash

Reading time32 min
Views96K


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


Читать дальше →
Total votes 143: ↑141 and ↓2+139
Comments63

Script-server. WebUI для удалённого запуска ваших скриптов

Reading time7 min
Views21K
Всем привет. В данной статье я бы хотел рассказать про свой домашний проект. Если коротко: Script server является веб-сервером для предоставления пользователям доступа к вашим скриптам через web-интерфейс. Сервер и скрипты запускаются локально, а параметризуются и показываются удалённо.


Подробности внутри
Total votes 24: ↑22 and ↓2+20
Comments20

Как правильно купить б/у iPhone

Reading time6 min
Views127K
Навеяно многочисленными случаями продажи подделок или не полностью рабочих аппаратов на площадке Авито и прочих.

Итак, Вы нашли подходящий аппарат и собираетесь встретиться с владельцем для покупки. Приготовьтесь к тому, что проверка аппарата будет долгой, возможно, платной, но, поверьте, это для Вашего же блага. Приступим.
Читать дальше →
Total votes 60: ↑39 and ↓21+18
Comments66

Mikrotik QOS в распределенных системах или умные шейперы

Reading time57 min
Views95K
А что бы вы со своей стороны могли предложить?
— Да что тут предлагать… А то пишут, пишут… конгресс, немцы какие-то… Голова пухнет. Взять все, да и поделить.
— Так я и думал, — воскликнул Филипп Филиппович, шлепнув ладонью по скатерти, — именно так и полагал.
М. Булгаков, «Собачье сердце»


image Про разделение скорости, приоритезацию, работу шейпера и всего остального уже много всего написано и нарисовано. Есть множество статей, мануалов, схем и прочего, в том числе и написанных мной материалов. Но судя по возрастающим потокам писем и сообщений, пересматривая предыдущие материалы, я понял — что часть информации изложена не так подробно как это необходимо, другая часть просто морально устарела и просто путает новичков. На самом деле QOS на микротике не так сложен, как кажется, а кажется он сложным из-за большого количества взаимосвязанных нюансов. Кроме этого можно подчеркнуть, что крайне тяжело освоить данную тему руководствуясь только теорией, только практикой и только прочтением теории и примеров. Основным костылем в этом деле является отсутствие в Mikrotik визуального представления того, что происходит внутри очереди PCQ, а то, что нельзя увидеть и пощупать приходится вообразить. Но воображение у всех развито индивидуально в той или иной степени.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments15

Важные аспекты работы браузера для разработчиков. Часть 1

Reading time9 min
Views86K

Автор: Антон Реймер

Статья основана на вебинаре, который я проводил некоторое время назад. Рассчитана она, в первую очередь на тех, кто не знает, как работают браузеры, или тех, у кого есть пробелы в знаниях. Вероятно, здесь будет много очевидного для тех кто не первый день в веб-разработке. Статью я решил разделить на две части. В первой рассмотрим общие принципы работы браузера. Во второй части я акцентирую внимание на некоторых важных моментах: reflow и repaint, event loop.

Что такое браузер?


Браузер — программа, работающая в операционной системе. Большинство браузеров написано на языке C++. Основное предназначение браузера — воспроизводить контент с веб-ресурсов. В качестве веб-ресурса в большинстве случаев выступает html-страница. Это также может быть pdf-файл, png, jpeg, xml-файлы и другие типы. Среди огромного количества браузеров можно выделить самые популярные: Chrome, Safari, Firefox, Opera и Internet Explorer. Мы рассмотрим браузеры с открытым исходным кодом: Chrome, Firefox, Safari.

Из чего состоит и как работает браузер?



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

Пользовательский интерфейс — то, что видит перед собой пользователь, т. е. адресная строка, элементы навигации, собственное меню и т. д. Несмотря на то что пользовательские интерфейсы очень похожи друг на друга, никакого стандарта, который их описывал бы, не существует. Так исторически сложилось, что браузеры постепенно перенимали интерфейс друг у друга и становились все более похожими.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments30

Подготовка произвольного LTE модема для работы с сим-картой для модема Yota на примере Huawei E3272

Reading time3 min
Views143K
Главным мотиватором для создания этой статьи послужило то, что чтобы восстановить тот небольшой набор шагов, что будет приведен чуть ниже, я потратил много часов, пообщался с двумя представителями Йоты и перелопатил миллион форумов, блогов и подобных ресурсов (в т.ч. достаточно бесполезный пост на хабре по моему модему). Надеюсь, текст ниже сэкономит кому-то силы и время.

image


Сразу к главному. Несмотря на то, что в интернетах пишут, что всё должно работать само собой и сразу, для того, чтобы ваша сим-карта от модема (а не планшета и смартфона, там другая история!) йоты заработала внутри произвольного модема, вам надо проделать следующее:
  1. Разлочить модем, если он привязан к оператору (перепрошивка не требуется!).
  2. Вставить симку и добиться того, что б он подключился к базовой станции и зарегистрировался в сети Йота.
    • Для этого необходимо убедиться, что есть покрытие LTE от йоты (3G не подходит!), вот карта покрытия, но реальное покрытие больше, надо проверять на местности;
    • убедиться, что модем работает на йотовских частотах LTE: band-7;
    • и перевести модем в режим 4G.

  3. Установить соединение, используя правильные параметры.


Теперь по порядку.

Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments12

Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 2

Reading time10 min
Views65K
Друзья, представляем вашему вниманию вторую часть перевода «Чем PostgreSQL лучше?». Надеемся, она вызовет такое же горячее обсуждение в комментариях, как и первая часть. А также с радостью продолжим с вами дискуссию лично на PG Day'16 Russia, до которой осталось совсем немного!

В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». В первой части этой серии мы рассмотрели хранение данных — модель, структуры, типы и ограничения по размеру, — чтобы дать вам несколько причин, почему Постгрес подтверждает свои слова делом. Во второй части мы поговорим о манипуляциях с данными и поиске, включая индексирование, виртуальных таблицах и возможностях запросов. В этой серии мы выясняем, что выгодно отличает PostgreSQL от других баз данных с открытым исходным кодом, а именно — от MySQL, MariaDB и Firebird.


Читать дальше →
Total votes 49: ↑47 and ↓2+45
Comments32

Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 1

Reading time8 min
Views288K
Сегодня давайте поговорим о преимуществах Postgres перед другими системами с открытым кодом. Эту тему мы обязательно раскроем более подробно на PG Day'16 Russia, до которой осталось всего два месяца.

Возможно, вы спрашиваете себя: «Почему PostgreSQL?» Ведь есть и другие варианты реляционных баз данных с открытым исходным кодом (в рамках этой статьи мы рассматривали MySQL, MariaDB и Firebird), так что же Постгрес может предложить такого, чего нет у них? В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». Мы приведем несколько причин, почему Постгрес делает такие заявления.

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


Читать дальше →
Total votes 55: ↑46 and ↓9+37
Comments86
1
23 ...

Information

Rating
Does not participate
Registered
Activity