Category Archives: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

Docker: PHP Composer и multi-stage билды Docker образов

2 April 2018
 

 Задача – подготовить Docker образ с PHP Composer. Ниже рассмотрим сначала сам Composer (от PHP далёк, и с Composer дела раньше не имел, хотя сам PHP потрогать довелось), потом – пример сборки Docker контейнера и его использование под разными пользователями. Результат можно посмотреть в Github. PHP Composer Composer предназначен для установки общих библиотек при создании… Read More »

Python: pip – AttributeError: ‘module’ object has no attribute ‘SSL_ST_INIT’

16 March 2018
 

 При установке и запуске Let’s Ecnrypt клиента – вылезла ошибка Python: root@jm-monitoring-production-vm:~# letsencrypt certonly –config-dir /data/letsencrypt/ –noninteractive –webroot –webroot-path /var/www/html/ –email email@domain.tld –agree-tos –domains monitor.domain.tld Traceback (most recent call last): File “/usr/bin/letsencrypt”, line 9, in <module> load_entry_point(‘letsencrypt==0.4.1’, ‘console_scripts’, ‘letsencrypt’)() File “/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 542, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File “/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 2569, in load_entry_point return… Read More »

What is: Linux namespaces, примеры PID и Network namespaces

10 March 2018
 

 Данный пост обединяет в себе два других замечательных (на мой взгляд) поста на тему Namespaces в Linux – A Tutorial for Isolating Your System with Linux Namespaces и Introduction to Linux namespaces – Part 1: UTS, с небольшими дополнениями и изменениями. Тем не менее – крайне рекомендую к прочтению оба поста выше, и ознакомиться с другими ссылками из… Read More »

Python: Duplicate Encoder – решение задачки с Codewars

5 March 2018
 

 Задача Ссылка на задачу Оригинал: The goal of this exercise is to convert a string to a new string where each character in the new string is ‘(‘ if that character appears only once in the original string, or ‘)’ if that character appears more than once in the original string. Ignore capitalization when determining… Read More »

PowerShell: проверка сервисов – аналоги curl и telnet

2 February 2018
 

 Т.к. в Windows Server 2012 нет привычных утилит, таких как curl и telnet – используем PowerShell. Краткая заметка себе на будущее. a-la curl Проверить ответ сервиса можно с помощью модуля Invoke-WebRequest: StatusCode : 200 a-la telnet А что бы проверить принимает ли сервис подключения на порт – используем TcpClient Class: Connected : True Готово.

BASH: скрипт создания AWS CloudFormation стека

1 February 2018
 

 На одном из проектов создавался CloudFormation шаблон для RDS (см. пример тут>>>). Что бы упростить создание и обновление стека разработчиками – набросал небольшой скрипт. Скрипт выполняет: валидацию файла шаблона проверит требуется ли создать, или обновить стек запросит подтверждение перед созданием выполнит create-stack или update-stack Чать параметров используется из файла шаблона или переменных скрипта, дефолтные, часть… Read More »

Ansible: миграция RTFM 2.8 – logrotate, unattended-upgrades и Let’s Encrypt для Bastion хоста

29 January 2018
 

 Прыдущая часть – AWS: миграция RTFM 2.7 – CloudFormation и Ansible – наcтройка NAT (там же ссылки на предыдущие посты). В этой части продолжим настройку Bastion хоста. Задача – добавить: роль logrotate: ротация логов NGINX (в дальнейшем логи будут сбрасываться через CloudWatch Logs агента) роль unattended-upgrades: автоапдейты системы роль Let’s Encrypt: получение и обновление сертификатов для сайтов роль… Read More »

bash: проверка статуса Spamassassin

28 January 2018
 

 На почтовом сервере начал падать Spamassassin. Сервер старый, причину на ночь глядя искать откровенно лень (думаю, падает во время выполнения /usr/bin/sa-learn в cron-задаче – по времени прихода уведомлений будет яснее), да и почта будет скоро переезжать на сервер в AWS, поближе к RTFM (сейчас работает на VPS в ДЦ Воля-Кабель), потому добавлю скрипт для быстрого “фикса”. Суть… Read More »

Powershell: найти самые большие файлы

26 January 2018
 

 Решение нагуглено тут>>>. Используем Get-ChildItem, первым аргументом передаём путь к каталогу, в котором будем искать файлы, добавляем параметр -recurse для поиска во вложенных каталогах, выполняем сортировку по размеру с помощью Sort-Object, результат передаём в Select-Object, и выбираем первые 10 объектов: Либо вывести только имена файлов – добавляемFormat-Table (ft): Готово.

Python: скрипт бекапа файлов и баз MySQL в AWS S3

3 January 2018
 

 Задача – набросать скрипт, который умел бы создавать бекап нескольких сайтов и загружать их в AWS S3 корзину. Ниже описан процесс написания такого скрипта (или, скорее, уже даже “утилиты”, т.к. имеются модули и файл настроек), без особых деталей по работе и реализации самих функций – больше информации о процессе создания утилиты, её структуре и логике… Read More »