Роман Теличко

Блог о программировании, оптимизации и администрировании

Тег unix

Управление менеджером терминалов tmux

// 27 мая, 2014 | 2774 просмотров | комментариев (0)

tmux — свободная консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким терминалам в рамках одного экрана. tmux может быть отключен от экрана: в этом случае он продолжит исполняться в фоновом режиме; имеется возможность вновь подключиться к tmux, находящемуся в фоне.

При старте tmux создаёт новую сессию с единственным окном и отображает её на экране. В статусной строке в самом низу экрана отображается информация о текущей сессии; эта же строка используется для ввода команд tmux.

Это как screen, только намного лучше 🙂

  • Очень хороший способ запустить tmux. Делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый

    tmux attach || tmux
  • Вывести список существующих сессий

    tmux ls

Попав в tmux вы можете давать команды управления им только после нажатия сочетания CTRL + b.

Важно сказать что вы может не просто создавать новые окна, а ещё и добавлять панели в каждое окно. Например вы можете разделить одно окно на 2 части (панели) — верхнюю и нижнюю или левую и правую.

Небольшая шпаргалка управления tmux:

CTRL+b cСоздать новое окно
CTRL+b 0..9Переход между окнами 0..9
CTRL+b pПерейти в предыдущее окно
CTRL+b nПерейти в следующее окно
CTRL+b lПерейти в предыдущее активное окошко (из которого вы переключились в текущее)
CTRL+b wСписок всех окон
CTRL+b &Закрыть окно (или можно набрать просто exit)
CTRL+b %Разделить текущую панель на две, по вертикали
CTRL+b "Разделить текущую панель на две, по горизонтали
CTRL+b →←↑↓Переход между панелями одного окна
CTRL+b xЗакрыть панель
CTRL+b dОтключится (прервать соединение)
CTRL+b ?Справка обо всех комбинациях клавиш
CTRL+b &Отобразить часы (закрыть их можно нажатием любой кнопки)

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

ТОП 15 продвинутых команд для работы с tcpdump

// 14 февраля, 2014 | 10711 просмотров | комментариев (0)

Решил составить ТОП 15 самых интерестных способов использования программы анализатора траффика (сниффера) tcpdump.

  • Получение всей полезной информации о пакете.

    tcpdump -nnvvXSs 1514 -i 
  • Перехват логина и пароля для протоколов pop3, imap, smtp и http

    tcpdump -i  port http or port smtp or port imap or port pop3 -l -A \
    | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|userna me:|password:|login:|pass |user '
  • Сниффинг HTTP траффика

    tcpdump -i  port 80 -w -
  • Анализирует траффик удаленно через SSH с помощью Wireshark

    ssh [email protected] tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -
  • Отображает пропускную возможность сети.

    tcpdump -w - | pv -bert >/dev/null
  • Сниффинг удаленной сети для получения pcap файла в режиме командной строки.
    Прервать сбор можно нажатием CTRL+C, после чего открыть его с помощью wireshark для более детального анализа так: wireshark /tmp/sniff.pcap
    Запускается на удалённом хосте.

    tcpdump -v -i  -s 0 -w /tmp/sniff.pcap port 
  • Анализ SMTP. Вы можете запустить это на почтовом сервере, чтобы посмотреть отправителей электронной почты и получателей.

    tcpdump -l -s0 -w - tcp dst port 25 | strings | grep -i 'MAIL FROM\|RCPT TO'
  • Захват 1500 байт данных в ASCII-режиме на 80-ом порту.

    tcpdump -i  -n tcp port 80 -A -s1500
  • Захват траффика memcached

    tcpdump -i  -s 65535 -A -ttt port 11211
  • Сниффинг траффика и переадресация его в snort на машину 192.168.0.2
    Запускается на удалённом хосте.

    tcpdump -nn -i  -w - | nc 192.168.0.2 666
  • Получение информации о Cisco-сети (VLAN тэг, порт, switch, …)

    tcpdump -nn -v -i  -s 1500 -c 1 'ether[20:2] == 0x2000'
  • Отображение SYN-пакетов для всех сетевых интерфейсов

    tcpdump -i any -n tcp[13] == 2
  • Сниффинг всех DNS запросов и ответов

    tcpdump -i  'udp port 53'
  • Сниффинг TCP и UDP траффика, исключая SSH

    tcpdump -n -v tcp or udp or icmp and not port 22

Команды управления пакетным фильтром pf

// 4 июня, 2013 | 14240 просмотров | комментариев (0)

Наткнулся на список команд для управлением пакетным фильтром (фаерволом) pf.

pfctl -dвыключить пакетный фильтр
pfctl -eвключить пакетный фильтр
 
pfctl -f /etc/pf.confзагрузить конфиг из /etc/pf.conf
pfctl -n -f /etc/pf.confпроверить на ошибки /etc/pf.conf, но не загружать его
pfctl -R -f /etc/pf.confзагрузить только правила фитрации из /etc/pf.conf
pfctl -N -f /etc/pf.confзагрузить только правила NAT из /etc/pf.conf
pfctl -O -f /etc/pf.confзагрузить только опции из /etc/pf.conf
 
