Linux: bash спец. символы, man, переменные (> >> $ & # ~/$HOME $USER \ | /n \t ^M $? * ; ()), redirect stdout/stderr, ALIAS, bashrc, profile; программирование в bash (полезные скрипты, получение опций в скриптах, функции, условия, циклы, case, массивы)

~ echo $SHELL
/bin/bash

bash-3.2$ echo $SHELL # MACOS
/bin/zsh
  • (ping, nmap, xargs, bash) Ping целой подсети /24 в 253 потока.



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

Linux: работа с текстом (fmt, sed, awk, tr, cut, cat/tac, tee, column, uniq, sort)

GREP в отдельной статье

fmt
  • примеры есть в cheat.sh
  • вариаций форматирования много

Форматирование данных на входе – к примеру по умолчанию fmt осуществит форматирование, которое приведет к лучшему чтению:

    • объединение слов в одну строку если слов мало в каждой строке
    • или наоборот, вместо одной длиной строки сделает несколько коротких
root@serv:~# cat >sw
Hello
world
and
not
world
root@serv:~# fmt sw
Hello world and not world

root@spr:~# cat >sw
Hello world and not world Hello world and not world Hello world and not world Hello world and not world Hello world and not world Hello world and not world
root@spr:~# fmt sw
Hello world and not world Hello world and not 
world Hello world and not world Hello world 
and not world Hello world and not world 
Hello world and not world


tr ; CUT
  • подмена всех символов на lower
echo <WoRd> | tr '[:upper:]' '[:lower:]'
  • подмена всех пробелов на \n (все слова с новой строки)
echo <file> | tr ' ' '\n'
  • The cut utility cuts out selected portions of each line (as specified by list) from each file and writes them to the standard output
# Print a range of each line with a specific delimiter:
command | cut --delimiter="," --fields=1

# Print a specific character/field range of each line:
command | cut --characters|fields=1|1,10|1-10|1-|-10

Подмена всех пробелов (в том числе повторяющихся) на одну запятую с использованием tr и опции -s

 -s Squeeze multiple occurrences of the characters listed in the last operand (either string1 or string2) in the input into a single instance of the character.


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

ApacheBench

В состав apache входит benchmark – называется ab (apachebench). Им можно тестировать не только сайт на apache, но и любой другой web-ресурс.

Опциями можно указать общее количество запросов (1000) и сколько будет запрашиваться одновременно (50):

ab -c 50 -n 1000 http://weril.me/


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

Популярные WEB сервера и заметки о них (apache/httpd, nginx)

Сравнение WEB можно посмотреть тут

  • nginx; tengine (alibaba nginx) – по сути community industry standard, особенно в высокопроизводительных решениях.
  • apache – данный блог на apache, проблем из-за этого не было. Лично у меня к нему даже несколько большее доверие т.к. он как поддерживался, так и поддерживается Apache Foundation, в отличии от NGINX, из которого ушел основатель.


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

Методы установки приложений, компиляция приложений и ядра, библиотеки

  • Через средство управления пакетами ОС (Ubuntu: apt-get, CentOS: yum, Gentoo: emerge). Пакет чаще всего имеет не последнюю версия приложения/компилятора (ruby, phantomjs), но она почти гарантированно stable и легко ставится.
Для установки приложений в среде операционной системы GNU/Linux лучше всего пользоваться средствами управления пакетами вашего дистрибутива.


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

SQL и базы данных: основы (индексы, ключи, нормализация), примеры SQL запросов, работа с таблицами CREATE, DROP, EDIT; использование SELECT (join, distinct, enlosed, like, sum, etc); балансировка/масштабирование (шардирование, репликация), TMDB (time series database)

  • http://sqlfiddle.com/ – очень удобный сайт по экспериментам с SQL (запросы, создание страниц и проч.)
  • https://dbfiddle.uk/Gx3c6fmQ – аналогично, с примером
основные инструменты SQL/NoSQL; big data; analytics
    • хранение
      • mysql/oracle/postres (более в почете сейчас последний, в том числе для bigdata в виде greenplum и TSDB в виде TimescaleDB)
      • OpenTSDB (Time Series Database)
      • redis
      • s3
      • elk – часто используется для логов
      • clickhouse
      • log stash
    • визуализация
      • Kibana
    • поиск по данным
      • ElasticSearch
Отдельные статьи
Time series database

В основном на основе статьи из habr

A time series database (TSDB) is a software system that is optimized for storing and serving time series through associated pairs of time(s) and value(s).


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

cd, pushd, podd

  • Используйте cd, если вам нужно просто перейти в папку и вы не планируете возвращаться назад в ближайшее время. Это стандарт для обычной навигации.
  • Используйте pushd, если вы работаете в одной папке, но вам нужно перейти в другую (например, чтобы что-то скопировать или скомпилировать) и быстро вернуться обратно.


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

NMS, monitoring, observability, inventory, management, NTA, performance monitoring systems

  • Linux Performance Observability Tools: strace ltrace ss nstat gethostlatency sar proc dmesg dstat opensnoop laof fatrace filelife pcstat execsnoop mpstat profile runqlen offcputime softirqs turbostat show boost rmdsr perf fteace LTTng BCC bpftrace ext4dist ext4slower top atop ps pidstat vmstat slabtop free tiptop perf numastat hardirqs criticalstat nicstat netstat ip lldptool snmpget ethtool tcplife tcpretrans udpconnect tcpdump perf tiptop mdflush iostat biosnoop biolatency biotop blktrace swapon

  • Мониторинг призван уменьшать значение времени исправления проблем (MTTR) или даже предотвращать возникновение аварийных ситуаций (подробнее ниже)
  • Задача классического админа, решаемая мониторингом – сделать алерты в системе мониторинга на уменьшение количества краски в принтерах
  • Существует разная глубина взросления «мониоринга» – реакция по негативному фидбеку/инцидента от пользователя, реакция на события мониторинга еще до обращения клиента, автоматизация на события мониторинга (напр.


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

Linux: информация о системе (system info, uptime, dmidecode)

uptime – маленькая утилита. Показывает Uptime, количество юзеров, load average (1, 5, 15 min).

~$ uptime
 16:18:52 up 14 days, 16:17, 1 user, load average: 0.00, 0.01, 0.05

>> load average 20 bad or good
A load average of 20 is bad if your system has fewer than 20 CPU cores, as it indicates that tasks are waiting for CPU time and the system is likely overloaded.


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

Linux: top

Командный режим
top -icbn1
 
Интерактивный режим

Заходим в top, нажимаем

“1” – показывает загрузку по ядрам.

“s” – изменяем интервал обновления/сбора статистики (напр.  уменьшаем c 3 секунд до 0.1).

“M” – сортировка процессов по утилизации RAM

“P” – сортировка процессов по утилизации CPU (processor)

“k” – возможность отправить KILL PID (kill -15 / SIGTERM) находясь в TOP

“t” – показываем в виде статус бара

%Cpu0 : 6.2/12.5 19[||||||||||||||||||| ]
%Cpu1 : 11.8/11.8 24[|||||||||||||||||||||||| ]
%Cpu2 : 13.3/20.0 33[||||||||||||||||||||||||||||||||| ]
%Cpu3 : 25.0/18.8 44[|||||||||||||||||||||||||||||||||||||||||||| ]
 
Поэкранный вывод

top –b – вывод каждые три секунды всего top’a.

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