Узнать версию Ubuntu

Команда lsb_release

Команда lsb_release предназначена для вывода информации о текущей версии дистрибутива Ubuntu. Чтобы получить требуемую информацию, выполните в командной строке команду lsb_release -a:

$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 16.04
Release: 16.04
Codename: karmic

Как видите, мы получили версию (Release) и кодовое имя (Codename).

Файл /etc/lsb-release

Так же информация о версии Ubuntu хранится в файле /etc/lsb-release. Чтобы вывести файл, выполните в командной строке команду cat /etc/lsb-release:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=karmic
DISTRIB_DESCRIPTION="Ubuntu 16.04"

Файл /etc/issue

Есть еще один простой способ определить версию, это просмотреть содержимое файла /etc/issue, хотя сам файл предназначен несколько для других целей. Для этого в командной строке выполните:

$ cat /etc/issue
Ubuntu 16.04 \n \l

Определяем версию Ubuntu без использования командной строки

Есть несколько простых способов определения версии, не используя командную строку.

В системном мониторе Ubuntu

На панели Gnome выполните Система->Администрирование->Системный монитор. Откроется окно Системного монитора, на главной вкладке которого будет указана версия Ubuntu и текущая версия ядра.

В справке Ubuntu

В меню на панели Gnome выполните Система->О системе Ubuntu. Загрузится документация по Ubuntu. На главной странице справки будет указано, какую версию вы используете.

image_pdfimage_print

Узнать модель материнской платы, CPU и прочее

Этот вариант, но тоже НЕ ВСЕГДА может показать вендора и модель:

dd if=/dev/mem bs=64k skip=15 count=1|strings|less

Показать устройства (CPU, NET, etc.):

pciconf -lv

Вывести название процессора:

dmesg | grep cpu

или

grep -w CPU: /var/run/dmesg.boot

Памяти:

dmesg | grep memory

Ставим утилиту:

cd /usr/ports/sysutils/dmidecode
make install clean
rehash

И выполняем следующую команду:

dmidecode | less

В результате получим список с названием нашего оборудованием в FreeBSD, в том числе и материнской платы

 

image_pdfimage_print

Обновление приложения

Upgrade установленных в системе программ из обновленных портов (для примера берем koffice)

Переходим в порт программы

$ cd /usr/ports/editors/koffice-kde3/

Выполняем сборку (при необходимости исходник будет выкачен из Инета)

$ make

Далее только после удачного завершения!

Удаляем текущую(старую) программу из системы

$ make deinstall

Устанавливаем новую

$ make reinstall

После удачной установки, очищаем все что было создано при сборке

$ make clean

Во время инсталляции может потребоваться какая нибудь, не установленная ранее программа, от которой зависит koffice – в этом случае она будет установлена автоматически, после чего установка koffice, так же, автоматически продолжится.

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

image_pdfimage_print

dspam обучение

Ручное обучение dspam
.imp_spam – папка со спамом
cur – нормальная папка

dspam_train svm@tst-amo.pp.ua /var/vmail/tst-amo.pp.ua/svm/.imp_spam/cur /var/vmail/tst-amo.pp.ua/svm/cur

 

 

image_pdfimage_print

Мониторинг в ОС FreeBSD, или находим узкое место

В этой статье я опишу некоторые утилиты для одномоментного мониторинга нагрузки\загрузки\использования в операционной системе FreeBSD. Цель — увидеть, что именно сейчас происходит с системой. Чаще, используется когда нужно найти проблему с производительностью или с неправильной работой системы. Для постоянного мониторинга и построения отчётов я использую zabbix. Тема скорей всего уже поднималось, но мне хочется видеть FAQ в одной статье. Крайне приветствую в комментариях дополнения, команды, советы и выдержки из личного опыта.

