Полезные однострочники - часть 4

1. Когда нужно разделить развороты внутри файла PDF # Разделить по вертикали mutool poster -x 2 source.pdf out.pdf # Разделить по горизонтали mutool poster -y 2 source.pdf out.pdf 2. Обновление пакетов pip3 pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U 3. Поиск источника SYN атаки netstat -n -p | grep SYN_RECV | wc -l netstat -n -p | grep SYN_RECV | sort –u netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}' 4. Проверка скорости загрузки сайта, используя curl ...

May 6, 2020 · 1 min · 179 words · Me

Настройка Wireguard для Orange Pi PC

Не так давно, решил попробовать вместо L2TP VPN относительно новый (старый) протокол WireGuard. 1. На сервере, на котором будем использовать Wireguard (я использовал образ Docker linuxserver/docker-wireguard): Можно использовать следующий docker-compose: {% gist 6b735868b6b9a6f75fee5ea8371f428f %} Генерируем ключи: docker-compose exec wireguard bash wg genkey | tee privatekey_host | wg pubkey > publickey_host wg genkey | tee privatekey_peer | wg pubkey > publickey_peer Генерируем конфиг сервера: cat /var/data/docker/wireguard/wg0.conf [Interface] Address = 10.13.13.1 MTU = 1460 ListenPort = SERVER_PORT PrivateKey = privatekey_host PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; iptables -D FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT [Peer] PublicKey = publickey_peer AllowedIPs = 10.13.13.2/32 Перезапускаем контейнер с Wireguard: ...

April 25, 2020 · 3 min · 443 words · Me

Today I Learned: jq

В этой рубрике будут краткие выдержки из того, что я узнал за сегодня. На самом деле, про утилиту jq я знаю уже достаточно давно, но было полезным посмотреть более сложные примеры его использования у одного человека: Выбрать объект из массива объектов на основании одного из параметров: cat dep.json | jq ' .status.conditions | map(select(.type == "Progressing")) ' [ { "lastTransitionTime": "2020-01-23T03:47:56Z", "lastUpdateTime": "2020-01-23T03:48:23Z", "message": "ReplicaSet \"machine-api-controllers-5f4ddff7f4\" has successfully progressed.", "reason": "NewReplicaSetAvailable", "status": "True", "type": "Progressing" } ] В генерируемом (!) руководстве Illustrated jq tutorial приводятся интересные примеры использования jq. ...

March 23, 2020 · 1 min · 100 words · Me

Bullet journaling для системных администраторов

Перевод статьи Bullet journaling for sysadmins Примечание: Это вольный перевод указанной статьи выше, который будет написан от лица авторов. Примечание 2: В данном тексте используется выражение bullet journaling - очевидно, как нечто краткое и емкое (как пуля). Так как аналогов в русском языке нет, то в местах употребления будет использовано данное словосочетание на английском языке. В то время как bullet journaling является относительно новым трендом, использование техник из аналогового мира, чтобы отслеживать и управлять своим цифровым окружением не является чем-то новым. И если вы еще не используете подобные техники - то самое время начать это делать. ...

March 11, 2020 · 4 min · 836 words · Me

Need to know: System Design

Как много раз на собеседованиях вас спрашивали об архитектурах сервисов? Как много раз вы спрашивали кандидатов о построении архитектуры сервисов? Возможно вы не относитесь к управляющему персоналу и не думаете, что архитектура вам особенно нужна (например, как рядовому разработчику или администратору), однако, примеры, которые можно увидеть в репозитории The System Design Primer могут помочь вам, когда вы помогаете планировать запуск нового продукта. Вероятно, этот пример может помочь разработчикам изначально иметь (если это подразумевается в ТЗ) возможность создания масштабируемых и отказоустойчивых решений. ...

March 4, 2020 · 2 min · 228 words · Me