Эта статья – попытка перевода очень полезного документа Unix Toolbox. На некоторые команды постараюсь дать более развернутые комментарии, чем в оригинальной статье. Т.к. оригинальный документ очень большой – то и переводить я его буду частями, а потом соберу все в одном разделе.
Если есть что добавить – добро пожаловать в комменты.
Содержание
1.0 Информация о ядре и системе:
узнать версию ядра (и версию BSD системы)
# uname -a
узнать версию SuSE
# cat /etc/SuSE-release
узнать версию Debian
# cat /etc/debian_version
узнать сколько времени прошло со времени запуска системы + load average
# uptime
имя хоста
# hostname
список присвоенных системе IP адресов (только Linux), покажет только те адреса, на которые отзывается имя хоста
# hostname -i
список всех присвоенных системе IP адресов (только Linux)
# hostname --all-ip-addresses
описание иерархии файловой системы
# man hier
выведет список последних перезагрузок системы с указанием времени перезагрузки и версией загружаемого ядра
# last reboot
1.1 Информация о hardware-части сервера:
список обнаруженных аппаратных средства и сообщения о процессе загрузки
# dmesg
информация об установленном оборудовании
# lsdev
считать информацию BIOS-а
# dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8
Linux
полная информация о CPU
# cat /proc/cpuinfo
полная информация об аппаратной памяти
# cat /proc/meminfo
отображение доступной физической памяти
# grep MemTotal /proc/meminfo
использованная и свободная память (-m для вывода в MB)
# free -m
сконфигурированные в системе устройства
# cat /proc/devices
список PCI устройств
# lspci -tv
список USB устройств
# lsusb -tv
список всех устройств с их конфигурацией
# lshal
список DMI/SMBIOS: информация об аппратной части из BIOS-а
# dmidecode
FreeBSD
информация о CPU
# sysctl hw.model
информация об аппаратных устройствах
# sysctl hw
количество активных CPU
# sysctl hw.ncpu
использование памяти
# sysctl vm
отображение доступной физической памяти
# sysctl hw.realmem
информация и свойства памяти ядра
# sysctl -a | grep mem
сконфигурированные в системе устройства
# sysctl dev
список PCI устройств
# pciconf -l -cv
список USB устройств
# usbdevs -v
список ATA устройств
# atacontrol list
список SCSI устройств
# camcontrol devlist -v
1.2 Нагрузка, статистика и системные сообщения
Эти команды помогут вам понять, что происходит в системе.
вывод процессов CPU, его средняя нагрузка и использование памяти
# top
Linux: отображает нагрузку процессора (требует установленного sysstat)
# mpstat 1
статистика использования виртуальной памяти
# vmstat 1
отображение статистики I/O
# iostat 1
BSD общая статистика использования системы
# systat -vmstat 1
BSD tcp-соединения (так же можно -ip)
# systat -tcp 1
BSD активные сетевые соединения
# systat -netstat 1
BSD сетевой трафик активных интерфейсов
# systat -ifstat 1
BSD использование CPU и жесткого диска
# systat -iostat 1
последние 500 строк kernel/syslog
# tail -n 500 /var/log/messages
сообщения с предупреждениями (смотрите настройки в /etc/syslog.conf)
# tail /var/log/warn
1.3 Пользователи и группы
показывает запись об активном пользователе с его ID, UID, GID и групп, в которые он входит
# id
выводит список авторизаций в системе за последний месяц
# last
отображает список активных пользователей, подключенных в данный момент к системе
# who
добавляет группу “admin” (Linux/Solaris)
# groupadd admin
добавляет существующего пользователя в группу (Debian)
# usermod -a -G <group> <user>
добавляет существующего пользователя в группу (SuSE)
# groupmod -A <user> <group>
удаляет пользователя colin (Linux/Solaris)
# userdel colin
FreeBSD добавляет пользователя joe (интерактивный режим)
# adduser joe
FreeBSD удаляет пользователя joe (интерактивный режим)
# rmuser joe
FreeBSD добавляет группу admin (утилита pw)
# pw groupadd admin
FreeBSD добавляет пользователя “newmember” в группу admin (утилита pw)
# pw groupmod admin -m newmember
FreeBSD добавляет пользователя colin в группу admin и устанавливает shell по-умолчанию tcsh
# pw useradd colin -c "Colin Barschel" -g admin -m -s /bin/tcsh
удаляет пользователя colin
# pw userdel colin
удаляет группу admin
# pw groupdel admin
Зашифрованные пароли хранятся в файле /etc/shadow (Linux и Solaris) и /etc/master.passwd во FreeBSD. Если файл master.passwd редактировался вручную – выполните:
# pwd_mkdb -p master.passwd
для обновления.
1.4 Ограничения
Некоторым приложениям для работы требуется больше файлов и сокетов, чем им позволено системными ограничениями (например web-сервера, прокси-сервера, сервера баз данных).
Linux
Для облочки/скрипта
Лимиты оболочки устанавливаются ulimit. Что бы проверить текущий статус ограничений, введите:
#ulimit -a
Что бы изменить ограничение с 1024 до 10240, выполните:
# ulimit -n 10240
// используется только в командной строке
Кроме того, ulimit можно использовать в скриптах, что бы изменить ограничения только для него.
Пользователь/процесс
Лимиты пользователей и приложений устанаилваются в файле /etc/security/limits.conf. Например:
# cat /etc/security/limits.conf
* hard nproc 250
//ограничение кол-ва процессов от имени пользователя
asterisk hard nofile 409600
//лимит на кол-во одновременно открытых процессом файлов
Ограничения системы
Ограчения ядра устанавливаеются с помощью команды Sysctl. Постоянные ограничения устанавливаются в файле /etc/sysctl.conf.
Отобразить все общесистемные ограничения
# sysctl -a
Отобразить лимит максимального кол-ва открытых файлов
# sysctl fs.file-max
Изменить лимит максимального кол-ва открытых файлов
# sysctl fs.file-max=102400
Постоянное значение, через файл sysctl.conf
# fs.file-max=102400
Максимальное кол-во файловых дескрипторов
# cat /proc/sys/fs/file-nr
FreeBSD
Для облочки/скрипта
Можно использовать команду limits в оболочках csh и tcsh,или использовать команду ulimit в оболочках sh и bash.
Пользователь/процесс
Значения по-умолчанию устаналиваются в файле /etc/login.conf. Неограниченные значения устанавливаются правилами для всей системы.
Системные ограничения
Ограничения ядра устанавливаются так же командой sysctl. Постоянные ограничения указываются в файлах /etc/sysctl.conf или /boot/loader.conf. Синтаксис такой же, как и в Linux, но некоторые ключи отличаются.
отобразить все системные ограничения
# sysctl -a
максимальное значение файловых дескрипторов
# sysctl kern.maxfiles=XXXX
Постоянное ограничение в /etc/sysctl.conf
# kern.ipc.nmbclusters=32768
Типичные значения для сервера Squid
# kern.maxfiles=65536
# kern.maxfilesperproc=32768
Очередь TCP, например для серверов apache/sendmail
# kern.ipc.somaxconn=8192
Максимальное кол-во используемых файловых дескрипторов
# sysctl kern.openfiles
Максимальное кол-во сокетов для использования
# sysctl kern.ipc.numopensockets
Максимальное значение диапазона портов, по-умолчанию 1024-5000
# sysctl net.inet.ip.portrange.last=50000
Статистика сетевых буферов памяти
># netstat -m # network memory buffers statistics
Подробнее смотрите в FreeBSD Handbook.
Solaris
Такие параметры в файле /etc/system изменят максимальное кол-во файловых дескрипторов для одного процесса:
Жесткое ограничение:
# set rlim_fd_max = 4096
Мягкое ограничение:
# set rlim_fd_cur = 1024