Первое с чего начну, это всем известная утилита top. Она показывает общие сведения о процессоре, памяти и процессах, если возникают вопросы по производительности, я её запускаю первой, чтобы выявить аномалии в системе. У утилиты top есть параметры, которые облегают жизнь, их мы набираем в top’e когда он запущен:
S — показать системные процессы, по умолчанию они не показываются
u — и имя пользователя, например u mysql покажет процессы запущенные от пользователя mysql
o — используем для сортировки, возможные параметры — pri, size, res, cpu, time, threads
m — переключение между режимами отображения нагрузки и ввода-вывода
k — завершить процесс, ввод pid процесса
r — изменить приоритет процесса, вводим pid процесса
n — отображать статистику по определённому процессу
a — показывает абсолютные запущенных процессов
top -n 3 — показывает самые ресурсоёмкие приложения в данный момент

gstat — показывает использование дисков.
gstat -a — используется для вывода только активных устройств

vmstat — показывает состояние виртуальной памяти и буфера.
vmstat 5 — отображает статистику раз в пять секунд
vmstat -z — показывает состояние буфера
vmstat -i — показывает состояние прерываний

iostat — выводит статистику по I/O усройств
iostat -d -w5 — показывать информацию по дискам, с периодичностью в пять секунд безостановочно
iostat -dx -w5 — показывает расширенную статистику

systat — отображает различные параметры системы.
systat -vmstat 1 — отображает суммарную системную статистику
systat -netstat 1 — показывает активные сетевые соединения
systat -ifstat 1 — отображает нагрузку сетевых интерфейсов
systat -tcp 1 — отображает статистику tcp-соединения, возможен просмотр по icmp, ip, icmp6, ip6
systat -iostat 1 — отображает нагрузку на процессов, дисковую подсистему
systat -swap 1 — показывает загрузку файла подкачки

netstat — показывает активные сетевые соединения.
netstat -w 1 — количество пакетов в настоящее время
netstat -ibt — вывод сетевых интерфейсов с разбивкой по IP адресам, отображает объём трафика, количество ошибок, коллизий.
netstat -rn — отображает таблицу маршрутизации

diskinfo -t ad0 – показывает информацию по диску, и делает тест на дисковую производительность.

sysctl — позволяет посмотреть параметры в системы и внести изменения, такие как стек tcp/ip, вирутальной памяти.
sysctl -a — показывает все параметры
sysctl kern.ipc.numopensockets — показывает количество открытых сокетов
sysctl kern.openfiles — показывает количество открытых файлов
Вообще-то в sysctl кладезь информации, и она достойна отдельной подробной статьи.

df — утилита, которая показывает свободное место на дисках.
df -h — отображает слайсы, и свободное\занятое место.
df -i — показывает количество занятых инодов.

fstat — показывает список открытых файлов.
fstat |grep http| wc -l — показывает список открытых файлов по процессу http

sockstat — отображает информацию о сокетах, сетевых и файловых.
sockstat -l — список портов открытых на прослушивание
sockstat -c список установленных соединений
sockstat -4, -6 — по протоколу ipv4 или ipv6

lsof — показывает информацию от откртых сокетах, файлах и сетевых соединениях.
lsof -i -n — показывает открытые интернет-соединения
lsof -i -n |grep ESTABLISHED — показывает открытые, и установленные сетевые соединения

ps auxww|grep имя\pid\откогозапущено — позволяет получить информацию по интересующему процессу.

mount — показывает смонтированные разделы.
swapinfo — показывает информацию о файле подкачки.

Также можно установить iftop, которая показывает статистику по сетевым интерфейсам, к при меру:
iftop -i em0

tunefs -p /tmp – показывает информацию о файловой системе.

uname -a — показывает информацию о системе, ядре.
date — выводит текущую дату и время.
w — показывает кто, откуда, во сколько зашёл в систему.
last — показывает историю входов в систему, и последнюю перезагрузку.
uptime — показывает сколько система работает с момента последней перезагрузки.

На этом всё. Из моего опыта, вышеприведённые команды позволят собрать достаточную информацию для оценки состояния системы и «выхода на след».

image_pdfimage_print

Ошибки сборки

Если при установке выводит ошибку типа:

pkg-static: Unable to access file /usr/ports/devel/p5-Locale-gettext/work/stage/usr/local/lib/perl5/site_perl/mach/5.16/auto/Locale/gettext/gettext.so: No such file or directory
pkg-static: Unable to access file /usr/ports/devel/p5-Locale-gettext/work/stage/usr/local/lib/perl5/site_perl/mach/5.16/Locale/gettext.pm: No such file or directory
pkg-static: Unable to access file /usr/ports/devel/p5-Locale-gettext/work/stage/usr/local/lib/perl5/site_perl/man/man3/Locale::gettext.3.gz: No such file or directory
*** Error code 74

