Мгновенный переход в конкретный issue или pull request через hotkeys

Хочу поделиться с вами примером очень простого, но мегаполезного скрипта. Если вы работаете в команде, то очень часто приходится копировать id задач, например из git, открывать в issue tracker, искать таску по id и тд. Так вот чтобы максимально упростить открытие issue tracker или другого сайта в параметрах которого использует id, я написал простой скрипт и забиндил его выполнение на комбинацию ctrl+alt+v.

В своей работе я в основном пользуюсь 2 инструментами: wrike и bitbucket. Причем в bitbucket мне часто приходится просматривать pull request-ы, а во wrike – таски.

Как только с копировал в буфер какой то цифровой набор и нажал ctrl+alt+v выполняется следующий скрипт. Он берет значение из буфера и проверяет под какое условие попадает данный ID. В моем случае, если ID > 10000 то открывается вкладка в Chrome с нужной задачей. Так как ID таска передается в качестве параметра в url. В противном случае – открываем пул реквесты в битбакете с нужным номером.

Такой простой трюк экономит мне время и нервы в течении дня. А это непосредственно тот самый простейший скрипт:

#!/bin/bash
ID=`xclip -selection c -o`
if [ $ID -gt 10000 ] 
then
    google-chrome https://wrike.com/open.htm?id=${ID}
else
    google-chrome https://bitbucket.org/someuserorcompany/pull-requests/${ID}
fi

Само-собой вы можете настроить скрипт под себя, например под тот же GitHub.

git: нормализация lrlf

Если вы решили переконвертировать ваш репозиторий, убрав из файлов символы переноса каретки, то можно использовать https://rtyley.github.io/bfg-repo-cleaner/. Он работает намного быстрее, чем обычный filter-branch.

Итак, склонируем наш репозиторий с параметром –mirror

git clone –mirror https://github.com/voiplab/mysuperrepo
echo “regex:\r(\n)==>$1” > replacements.txt
java -jar bfg-1.13.0.jar –no-blob-protection –replace-text replacements.txt mysuperrepo.git

Запускаем провреку репозитория

Меняем origin если хотим запушить в новое место

git push origin -all

Статистика по обращениям к nginx в realtime

Иногда бывает полезно увидеть TOP IP адресов с которых идут обращения к вашему backend. Если у вас настроено логивание в nginx access.log, то с помощью такого нехитрого скрипта можно получить самые “активные” IP

tail -f access-api.log | awk {'print $1 ;fflush();'} | logtop

Примеры по tcpdump и ssldump

Снимаем дамп трафика SSL/HTTPS и получаем заголовки

tcpdump -i eth0 -vvv -s 0 -w /tmp/ssl_dump.cap host IP.ADD.RE.SS and port 443
ssldump -A -d -k PATH_TO_SSL_PRIVATE.KEY -nr /tmp/ssl_dump.cap > /tmp/out.txt

Получить POST заголовки

tcpdump -i eth0 -s 0 -A 'tcp dst port 8080 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

 

Внедряем email-аутентификацию DKIM в Postfix за 5 минут

Работал у нас почтовый сервер для рассылки корреспонденции клиентам. И все бы ничего, но стал люд жаловаться, что не доходят письма или  в спам попадают. И хотя spf был настроен, все говорило о том, что пора нам к нашему Postfix прикрутить DKIM. Как гласит цитата откуда-то с хабра:

DKIM-подпись — это цифровая подпись, которая добавляется к заголовкам письма сервером отправителя, по которой сервер получателя может удостовериться, что отправитель письма соответствует полю From в заголовках письма. Если сервер получателя проверяет эту подпись, то по результатам проверки сервер может принять решение о том, как поступать с письмом: принять, отправлять в папку «Спам», отправить на дополнительную проверку или вовсе отказаться от приёма. Подписи DKIM проверяют и используют сами все ведущие почтовые службы, включая Яндекс и Mail.ru.

Для начала установим необходимый софт командой

aptitude install opendkim opendkim-tools

После установки необходимо отредактировать файл /etc/opendkim.conf, добавив в него строки

Canonicalization relaxed/relaxed
SyslogSuccess yes
KeyTable file:/etc/opendkim/keytable
SigningTable file:/etc/opendkim/signingtable
SoftwareHeader yes
LogWhy yes
ExternalIgnoreList file:/etc/opendkim/trusted
InternalHosts file:/etc/opendkim/trusted

Теперь создадим рабочий каталог,а в нем новый приватный и открытый ключ. Открытый ключ мы потом пропишем на нашем DNS-сервере.

mkdir /etc/opendkim/
opendkim-genkey -s mail -d example.com

В каталоге /etc/opendkim у вас должно появиться 2 новых файла. mail.private – это наш приватный ключ, которым мы будем подписывать письма. А mail.txt содержит публичный ключ. Список имеющихся ключей укажем в файле /etc/opendkim/keytable в формате “название домен:селектор:/путь/до/ключа”. В нашем случае содержимое файла будет таким:

mail._domainkey.example.com example.com:mail:/etc/opendkim/keys/example.com/mail.private

Теперь объясним OpenDKIM почту каких доменов какими ключами подписывать в файле /etc/opendkim/signingtable в формате “домен название-ключа”.

example.com mail._domainkey.example.com

В файле /etc/opendkim/trusted необходимо прописать ваши доверенные узлы:

127.0.0.1
localhost
192.168.1.0/24

Зададим необходимые права, добавим пользователя postfix в группу opendkim. Это нужно чтобы postfix смог отправлять письма на подпись через сокет OpenDKIM. После чего перезапустим службу. Я рекомендую заглянуть в системный лог и убедиться, что нет ошибок при запуске службы.

chown opendkim /etc/opendkim -R
gpasswd -a postfix opendkim
service opendkim restart

Вторым этапом настроим postfix, чтобы он мог подписывать нашу почту. В main.cf необходимо добавить:

milter_default_action=accept
milter_protocol=2
smtpd_milters=unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters=unix:/var/run/opendkim/opendkim.sock

Ну и опять рестарт/релоад

service postfix restart

Третьим и последним этапом мы настроим наш DNS сервер добавив в него TXT запись. Выведите содержимое файла mail.txt и используйте следующую пару ключ-значение для добавления новой записи в DNS.

Name: mail._domainkey.example.com.
Text: "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGYcKBPpo8HHbcFfCIIV10Hwo4PhCoGZSaKVHOjDm4yefKXhQjM7iKzEPuBatE7O47hAx1CJpNuIdLxhILSbEmbMxJrJAG0HZVn8z6EAoOHZNaPHmK2h4UUrjOG8zA5BHfzJf7tGwI+K619fFUwIDAQAB"

Для применения изменений в DNS может пройти несколько часов. Проверить DKIM-подпись вы можете отправив пиьсмо через свой сервер на ящик [email protected] Ответное письмо вы получите в виде отчета. Например:

=========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham

Полезные ссылки: