Coding: Python

  • Python.org – основной сайт. Тут можно скачать актуальный python на windows/linux/mac os, посмотреть документацию
  • Гвидо ван Россум – творец языка. По сути аналог Линус Торвальдса для Linux.
  • Python – the second best language for everything. И это действительно так, включая новые-модные devops, AI, BigData, autotests.


Читать дальше

FTP, поднимаем FTP сервер на CentOS 7

FTP история появления из телеграм канала Network quiz
✍️ Разбор квиза: NQ Протокол FTP
Вопрос: Почему протокол FTP использует отдельно соединения для управления и передачи данных?
Объяснение от автора вопроса Surgeon и дополнение от Sergey Masharov (@Masharov): Протокол был разработан почти 53 года назад, в 1971 году.


Читать дальше

Ruby HTTP get/post

Simple get

Простая функция для отправки http get.

def get(request)
request = CGI::escape(request)
uri = URI("http://#{$server}/#{request}")
Net::HTTP.get(uri)
end

Get with header

Пример запроса с header. Обращаю внимание, что в старой версии ruby 1.9.3 обязательно нужно к uri применить метод .request_uri, в новых не обязательно.

Читать дальше

Linux: использование rpm/yum/dnf в CentOS (обновление, установка, удаление приложений)

  • Аналог статьи про Ubuntu, Gentoo
  • (Centos, Ubuntu) PackageKit — открытый и свободный набор приложений для обеспечения высокоуровнего интерфейса для различных пакетных менеджеров. Он используется RHEL в качестве графического интерфейса (по факту нескольких интерфейсов/утилит – add/remove software, package updater, settings) управления пакетами.


Читать дальше

Knime

Knime позволяет выгрузить данные из различных источников (базы данных,  excel), агрегировать и проанализировать – analytics platform. Можно очень легко возвращаться к исходным данным и посмотреть что происходит с данными в результате каждой обработки.

Читать дальше

D-Link полезные SNMP OID

Отключить логгирование команд

snmpset -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.1.2.26.0 i 2

Включить логгирование команд

snmpset -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.1.2.26.0 i 1

Настроить bandwidth control на порту (в show bandwidth control настройки не видно)

snmpwalk -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.61.3.9.1.4.7
snmpset -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.61.3.9.1.4.7.1 i 256 
snmpset -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.61.3.9.1.4.7.2 i 256
snmpset -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.61.3.9.1.4.7.3 i 256 
snmpset -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.61.3.9.1.4.7.4 i 256 
snmpset -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.61.3.9.1.4.7.5 i 256 
snmpset -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.61.3.9.1.4.7.6 i 256 
snmpset -v 2c -c comm 10.10.10.10 .1.3.6.1.4.1.171.12.61.3.9.1.4.7.7 i 256


Читать дальше

Linux: which, whereis, realpath, type, locate

  • Если не получается найти командами ниже – надо использовать find 🙂

type – считаю является самой первой командой, которой нужно на мой взгляд пользоваться для поиска исполняемого файла/понимания того, что исполняется. Type показывает какого типа является исполняемая команда – встроенная в shell функция (shell builtin), внешняя функция (shell function) или утилита.

Читать дальше

Ruby: генератор списка выходных на год

Простейший генератор списка выходных на год.

Что можно кастомизировать (жирным в коде):

  • В переменной cur_date указываем дату отчета
  • В счетчике можно подкрутить количество дней с 365 до любого количества
  • Строку вывода можно заменить генерацией INSERT в какую то SQL таблицу (закоменчено)
#bin/generate_vacation_list.rb


Читать дальше

Ruby: разные методы по работе с сетью

MAC
Приведение к единому формату
def mac_normalize(mac)
  mac.gsub(/!|’|”|-|:|;|\./,””).downcase
end
Проверка
def check_mac(mac)
  return “MAC \”#{mac}\” имеет длину не равную 12 символам” if mac.length != 12
  return “MAC \”#{mac}\” включает русские символы” if mac =~ /[а-я]/i
  return “MAC \”#{mac}\” включает невозможные в MAC латинские символы” if mac =~ /[g-z]/i
  return “MAC \”#{mac}\” является адресом из примера” if mac == “a0b3cceb0fed” || mac == “d4dccda0b283”
  “OK”
end


Читать дальше

Ruby: регулярные выражения

Основная статья по регулярным выражениям тут.

.match – очень прокаченный метод в ruby для работы с регулярными выражениями.

/[0-9]/.match("2")

Например, к результату match можно применять методы .pre_match, .post_,match – получая данные ДО и ПОСЛЕ match – очень полезно, не городя костылей с заменой вроде <regexp>.*.

Читать дальше