Stop.
make[5]: stopped in /usr/ports/devel/p5-Locale-gettext
*** Error code 1

Stop.
make[4]: stopped in /usr/ports/misc/help2man
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/misc/help2man
*** Error code 1

Perl в портах изменяли несколько раз – месторасположение модулей.
Пока Вы думали что и откуда поставить, порты уехали далеко. В итоге, Вы нарвались на указанные грабли.

Соответственно после обновления портов и при попытке собрать apache22 – получили проблемы с perl’ом,
точнее, расположением модулей.

Все остальное, расписано в предыдущем ответе:

# less /usr/ports/UPDATING

– ставите portmaster (безболезненнно) или portupgrade

# make -C /usr/ports/ports-mgmt/portmaster install clean

– используя portmaster -> апгрейдите perl (default’ный уже 5.18) и модули:

# portmaster -o lang/perl5.18 lang/perl5.16
# portmaster -r perl5-

далее приступаете к apache22.

Решение:

pkg install -Rf perl5
image_pdfimage_print

Создание «зеркала» на системном диске с GPT на FreeBSD 9 после установки

Дело в том, что на GPT не просто сделать RAID1, в отличии от MBR, где просто создаёшь рейд и добавляешь туда весь диск. Обычно, рекомендуется создавать «зеркало» на этапе установки, так как после того, как ОС насетаплена это сделать не так просто. Но мы это сделали ))

Тестовый стендFreeBSD 9.2 amb64 Release, 2xHDD 500Gb (ada0, ada1)

Суть нашего метода:

1) Создаём точную разбивку второго диска
2) Делаем gmirror отдельно для каждого из разделов ВТОРОГО диска
3) dump/restore разделов с первого диска на gmirror’ы второго
4) Правка fstab’a на первом диске на разделы с mirror и загрузка уже с mirror’a
5) Добавление оставшихся разделов с первого диска в gmirror’ы.

Приступаем.

ada0 — диск, на котором стоит сейчас ОС
ada1 — второй (новый) диск, который хотим добавить в «зеркало» с первым

Делаем точную копию GPT-разделов на втором диске ada1:

# sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16
# gpart backup ada0 > ada0.gpt
# gpart restore -F /dev/ada1 < ada0.gpt 
# gpart show 
=>       34  976773101  ada0  GPT  (466G)
         34       1024     1  freebsd-boot  (512K)
       1058    2097152     2  freebsd-ufs  (1.0G)
    2098210    8388608     3  freebsd-swap  (4.0G)
   10486818   16777216     4  freebsd-ufs  (8.0G)
   27264034    4194304     5  freebsd-ufs  (2.0G)
   31458338  945314797     6  freebsd-ufs  (451G)

=>       34  976773101  ada1  GPT  (466G) [CORRUPT]
         34       1024     1  freebsd-boot  (512K)
       1058    2097152     2  freebsd-ufs  (1.0G)
    2098210    8388608     3  freebsd-swap  (4.0G)
   10486818   16777216     4  freebsd-ufs  (8.0G)
   27264034    4194304     5  freebsd-ufs  (2.0G)
   31458338  945314797     6  freebsd-ufs  (451G)

Устанавливаем загрузчик на ada1:

# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1
bootcode written to ada1

Создаём ФС на новых разделах ada1 (обратите внимание, что мы не создаём ФС для раздела boot!!!):

# newfs /dev/ada1p2
# newfs /dev/ada1p4
# newfs /dev/ada1p5
# newfs /dev/ada1p6

Создаём «зеркала» из разделов bootswap. Из остальных разделов сейчас не получится, так как нельзя создать mirror из смонтированных разделов:

# gmirror label -v -b round-robin boot /dev/ada0p1 /dev/ada1p1
Metadata value stored on /dev/ada0p1.
Metadata value stored on /dev/ada1p1.
Done.
# gmirror label -v -b round-robin swap /dev/ada0p3 /dev/ada1p3
Metadata value stored on /dev/ada0p3.
Metadata value stored on /dev/ada1p3.
Done.

