admin / 25.08.2018
Учитывая зоопарк дистрибутивов Linux, иной раз, получая доступ к серверу, не понимаешь, где ты находишься. Особенно это больно, если нужно поставить недостающий пакет. Руки сами пишут
lsb_release -a
в надежде увидеть
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04 LTS Release: 16.04 Codename: xenial
или что-то подобное, но в ответ лишь
lsb_release: команда не найдена
Следующее, что приходит в голову:
$ uname -a Linux w 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Точнее, это как раз (лично мне) первым и вспоминается, но в голове крутится, что есть способ «правильнее». Да, именно тот, который я первым и написал. Также можно сделать через
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
— «правильный вариант» для людей «всё есть файл».
Вообще, это не единственный «релиз», который у нас есть в /etc.
$ cat /etc/*release* DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS" NAME="Ubuntu" VERSION="16.04 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" UBUNTU_CODENAME=xenial $ ll /etc/*release* -rw-r—r— 1 root root 103 апр 13 2016 /etc/lsb-release lrwxrwxrwx 1 root root 21 дек 13 17:56 /etc/os-release -> ../usr/lib/os-release
У красноголовых можно встретить redhat-release, например.
Идём дальше по файлам:
$ cat /etc/*version* stretch/sid
А также
$ cat /etc/*issue* Ubuntu 16.04 LTS \n \l Ubuntu 16.04 LTS
(их два на Ubuntu). Ну и
$ cat /proc/version Linux version 4.4.0-66-generic (buildd@lgw01-28) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017
Ещё неплохой вариант «выцыганить» версию из логов dmesg
$ dmesg | grep "Linux version" [ 0.000000] Linux version 4.4.0-66-generic (buildd@lgw01-28) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 (Ubuntu 4.4.0-66.87-generic 4.4.44)
Или вообще использовать утилиту inxi (в иных дистрибутивах и она стоит, например Linux Mint):
$ inxi -S System: Host: w Kernel: 4.4.0-66-generic x86_64 (64 bit) Desktop: Unity 7.4.0 Distro: Ubuntu 16.04 xenial
Также можно посмотреть данные по аудио, железу, даже монитору через .
A можно глянуть, как ядро Linux запущено:
$ cat /proc/cmdline BOOT_IMAGE=/vmlinuz-4.4.0-66-generic.efi.signed root=/dev/mapper/ubuntu—vg-root ro quiet splash vt.handoff=7
sysctl также нам поможет:
$ sysctl -a | grep version sysctl: permission denied on key 'fs.protected_hardlinks' sysctl: permission denied on key 'fs.protected_symlinks' sysctl: permission denied on key 'kernel.cad_pid' kernel.bootloader_version = 1 sysctl: permission denied on key 'kernel.unprivileged_userns_apparmor_policy' sysctl: permission denied on key 'kernel.usermodehelper.bset' sysctl: permission denied on key 'kernel.usermodehelper.inheritable' kernel.version = #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 …
Окей, нет у нас этих утилит, файлов, но кто-то оставил gcc…
$ echo 'int main(void){return 0;}' > os.c && gcc os.c -o os && strings os /lib64/ld-linux-x86-64.so.2 libc.so.6 __libc_start_main __gmon_start__ GLIBC_2.2.5 UH-0 AWAVA AUATL []A\A]A^A_ ;*3$" GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 …
Ну и вообще можно натравить strings на тот же /bin/ls и получить также много информации. Правда, там так просто не найти нужное (или вообще не найти).
Утилита file также может рассказать многое:
$ file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=eca98eeadafddff44caf37ae3d4b227132861218, stripped
Если же ничто из этого не помогло, поищите на экране кнопку «Пуск» ⛧
Есть ещё вариант спросить админа… Но он слишком дзенский.
— Максим, — спросил Федор — в чем смысл дзен?
Максим ответил:
— Смысл дзен — это как налить из чекушки четыре полных стакана водки.
— Да, — сказал Федор — из пустой.
— Да, — ответил Максим — и не выпить.
— Да, — сказа Федор — и водку в стаканы не наливать.
Я уверен, это не все возможные способы. Если вы знаете другие «элегантные» способы узнать дистрибутив Linux и версию ядра — поделитесь ими в комментах. Самые интересные, естественно, добавлю в этот список.
Canonical оптимизирует себя
OMG! На MacOS есть Wine!
Синтаксис: date YYYYMMDDhhmm
Пример: (2012 год, октябрь 30, 21:05)
# uname -a
Вывод: операционная система, hostname, версия ОС, дата, ядро, разрядность.
# ifconfig
# df -h
# top -a
(Аналог «диспетчера задач» в Windows)
# pkg_info | grep more
# uptime
# ps aux
# du -h -d 1 /usr/local
369M /usr/local/share
32M /usr/local/bin
988K /usr/local/etc
18M /usr/local/include
18M /usr/local/info
216M /usr/local/lib
186K /usr/local/libdata
20M /usr/local/libexec
8.0M /usr/local/man
4.7M /usr/local/sbin
43M /usr/local/www
350M /usr/local/ispmgr
7.5M /usr/local/lib32
1.1G /usr/local
Запись опубликована автором MishLen в рубрике Полезные команды. Добавьте в закладки постоянную ссылку.
Наименьшая единица, которую FreeBSD использует для обращения к файлам, это имя файла. Имена файлов чувствительны к регистру, поэтому и — два разных файла. FreeBSD не использует расширение файла () для определения программа это, документ или другой тип данных.
Файлы хранятся в каталогах. Каталоги могут не содержать файлов, или могут содержать много сотен файлов. Каталоги также могут содержать другие каталоги, что позволяет создавать иерархию каталогов один в другом. Это упрощает организацию данных.
Обращение к файлам происходит путем задания имени файла или каталога, дополняемого прямым слэшем , за которым может следовать имя другого каталога. Если есть каталог , содержащий каталог , который содержит файл , полное имя, или путь к файлу будет .
Каталоги и файлы хранятся в файловой системе. Каждая файловая система содержит один каталог на верхнем уровне, называемый корневым каталогом этой файловой системы. Этот корневой каталог может содержать другие каталоги.
Внешне это может быть похоже на те операционные системы, которые вы возможно использовали. Есть несколько отличий: например, MS-DOS(R) использует для разделения имен файлов и каталогов, а Mac OS(R) использует .
FreeBSD не использует букв дисков, или других имен дисков в пути. Вам не нужно писать в FreeBSD.
Вместо этого, одна файловая система назначается корневой файловой системой. Обращение к корневому каталогу корневой файловой системы происходит через . Любая другая файловая система монтируется к корневой файловой системе. Неважно как много дисков есть в вашей системе FreeBSD, каждый каталог будет выглядеть как расположенный на том же диске.
Предположим, у вас есть три файловых системы: , , и . Каждая файловая система имеет один корневой каталог, в котором содержатся другие каталоги, называемые , (и аналогично , и , ).
Назовем корневой файловой системой. Если вы используете команду для просмотра содержимого каталога, вы увидите два подкаталога, и . Дерево каталогов выглядит так:
Файловая система должна быть подмонтирована к каталогу другой файловой системы. Предположим, что вы монтируете файловую систему на каталог . Корневой каталог замещается , а каталоги в отображаются соответственно:
Если потребуется, любые файлы из каталогов или могут быть получены через путь или . Все файлы, бывшие в , временно скрыты. Они появятся, если будет размонтирована с A.
Если была смонтирована на диаграмма будет выглядеть так:
а пути будут и соответственно.
Файловые системы могут быть смонтированы одна на другую. Продолжая предыдущий пример, файловая система может быть смонтирована на каталог файловой системы в таком порядке:
Или может быть смонтирована прямо на файловую систему , на каталог :
Если вы знакомы с MS-DOS(R), это похоже, хотя и не идентично, команде .
Как правило, это не должно вас интересовать. Обычно вы создаете файловые системы во время установки FreeBSD, решаете куда их монтировать, и ничего не меняете, пока не понадобится добавить новый диск.
Можно создать одну большую корневую файловую систему и не создавать других. У такого подхода есть несколько недостатков и одно преимущество.
Преимущества нескольких файловых систем
Различные файловые системы могут иметь различные опции монтирования. Например, в целях безопасности корневая файловая система может быть смонтирована только для чтения, что делает невозможным случайное удаление или редактирование критически важного файла. Отделение файловых систем, используемых пользователями для записи, таких как , от других файловых систем позволяет также монтировать их с параметром nosuid; этот параметр отменяет действие битов suid/ guid на исполняемых файлах, в этой файловой системе, что потенциально повышает безопасность.
FreeBSD автоматически оптимизирует расположение файлов на файловой системе в зависимости от того, как файловая система используется. Файловая система, содержащая множество мелких часто записываемых файлов, будет иметь оптимизацию, отличную от таковой для файловой системы, содержащей несколько больших файлов. На одной большой файловой системе эта оптимизация не работает.
Файловые системы FreeBSD очень устойчивы к внезапному отключению. Тем не менее, потеря питания в критический момент все же может повредить структуру файловой системы. Разделение данных на несколько файловых систем повышает шансы, что система все-таки будет работать и делает более легким восстановление с резервной копии.
Преимущество одной файловой системы
Размер файловых систем фиксирован.
Если вы создаете файловую систему при установке FreeBSD и задаете определенный размер, позднее вы можете обнаружить что нужен раздел большего размера. Это не так легко сделать без резервного копирования, создания файловых систем нового размера и последующего восстановления сохраненных данных.
В FreeBSD представлена команда growfs(8), которая позволяет увеличивать размер файловой системы на лету, устраняя это ограничение.
Файловые системы содержатся в разделах.
Этот термин не имеет того же смысла, что и при более раннем его использовании в этой главе, из-за наследия UNIX(R) в FreeBSD. Каждый раздел обозначается буквой от до . Каждый раздел может содержать только одну файловую систему, это значит что файловая система может быть описана ее точкой монтирования в файловой иерархии, или буквой раздела, в котором она содержится.
FreeBSD также использует дисковое пространство под раздел подкачки (swap space). Подкачка позволяет FreeBSD работать с виртуальной памятью. Ваш компьютер может работать так, как если бы у него было больше памяти, чем есть на самом деле. Когда у FreeBSD кончается память, она перемещает часть данных, не используемых в данный момент, в раздел подкачки и возвращает их обратно (перемещая в подкачку что-то другое), когда они нужны.
По некоторым разделам есть определенные соглашения.
Раздел | Соглашение |
---|---|
Как правило, содержит корневую файловую систему | |
Как правило, содержит раздел подкачки | |
Как правило, такого же размера, что и весь слайс (slice). Это позволяет утилитам, которым нужно работать над всем слайсом (например, сканер плохих блоков), работать с разделом . В обычной ситуации не нужно создавать файловую систему на этом разделе. | |
Раздел создавался для специальных целей, хотя сейчас они не актуальны и может быть задействован как обычный раздел. |
Каждый раздел-содержащий-файловую-систему хранится на том, что во FreeBSD называется слайс (slice). Слайс — это термин FreeBSD, то, что обычно называют разделом, и опять же это из-за UNIX(R) основы FreeBSD. Слайсы нумеруются с 1 по 4.
Номера слайсов следуют за именем устройства, предваряемые строчной , начиная с 1. Так <
Слайсы, <<эксклюзивно выделенные (dangerously dedicated)>> физические устройства и другие устройства содержат разделы, представляемые буквами от до . Эти буквы добавляются к имени устройства. <
Наконец, каждый диск идентифицирован. Имя диска начинается с кода, обозначающего тип диска, затем идет номер диска. В отличие от слайсов, нумерация дисков начинается с 0. Основные коды, которые вам могут встретиться, есть в Таблица 4.2, <<Коды дисковых устройств>>.
В то время, как ссылка на раздел FreeBSD требует также указания слайса и диска, содержащего раздел, ссылка на слайс требует также указания имени диска. Другими словами, ссылаясь на раздел, указывайте имя диска, , номер слайса, и затем букву раздела. Примеры показаны в Пример 4.12, <<Пример имен диска, слайса, и раздела>>.
Пример 4.13, <<Концептуальная модель диска>> показывает концептуальную модель диска, которая должна помочь прояснить ситуацию.
Для установки FreeBSD вы должны сначала настроить слайсы дисков, затем создать разделы внутри слайсов, которые будут использованы для FreeBSD, а затем создать файловую систему (или подкачку) в каждом разделе и решить, куда файловая система будет смонтирована.
Таблица 4.2. Коды дисковых устройств
Код | Значение |
---|---|
ATAPI (IDE) диск | |
SCSI direct access диск | |
ATAPI (IDE) CDROM | |
SCSI CDROM | |
Floppy disk |
Пример 4.12. Пример имен диска, слайса, и раздела
Имя | Значение |
---|---|
Первый раздел () на первом слайсе () первого IDE диска (). | |
Пятый раздел () на втором слайсе () второго SCSI диска (). |
Пример 4.13. Концептуальная модель диска
Эта диаграмма показывает первый подключенный к системе IDE диск с точки зрения FreeBSD. Предположим, что размер диска 4 GB, и он содержит два 2 GB слайса (MS-DOS(R) разделы). Первый слайс содержит MS-DOS(R) диск, , а второй слайс содержит установленную FreeBSD. В этом примере у установленной FreeBSD есть три раздела с данными и раздел подкачки.
В каждом из трех разделов есть файловая система. Раздел используется для корневой файловой системы, для иерархии каталогов , а для иерархии каталогов .
По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.
Часто бывает, что то, что в графическом режиме было очевидно, в консоли непонятно как делать. В частности, если Вы администрируете сервер на Ubuntu, Debian или Linux Mint, Вам может понадобиться узнать, как используется диск (внешняя память): сколько свободно, а сколько занято.
Это делается командой:
df -H
Которая выведет нечто следующее:
Файл.система Размер Использовано Дост Использовано% Cмонтировано в /dev/sda1 8,5G 1,4G 6,8G 17% / udev 1,1G 4,1k 1,1G 1% /dev tmpfs 421M 238k 420M 1% /run none 5,3M 0 5,3M 0% /run/lock none 1,1G 0 1,1G 0% /run/shm cgroup 1,1G 0 1,1G 0% /sys/fs/cgroup
Так мы узнаем свободное место по примонтированным файловым системам. Но зачастую этого не хватает: нужно ещё узнать, куда пропало свободное место!
du -hs */ | sort -rh | head -10
Подскажет нам, какая из директорий самая большая — выведет топ-10 самых больших папок.
Как сделать установочную USB-флешку Windows 7, 8, 10 Ubuntu / Linux Mint / Debian
Как в MacOS запустить диспетчер задач или есть ли аналог Ctrl+Alt+Delete
Если с системой происходит что-то не то, то выявить узкое место поможет эта заметка. В ней приведены команды для просмотра различного состояния системы:
vmstat 2 — вывод статистики виртуальной памяти (в режиме realtime обновление каждые 2 секунды).
vmstat -z — просмотр состояния буфера
vmstat -i — просмотр состояний прерываний
iostat -d — вывод статистики только для устройств (в основном жёсткие диски)
iostat -dx — вывод расширенной статистики для устройств
gstat — просмотр статистики по дискам
gstat -a — вывод только активных geom-утройств в текущий момент времени
Это очень функциональная утилита, содержащая в себе информацию, которую можно получить через утилиты, описанные выше.
systat -vmstat 1 — суммарная системная статистика (вывод полнее, чем просто через vmstat)
systat -tcp 1 — просмотр tcp-соединений (можно использовать параметр tcp, icmp)
systat -netstat 1 — просмотр активных соединений в момент времени (аналог netstat в реальном времени)
systat -ifstat 1 — просмотр траффика через интерфейсы в realtime
systat -iostat 1 — просмотр CPU и дисковой подсистемы
netstat — вывод активных сетевых соединений (сокетов)
netstat -w 1 — статистика пакетов в realtime
netstat -ibt — список интерфейсов, разбитых по ip-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog-таймера
netstat -r — таблица маршрутизации
Автор: Тараненко Сергей (skeletor@ukr.net)
Во FreeBSD существует огромное количество средств для получения информации о функционировании системы. Однако некоторые из них спрятаны немного нетривиально.
mount — показывает смонтированные подразделы и флаги из монтирования
/dev/mirror/root on / (ufs, local, journaled soft-updates) devfs on /dev (devfs, local, multilabel)
df — показывает смонтированные подразделы, их размер и свободное место на них
Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/mirror/root 231567416 52567036 160474988 25% / devfs 1 1 0 100% /dev
fdisk /dev/ad0 — показывает информацию о диске ad0 и разделах на нем
******* Working on device /dev/ad0 ******* parameters extracted from in-core disklabel are: cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl) Figures below won’t work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=484521 heads=16 sectors/track=63 (1008 blks/cyl) Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 238 (0xee),(EFI GPT) start 1, size 488397167 (238475 Meg), flag 80 (active) beg: cyl 0/ head 0/ sector 2; end: cyl 1023/ head 255/ sector 63 The data for partition 2 is: <UNUSED> The data for partition 3 is: <UNUSED> The data for partition 4 is: <UNUSED>
swapinfo — показывает список подразделов свопинга на дисках и их использование
Device 1K-blocks Used Avail Capacity /dev/mirror/swap 4194300 0 4194300 0%
fstat — показывает список открытых файлов (имена файлов не выводятся)
root adjkerntz 106 2 /dev 22 crw-rw-rw- null rw root init 1 text / 17335336 -r-xr-xr-x 791384 r root init 1 wd / 2 drwxr-xr-x 1024 r root init 1 root / 2 drwxr-xr-x 1024 r root kernel 0 wd / 2 drwxr-xr-x 1024 r root kernel 0 root / 2 drwxr-xr-x 1024 r
pstat -f — выводит список открытых файлов (имена файлов не выводятся)
209/12328 open files LOC TYPE FLG CNT MSG DATA OFFSET fffffe000670c280 inode RW 14 0 fffffe0006ad4600 938f fffffe000670c280 inode RW 14 0 fffffe0006ad4600 938f fffffe000670c280 inode RW 14 0 fffffe0006ad4600 938f fffffe000670c280 inode RW 14 0 fffffe0006ad4600 938f
systat -vmstat n — каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой.
iostat — выводит информацию, аналогичную systat -vmstat, но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки. tty ada0 ada1 pass0 cpu tin tout KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s us ni sy in id 0 30 126.28 10 1.20 124.83 10 1.22 0.00 0 0.00 0 0 0 0 100
vmstat — выводит количество операций на диске в секунду
procs memory page disks faults cpu r b w avm fre flt re pi po fr sr ad0 ad1 in sy cs us sy id 2 0 0 735M 3520M 9 0 0 0 10 0 0 0 32 128 311 0 0 100
less /etc/fstab — таблица монтирования при загрузке
# Device Mountpoint FStype Options Dump Pass# #/dev/ada0p2 / ufs rw 1 1 #/dev/ada0p3 none swap sw 0 0 /dev/mirror/root / ufs rw 1 1 /dev/mirror/swap none swap sw 0 0
systat -vmstat n — вывод показателей загрузки (number of jobs in the run queue averaged over 1, 5 and 15 min), состояния памяти (в страницах), количества процессов в группах, количество вызовов специальных функций ядра (traps, interrupts, system calls, network software interrupts), использование процессора, трансляции имен, активность свопа, прерывания, а также информацию по использованию диска (см)
top — аналогичная информация в сокращенном виде + использование памяти и свопа в мегабайтах, список процессов, отсортированных по использованию процессора.
ps afx — список запущенных процессов и время процессора на каждый
ifconfig — список сетевых интерфейсов с ip-адресами, масками, mac-адресами, типами карт и их статусами (названия карточек можно посмотреть в файле конфигурации ядра)
systat -if —
systat -ifstat n — объем трафика за n секунд на всех сетевых интерфейсах
netstat — вывод активных сетевых соединений (сокетов)
systat -netstat n — аналог netstat в реальном времени
systat -ip n — таблица IP-пакетов и ошибок по типам за n секунд
systat -tcp n — таблица TCP-пакетов и ошибок по типам за n секунд
systat -icmp n — таблица ICMP-пакетов и ошибок по типам за n секунд
netstat -ibt — список интерфейсов, разбитых по ip-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog-таймера
netstat -r — таблица маршрутизации
arp -a — таблица ARP
tcpdump -i rl0 host 192.168.61.20 and port 80 — сниффер пакетов на интерфейсе rl0, фильтрующий пакеты, содержащие адрес 192.168.61.20 и порт 80
trafshow -i rl0 — программа для сортировки и вывода сетевых потоков (устанавливается дополнительно пакетом или из портов)
ifstat — Report InterFace STATistics
iftop — display bandwidth usage on an interface by host
nettop — показывает сетевую активность по категориям
nstrems — показывает текущие потоки на интерфейсе
tcptrack — показывает текущие соединения
date — выводит текущее время и дату
w — выводит, сколько времени назад система загрузилась и залогиненных пользователей
last — выводит историю перезагрузок и входов пользователей
Для того что бы узнать размер папки во FreeBSD , необходимо ввести команду “DU” с опциями -hsx и указанием папки например /usr/home/vasya
Посмотреть какой размер имеют папки в корневой директории:
du -h -d 1 /
Должно вывести на экран все папки в корневой директории с указанием объёма занимаемым на диске места.
Оригинал статьи: http://brutenet.livejournal.com/8418.html
FILED UNDER : IT