pfctl -F allсбросить всё
pfctl -F rulesсбросить только правила фильтрации
pfctl -F queueсбросить только очереди
pfctl -F natсбросить правила NAT
pfctl -F infoсбросить всю статистику
pfctl -z clearочистить все счётчики
 
pfctl -s rulesпоказать текущие правила фильтрации
pfctl -v -s rules showпоказать информацию по каждому правилу фильтрации
pfctl -vvsrпоказать текущие правила фильтрации с добавлением номера правила
pfctl -v -s natпоказать текущие правила NAT отдельно по каждому правилу
pfctl -s nat -i xl1показать правила NAT для интерфейса xl1
pfctl -s queueпоказать очереди
pfctl -s stateпоказать текущее состояние таблиц
pfctl -s infoпоказать статистику правил и состояние счётчиков
pfctl -s allпоказать все что можно
 
pfctl -t testtable -T showпросмотр содержимого таблицы testtable
pfctl -t testtable -T show -vпросмотр более подробной статистики по каждому адресу таблицы testtable
pfctl -t testtable -T add 192.168.1.1добавление адреса 192.168.1.1 в таблицу testtable
pfctl -t testtable -T delete 192.168.1.1удаление адреса 192.168.1.1 из таблицы testtable
pfctl -t testtable -T flushочистить таблицу testtable

Делаем запросы в PostgreSQL из nginx кэшируя с помощью Redis

// 23 мая, 2013 | 9702 просмотров | комментариев (0)

Сегодня я расскажу как можно работать с базой данных PostgreSQL с помощью nginx’a без application’a (например, PHP или любого другого). Т.е. эта технология абсолютно не зависит от языка, на котором сделан сайт/проект/система.
Мы будем использовать мощь PostgreSQL в хранимых процедурах (stored procedures/functions), а кэшировать с помощью быстрого Redis.
Читать далее…

Соответствия команд SVN и Git

// 14 марта, 2013 | 551 просмотров | комментариев (0)

Я создал небольшую шпаргалку соответствий команд систем управления версиями SVN/Subversion и Git. Пользуйтесь! 😉

svnadmin create repo
 
git init
git add .

svn import file://repo
git commit

svn diff | less
git diff

svn diff -rrev path
git diff rev path

patch -p0
git apply

svn status
git status

svn revert path
git checkout path

svn add file
git add file

svn rm file
git rm file

svn mv file
git mv file

svn commit
 
git commit -a
git push remote

svn log | less
git log

svn blame file
git blame file

svn cat url
git show rev:path/to/file

svn list url
git show rev:path/to/directory

svn log -rrev url
svn diff -crev url
git show rev

svn copy https://example.com/svn/trunk
https://example.com/svn/tags/name
git tag -a name

svn list https://example.com/svn/tags/
git tag -l

svn log —limit 1 https://example.com/svn/tags/tag
git show tag

svn copy https://example.com/svn/trunk https://example.com/svn/branches/branch
git branch branch

svn switch https://example.com/svn/branches/branch
git checkout branch

svn list https://example.com/svn/branches/
git branch

svn update -r rev
git checkout rev

svn update
git checkout prevbranch

svn merge -r rev:HEAD https://example.com/svn/branches/branch
git merge branch

svn merge -c rev url
git cherry-pick rev

svn checkout url
git clone url

svn switch url
 
git checkout —track
 -b branch origin/branch

svn update
git pull

Получить User-Agent из access.log

// 9 апреля, 2012 | 1017 просмотров | комментариев (0)

Это делается довольно легко (выведет все уникальные User-Agent из лога):

cat access.log | awk -F'"' '{print $6}' | sort | uniq

Если лог имеет другой формат — заменить $6 на другой порядковый номер столбца.

RAR→JPEG или прячем архив внутри картинки

// 12 марта, 2012 | 1896 просмотров | комментариев (0)

Спрятать файлы внутри JPEG-изображения довольно просто.
Берём архив rar/zip (к примеру something.rar) и картинку в которую мы хотим вложить какие-то данные (например someimage.jpg).

Теперь просто выпоняем комманду:

cat someimage.jpg something.rar > result.jpg

Вуаля! Наш архив something.rar теперь спрятан в картинке result.jpg.

Для извлечения необходимо просто переименовать result.jpg в result.rar и открыть любимым архиватором.

Перепост: FreeBSD + PostgreSQL: тюнинг сервера БД

// 8 июня, 2011 | 987 просмотров | комментариев (0)

Наверное, моя статья будет не интересна матерым сисадминам и покажется копипастом. Но я адресую ее тем, кто, как и я, будучи только разработчиком, впервые столкнулся с необходимостью еще и администрировать сервер, при этом решая задачи высоконагруженной БД. И чтобы гугл вас не проклял, постараюсь собрать в одном месте основные приемы для разгона сервера БД, которые мне успешно удалось реализовать.
Читать далее…

Перепост: Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

// 20 сентября, 2009 | 892 просмотров | комментариев (0)

Введение

С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.

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