Теперь отдельно создаём gmirror’ы из разделов на ada1:

# gmirror label -v -b round-robin root /dev/ada1p2
Metadata value stored on /dev/ada1p2.
Done.
# gmirror label -v -b round-robin var /dev/ada1p4
Metadata value stored on /dev/ada1p4.
Done.
# gmirror label -v -b round-robin tmp /dev/ada1p5
Metadata value stored on /dev/ada1p5.
Done.
r# gmirror label -v -b round-robin usr /dev/ada1p6
Metadata value stored on /dev/ada1p6.
Done.
# gmirror status
       Name    Status  Components
mirror/boot  COMPLETE  ada0p1 (ACTIVE)
                       ada1p1 (ACTIVE)
mirror/swap  DEGRADED  ada1p3 (ACTIVE)
mirror/root  COMPLETE  ada1p2 (ACTIVE)
 mirror/var  COMPLETE  ada1p4 (ACTIVE)
 mirror/tmp  COMPLETE  ada1p5 (ACTIVE)
 mirror/usr  COMPLETE  ada1p6 (ACTIVE)

Не пугайтесь насчёт swap, что он в DEGRADED. Просто на этом этапе он (ada0p3) ещё не может добавится в mirror.
Теперь будем делать копию разделов через dump/restore на «зеркальные» тома:

# mkdir /new && cd /new && mkdir root tmp usr var
# mount /dev/mirror/root /new/root/
# mount /dev/mirror/tmp /new/tmp/
# mount /dev/mirror/usr /new/usr/
# mount /dev/mirror/var /new/var
# ( dump -0f - / ) | ( cd /new/root ; restore -rf - )
...
DUMP: finished in 10 seconds, throughput 39253 KBytes/sec
DUMP: DUMP IS DONE
# ( dump -0f - /tmp ) | ( cd /new/tmp ; restore -rf - )
...
DUMP: finished in less than a second
DUMP: DUMP IS DONE
# ( dump -0f - /var ) | ( cd /new/var ; restore -rf - )
...
DUMP: finished in 29 seconds, throughput 7707 KBytes/sec
DUMP: DUMP IS DONE
# ( dump -0f - /usr ) | ( cd /new/usr ; restore -rf - )
...
DUMP: finished in 426 seconds, throughput 3179 KBytes/sec
DUMP: DUMP IS DONE

Приводим /new/root/etc/fstab (то есть fstab, который будет на «зеркале») к такому виду:

/dev/mirror/root            /                  ufs          rw        1        1
/dev/mirror/swap         none                 swap          sw        0        0
/dev/mirror/var         /var                  ufs          rw        2        2
/dev/mirror/tmp         /tmp                  ufs          rw        2        2
/dev/mirror/usr         /usr                  ufs          rw        2        2

Теперь самое интересное: меняем текущий /etc/fstab (точнее приводим к тому виду, что и /new/root/etc/fstab), что бы после ребута была загрузка с /dev/mirror/root.
Размонтируем ФС и ребутаем сервер:

# umount /new/root/
# umount /new/tmp/
# umount /new/var
# umount /new/usr/
# shutdown -r now

После ребута смотрим, что у нас получилось

# mount
/dev/mirror/root on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
/dev/mirror/var on /var (ufs, local)
/dev/mirror/tmp on /tmp (ufs, local)
/dev/mirror/usr on /usr (ufs, local)

Теперь можно добавлять недостающие тома в mirror:

# gmirror insert root /dev/ada0p2
# gmirror insert var /dev/ada0p4
# gmirror insert tmp /dev/ada0p5
# gmirror insert usr /dev/ada0p6
# gmirror status
       Name    Status  Components
mirror/boot  COMPLETE  ada0p1 (ACTIVE)
                       ada1p1 (ACTIVE)
mirror/swap  COMPLETE  ada0p3 (ACTIVE)
                       ada1p3 (ACTIVE)
