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
.
Получение всей полезной информации о пакете.
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.
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’a без application’a (например, PHP или любого другого). Т.е. эта технология абсолютно не зависит от языка, на котором сделан сайт/проект/система.
Мы будем использовать мощь PostgreSQL в хранимых процедурах (stored procedures/functions), а кэшировать с помощью быстрого Redis.
Читать далее…
Я создал небольшую шпаргалку соответствий команд систем управления версиями SVN/Subversion и Git. Пользуйтесь! 😉
svnadmin create repo
git init
git add .
svn import file://repo
git commit
svn diff -rrev path
git diff rev path
svn revert path
git checkout path
svn commit
git commit -a
git push remote
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
Это делается довольно легко (выведет все уникальные User-Agent из лога):
cat access.log | awk -F'"' '{print $6}' | sort | uniq
Если лог имеет другой формат — заменить $6 на другой порядковый номер столбца.
Спрятать файлы внутри JPEG-изображения довольно просто.
Берём архив rar/zip (к примеру something.rar
) и картинку в которую мы хотим вложить какие-то данные (например someimage.jpg
).
Теперь просто выпоняем комманду:
cat someimage.jpg something.rar > result.jpg
Вуаля! Наш архив something.rar
теперь спрятан в картинке result.jpg
.
Для извлечения необходимо просто переименовать result.jpg
в result.rar
и открыть любимым архиватором.
Наверное, моя статья будет не интересна матерым сисадминам и покажется копипастом. Но я адресую ее тем, кто, как и я, будучи только разработчиком, впервые столкнулся с необходимостью еще и администрировать сервер, при этом решая задачи высоконагруженной БД. И чтобы гугл вас не проклял, постараюсь собрать в одном месте основные приемы для разгона сервера БД, которые мне успешно удалось реализовать.
Читать далее…
Введение
С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Читать далее…