mirror/root  COMPLETE  ada1p2 (ACTIVE)
                       ada0p2 (ACTIVE)
 mirror/var  DEGRADED  ada1p4 (ACTIVE)
                       ada0p4 (SYNCHRONIZING, 11%)
 mirror/tmp  DEGRADED  ada1p5 (ACTIVE)
                       ada0p5 (SYNCHRONIZING, 6%)
 mirror/usr  DEGRADED  ada1p6 (ACTIVE)
                       ada0p6 (SYNCHRONIZING, 0%)

Дожидаемся окончания синхронизации и опять ребут, что бы проверить, всё ли нормально. После ребута смотрим:

#dmesg | grep GEOM_MIRROR
GEOM_MIRROR: Device mirror/boot launched (2/2).
GEOM_MIRROR: Device mirror/root launched (2/2).
GEOM_MIRROR: Device mirror/swap launched (2/2).
GEOM_MIRROR: Device mirror/var launched (2/2).
GEOM_MIRROR: Device mirror/tmp launched (2/2).
GEOM_MIRROR: Device mirror/usr launched (2/2).
# mount
/dev/mirror/root on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
/dev/mirror/var on /var (ufs, local)
/dev/mirror/tmp on /tmp (ufs, local)
/dev/mirror/usr on /usr (ufs, local)
# gmirror status
       Name    Status  Components
mirror/boot  COMPLETE  ada0p1 (ACTIVE)
                       ada1p1 (ACTIVE)
mirror/root  COMPLETE  ada0p2 (ACTIVE)
                       ada1p2 (ACTIVE)
mirror/swap  COMPLETE  ada0p3 (ACTIVE)
                       ada1p3 (ACTIVE)
 mirror/var  COMPLETE  ada0p4 (ACTIVE)
                       ada1p4 (ACTIVE)
 mirror/tmp  COMPLETE  ada0p5 (ACTIVE)
                       ada1p5 (ACTIVE)
 mirror/usr  COMPLETE  ada0p6 (ACTIVE)
                       ada1p6 (ACTIVE)
image_pdfimage_print

Инкрементное резервное копирование

Это небольшой tutorial о том, как правильно и экономно делать резервное копирование (backup) данных на сервере.

Всё началось с того, что файлы нашего сервера (tuffle.com) стали занимать > 300GB. Естественно, эти данные очень ценны для нас и мы должны позаботиться о их сохранности. Первым делом мы настроили автоматический мастер резервного копирования в ISP Manager. Он справлялся не так уж плохо, когда данных было немного. Потом в день “X” было обнаружено, что каждый архив бэкапа весит очень много и что процесс копирования длится около 10 часов. Естественно, это сказывается на производительности сервера.

Решение.

Главной ошибкой было то, что хранились дубликаты файлов. Именно эту проблему решает инкрементное резервное копирование. Оно сохраняет только уникальные файлы.

Как это работает.

Один раз в день (лучше ночью, когда посетителей минимальное количество) мы сохраняем только файлы, которые были загружены в этот день. Бэкапы хранятся за последние N дней. Есть общий архив, который хранит все файлы до первого бэкапа и отдельные ежедневные архивы с изменениями.

Какие инструменты использовались? Консоль и bash 🙂 Создадим папку, где будут хранится наши архивы:

mkdir /root/backup

Создаем sh скрипт, который и будет заниматься резервированием:

touch /root/backup/backup-files.sh
touch /root/backup/exclude.list

Со следующим содержимым:

#!/bin/sh
 
cd /root/backup || exit
 
date=`date +%F`
days=10
host=`hostname`
 
rsync -aR --delete --link-dest=$PWD/$host.current --exclude-from=exclude.list \
 /etc/apache2 \
 /var/www \
 $host.$date && \
 ( rm -f $host.current; ln -s $host.$date $host.current ) && \
 find $host.* -maxdepth 0 -type d -ctime +$(( $days - 1 )) -exec rm -r {} +

Этот скрипт проверяет файлы, копирует новые, создавая папку с датой в названии. В exlude.list запишите файлы и папки, которые не стоит проверять. Осталось запустить этот скрипт, а лучше делать это автоматически. В cron-файле добавить следующую строку:

0 3 * * * /root/backup/backup-files.sh

Теперь этот скрипт будет запускаться каждый день в 3 часа ночи.

Что с базой данных?

Сейчас мы делаем бэкапы БД обычным mysqldump так как она занимает относительно немного места. Если мы выберем более оптимальное и интересное решение, я об этом напишу.

image_pdfimage_print

Dovecot – ротация логов

Настройка ротации лога dovecot.log. Если этого не сделать (да еще и включить отладку), то очень скоро он “распухнет” до неимоверных размеров. Поэтому раз в неделю будем этот файл архивировать и очищать. Особенностью данного процесса есть то, что если не дать процессу Dovecot сигнал HUP, то он перестает писать в лог. Поэтому строка для добавления в файл newsyslog.conf будет такая:

/var/log/dovecot.log 600 7 * $W6D0 JC /var/run/dovecot/master.pid
image_pdfimage_print

Мониторинг в ОС FreeBSD 2

Первое с чего начну, это всем известная утилита top. Она показывает общие сведения о процессоре, памяти и процессах, если возникают вопросы по производительности, я её запускаю первой, чтобы выявить аномалии в системе. У утилиты top есть параметры, которые облегают жизнь, их мы набираем в top’e когда он запущен:

 S — показать системные процессы, по умолчанию они не показываются
 u — и имя пользователя, например u mysql покажет процессы запущенные от пользователя mysql
 o — используем для сортировки, возможные параметры — pri, size, res, cpu, time, threads
 m — переключение между режимами отображения нагрузки и ввода-вывода
 k — завершить процесс, ввод pid процесса
 r — изменить приоритет процесса, вводим pid процесса
 n — отображать статистику по определённому процессу
 a — показывает абсолютные запущенных процессов
top -n 3 — показывает самые ресурсоёмкие приложения в данный момент
gstatпоказывает использование дисков.
gstat -a — используется для вывода только активных устройств
 vmstatпоказывает состояние виртуальной памяти и буфера.
 vmstat 5 — отображает статистику раз в пять секунд
 vmstat -z — показывает состояние буфера
 vmstat -i — показывает состояние прерываний
 iostatвыводит статистику по I/O устройств
 iostat -d -w5 — показывать информацию по дискам, с периодичностью в пять секунд безостановочно
 iostat -dx -w5 — показывает расширенную статистику
 systatотображает различные параметры системы.
 systat -vmstat 1 — отображает суммарную системную статистику
 systat -netstat 1 — показывает активные сетевые соединения
 systat -ifstat 1 — отображает нагрузку сетевых интерфейсов
 systat -tcp 1 — отображает статистику tcp-соединения, возможен просмотр по icmp, ip, icmp6, ip6
 systat -iostat 1 — отображает нагрузку на процессов, дисковую подсистему
 systat -swap 1 — показывает загрузку файла подкачки
 netstatпоказывает активные сетевые соединения.
 netstat -w 1 — количество пакетов в настоящее время
 netstat -ibt — вывод сетевых интерфейсов с разбивкой по IP адресам, отображает объём трафика, количество ошибок, коллизий.
 netstat -rn — отображает таблицу маршрутизации
 netsat -na -f inet — чтобы увидеть открытые сетевые соединения, 
можно использовать команду netstat(8) с ключом -a. Ключ -n сообщает команде netstat(8), 
что она не должна выполнять преобразование IP-адресов в имена хостов, — 
такое преобразование не только замедляет вывод информации, но и может породить 
неоднозначность полученных результатов. Наконец, параметр -f inet требует от netstat(8) 
беспокоиться только о сетевых соединениях.

Колонки Recv-Q и Send-Q показывают, сколько байт в том или ином соединении ожидают обслуживания. Если в колонке Recv-Q ненулевые значения присутствуют постоянно, значит, система не может обрабатывать входные данные достаточно быстро. Точно так же постоянно присутствующие значения в Send-Q говорят о том, что либо сеть, либо другая сторона соединения не могут принять данные с той скоростью, с какой они посылаются. Случайные пакеты, ожидающие своей очереди, — это нормально. Колонка Foreign Address (внешний адрес) показывает удаленный адрес (remote address) и номер порта для каждого соединения. Наконец, колонка (state) показывает состояние рукопожатия TCP. В данный момент не требуется знать все возможные состояния ТСР-соединения; достаточно понять, какие из них являются нормальными. Состояние ESTABLISHED означает, что соединение установлено и данные, по всей видимости, передаются. Состояния LAST_ACK, FIN_WAIT_1 и FIN_WAIT_2 означают, что соединение закрывается. Состояния SYN_RCVD, АСК и SYN+ACK — это этапы нормального создания соединения. Состояние LISTEN говорит, что порт готов принимать входящие соединения. Если вас не интересуют сведения о сокетах, ожидающих входящие соединения, а интерес представляют только активные соединения, можно вместо ключа -a использовать ключ -b. Например, команда netstat -nb -f inet отобразит только установленные соединения с удаленными системами.

 ifconfigиспользуется для конфигурирования сетевых интерфейсов
 ifconfig -a - список всех сетевых интерфейсов
 ifconfig -u - список поднятых сетевых интерфейсов
 ifconfig -d - список выключенных сетевых интерфейсов
 ifconfig rl0 down - отключить сетевой интерфейс
 ifconfig rl0 up - поднять интерфейс
 ifconfig eth0 192.168.2.2 - назначить IP адрес 192.168.2.2 на интерфейс  eth0
 ifconfig eth0 netmask 255.255.255.0 - изменить сетевую маску на интерфейсе eth0
 ifconfig eth0 broadcast 192.168.2.255 - изменить бродкаст адрес для интерфейса eth0
 ifconfig eth0 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255 - назначить IP адрес, маску и бродкаст одной командой
 ifconfig eth0 mtu XX - для изменения Maximum transmission unit (MTU) на значение XX
 ifconfig eth0 promisc - команда переводи интерфейс в promiscuous mode
 ifconfig eth0 -promisc - команда перевести интерфейс в нормальный режим

По умолчанию когда сетевая карта получает пакет, она проверяет адрес получателя. В случае если этот адрес отличен от назначенных ей адресов, пакет отбрасывается. В promiscuous mode, карта не отбрасывает данные пакеты. Вместо этого она принимает все пакеты, приходящие через интрефейс. Для установки данного режима требуются привелегии суперпользователя. Большинство сетевых мониторов и анализаторов используют данный режим для захвата пакетов и анализа сетевого трафика.

 

diskinfo -t ad0показывает информацию по диску, и делает тест на дисковую производительность.
 sysctlпозволяет посмотреть параметры в системы и внести изменения, такие как стек tcp/ip, вирутальной памяти.
 sysctl -a — показывает все параметры
 sysctl kern.ipc.numopensockets — показывает количество открытых сокетов
 sysctl kern.openfiles — показывает количество открытых файлов
 dfутилита, которая показывает свободное место на дисках.
 df -h — отображает слайсы, и свободное\занятое место.
 df -i — показывает количество занятых инодов.
 fstatпоказывает список открытых файлов.
 fstat |grep http| wc -l — показывает список открытых файлов по процессу http
 sockstatотображает информацию о сокетах, сетевых и файловых.
 sockstat -l — список портов открытых на прослушивание
 sockstat -c список установленных соединений
 sockstat -4, -6 — по протоколу ipv4 или ipv6
 lsofпоказывает информацию от откртых сокетах, файлах и сетевых соединениях.
 lsof -i -n — показывает открытые интернет-соединения
 lsof -i -n |grep ESTABLISHED — показывает открытые, и установленные сетевые соединения
ps auxww|grep имя\pid\от_кого_запущено — позволяет получить информацию по интересующему процессу.
 mountпоказывает смонтированные разделы.
 swapinfoпоказывает информацию о файле подкачки.

Также можно установить iftop, которая показывает статистику по сетевым интерфейсам, к при меру:

iftop -i em0
tunefs -p /tmpпоказывает информацию о файловой системе.
pciconf -lv - информация об устройствах (в т.ч. сетевых картах)
 uname -a — показывает информацию о системе, ядре.
 date — выводит текущую дату и время.
 w — показывает кто, откуда, во сколько зашёл в систему.
 last — показывает историю входов в систему, и последнюю перезагрузку.
 uptime — показывает сколько система работает с момента последней перезагрузки.
image_pdfimage_print