Skip to main content

Шпаргалка по FreeBSD для администраторов Linux

Информация Об оборудовании

ЗадачаFreeBSDLinux
Список PCI устройствpciconf -lvlspci -v
Список USB устройствusbconfiglsusb
Показывать информацию о процессореsysctl hw.model или dmesg \| grep CPUcat /proc/cpuinfo или lscpu
Показать информацию о памятиsysctl hw.physmem или topfree -h или cat /proc/meminfo
Показывать модули ядраkldstatlsmod
Загрузить модуль ядраkldload module_namemodprobe module_name
Выгрузить модуль ядраkldunload module_namemodprobe -r module_name

Управление дисками и хранилищем

ЗадачаFreeBSDLinux
Перечислите все дискиgeom disk listlsblk или fdisk -l
Показывать разделы дискаgpart showfdisk -l или parted -l
Показывать использование дискаdf -hdf -h
Показывать смонтированные файловые системыmountmount или findmnt
Проверка файловой системыfsckfsck
Показать данные SMARTsmartctl -a /dev/ada0smartctl -a /dev/sda
Список пулов ZFSzpool listzpool list (если установлен ZFS)
Показать наборы данных ZFSzfs listzfs list (если установлен ZFS)

Сетевые команды

ЗадачаFreeBSDLinux
Показывать сетевые интерфейсыifconfigip addr или ifconfig
Настройка интерфейсаifconfig em0 inet 192.168.1.10ip addr add 192.168.1.10/24 dev eth0
Показать таблицу маршрутизацииnetstat -rnip route или route -n
Добавить статический маршрутroute add default 192.168.1.1ip route add default via 192.168.1.1
Показать таблицу ARParp -aarp -a или ip neigh
Очистить запись ARParp -d hostnamearp -d hostname или ip neigh del
Показывать сетевую статистикуnetstat -snetstat -s или ss -s
Показывать порты прослушиванияsockstat -l или netstat -anss -tuln или netstat -tuln
Показать все открытые порты/подключенияsockstatss -tuan или netstat -tuan
Захват пакетовtcpdump -i em0tcpdump -i eth0

Управление процессами

ЗадачаFreeBSDLinux
Перечислите все процессыps auxps aux
Дерево процессовpstreepstree или ps axjf
Просмотр процесса в режиме реального времениtoptop или htop
Процесс уничтоженияkill PIDkill PID
Показывать открытые файлы по процессамfstatlsof
Показать процесс, использующий портsockstat -p 80lsof -i :80 или ss -tulpn \| grep :80

Управление пакетами

ЗадачаFreeBSDLinux (в зависимости от дистрибутива)
Установочный пакетpkg install package_nameapt install / yum install / dnf install
Удалить пакетpkg delete package_nameapt remove / yum remove / dnf remove
Обновить список пакетовpkg updateapt update / yum check-update
Пакеты обновленияpkg upgradeapt upgrade / yum upgrade / dnf upgrade
Поиск пакетовpkg search keywordapt search / yum search / dnf search
Показать информацию о пакетеpkg info package_nameapt show / yum info / dnf info
Список установленных пакетовpkg infodpkg -l / rpm -qa

Системные службы

ЗадачаFreeBSDLinux (systemd)
Начать обслуживаниеservice servicename startsystemctl start servicename
Остановить обслуживаниеservice servicename stopsystemctl stop servicename
Перезапустить службуservice servicename restartsystemctl restart servicename
Состояние обслуживанияservice servicename statussystemctl status servicename
Включить при загрузкеsysrc servicename_enable="YES"systemctl enable servicename
Отключить при загрузкеsysrc servicename_enable="NO"systemctl disable servicename
Перечислите все услугиservice -esystemctl list-units --type=service

Брандмауэр

ЗадачаFreeBSD (pf/ipfw)Linux (iptables/nftables)
Правила показа (pf)pfctl -sriptables -L -n -v
Показать правила (ipfw)ipfw listnft list ruleset
Включить брандмауэр (pf)pfctl -esystemctl start firewalld
Отключить брандмауэр (pf)pfctl -dsystemctl stop firewalld
Правила перезарядки (pf)pfctl -f /etc/pf.confiptables-restore < /etc/iptables/rules.v4

Системная информация

ЗадачаFreeBSDLinux
Время безотказной работы системыuptimeuptime
Версия ядраuname -a или freebsd-versionuname -a
Показать все переменные sysctlsysctl -asysctl -a
Показывать системные сообщенияdmesgdmesg или journalctl -k
Показывать системные журналыtail /var/log/messagesjournalctl или tail /var/log/syslog

Управление пользователями

ЗадачаFreeBSDLinux
Добавить пользователяadduser или pw useradd usernameuseradd username или adduser username
Удалить пользователяrmuser или pw userdel usernameuserdel username
Изменить пользователяpw usermod usernameusermod username
Сменить парольpasswd usernamepasswd username
Показывать вошедших в систему пользователейwho или wwho или w

Файловые системы

ЗадачаFreeBSDLinux
Монтировать файловую системуmount /dev/ada0p2 /mntmount /dev/sda2 /mnt
Размонтировать файловую системуumount /mntumount /mnt
Создайте файловую систему UFSnewfs /dev/ada0p2Н/Д (UFS не распространено)
Создание файловой системы ext4N/Amkfs.ext4 /dev/sda2
Проверьте место на дискеdu -sh /pathdu -sh /path

ZFS Команды (одинаковые для FreeBSD и Linux с ZFS)

Операции с пулом

ЗадачаКомандаПример
Перечислите все пулыzpool listzpool list
Показать состояние пулаzpool statuszpool status tank
Показать историю пулаzpool historyzpool history tank
Показать статистику ввода-выводаzpool iostatzpool iostat -v 2 (каждые 2 секунды)
Создайте простой пулzpool createzpool create tank /dev/ada1
Создание зеркального пулаzpool createzpool create tank mirror /dev/ada1 /dev/ada2
Создайте пул RAIDZzpool createzpool create tank raidz /dev/ada1 /dev/ada2 /dev/ada3
Добавление диска в пулzpool addzpool add tank /dev/ada4
Замените диск в пулеzpool replacezpool replace tank /dev/ada1 /dev/ada4
Удаление устройства из пулаzpool removezpool remove tank /dev/ada4
Скраб-пул (проверка целостности)zpool scrubzpool scrub tank
Перестаньте скрестиzpool scrub -szpool scrub -s tank
Устранение ошибок пулаzpool clearzpool clear tank
Экспортный пулzpool exportzpool export tank
Пул импортаzpool importzpool import tank
Список импортируемых пуловzpool importzpool import (без названия пула)
Пул обновленийzpool upgradezpool upgrade tank
Установить свойство пулаzpool setzpool set autoreplace=on tank
Получить свойства пулаzpool getzpool get all tank

Операции с набором данных (файловой системой)

ЗадачаКомандаПример
Перечислите все наборы данныхzfs listzfs list
Список с конкретными свойствамиzfs listzfs list -o name,used,avail,mountpoint
Список моментальных снимковzfs list -t snapshotzfs list -t snapshot
Создание набора данныхzfs createzfs create tank/home/user
Уничтожить набор данныхzfs destroyzfs destroy tank/old_data
Уничтожить набор данных и дочерние элементыzfs destroy -rzfs destroy -r tank/old_data
Установить свойство набора данныхzfs setzfs set compression=lz4 tank/home
Получение свойств набора данныхzfs getzfs get all tank/home
Установить квотуzfs set quota=zfs set quota=10G tank/home/user
Установленное резервированиеzfs set reservation=zfs set reservation=5G tank/database
Набор данных для монтированияzfs mountzfs mount tank/home
Размонтировать набор данныхzfs unmountzfs unmount tank/home
Показать подключённые файловые системы ZFSzfs mountzfs mount (без аргументов)

Операции Моментального снимка

ЗадачаКомандаПример
Создать моментальный снимокzfs snapshotzfs snapshot tank/home@backup-2024
Создание рекурсивного моментального снимкаzfs snapshot -rzfs snapshot -r tank/home@daily-2024
Список моментальных снимковzfs list -t snapshotzfs list -t snapshot -r tank/home
Откат к моментальному снимкуzfs rollbackzfs rollback tank/home@backup-2024
Уничтожить моментальный снимокzfs destroyzfs destroy tank/home@old-backup
Переименовать моментальный снимокzfs renamezfs rename tank/home@old tank/home@archived
Клонировать моментальный снимокzfs clonezfs clone tank/home@backup tank/home_clone
Показать использование диска моментального снимкаzfs list -o spacezfs list -r -o space tank

Отправка/получение (репликация)

ЗадачаКомандаПример
Отправить снимокzfs sendzfs send tank/home@backup > /backup/home.zfs
Отправлять инкрементныеzfs send -izfs send -i @snap1 tank/home@snap2 > incremental.zfs
Получить моментальный снимокzfs receivezfs receive tank/home_restore < /backup/home.zfs
Отправить по SSHzfs send \| sshzfs send tank/home@backup \| ssh user@host zfs receive tank/backup
Приемное устройство для сухого прогонаzfs receive -nzfs receive -n tank/test < backup.zfs
Отправлять с прогрессомzfs send -vzfs send -v tank/home@backup > backup.zfs

Общие настройки свойств

ЗадачаКомандаПример
Включить сжатиеzfs set compression=zfs set compression=lz4 tank/data
Включить дедупликациюzfs set dedup=zfs set dedup=on tank/backup
Установите размер записиzfs set recordsize=zfs set recordsize=1M tank/media
Включить шифрованиеzfs create -o encryption=zfs create -o encryption=on -o keyformat=passphrase tank/secure
Установите время доступаzfs set atime=zfs set atime=off tank/database
Настройка режима синхронизацииzfs set sync=zfs set sync=disabled tank/temp
Включить нечувствительность к региструzfs set casesensitivity=zfs create -o casesensitivity=insensitive tank/windows

Мониторинг и техническое обслуживание

ЗадачаКомандаПример
Показать статистику ввода-выводаzpool iostatzpool iostat -v tank 2
Показать статистику ARC (FreeBSD)sysctl kstat.zfs.misc.arcstatssysctl kstat.zfs.misc.arcstats.size
Показать статистику ARC (Linux)arc_summaryarc_summary или cat /proc/spl/kstat/zfs/arcstats
Проверьте состояние бассейнаzpool status -xzpool status -x (показывает только проблемы)
Показывать мероприятия в бассейнеzpool eventszpool events -v
Расчетное время очисткиzpool statuszpool status (во время скрабирования)
Показать степень сжатияzfs get compressratiozfs get compressratio tank/data
Показывать использование пространства по типуzfs list -o spacezfs list -r -o space tank

Полезные однострочники

# Find largest datasets
zfs list -o name,used -s used

# Show all snapshots sorted by creation
zfs list -t snapshot -o name,creation -s creation

# Calculate total snapshot space
zfs list -t snapshot -o used -p | awk '{sum+=$1} END {print sum/1024/1024/1024 " GB"}'

# Show datasets with compression disabled
zfs get -r compression tank | grep -v "lz4\|gzip\|zle"

# Monitor pool I/O in real-time
zpool iostat -v 1

# Show properties that differ from defaults
zfs get all tank | grep -v default

# Quick backup to remote system
zfs snapshot tank/important@$(date +%Y%m%d) && \
zfs send tank/important@$(date +%Y%m%d) | ssh backup-server zfs receive tank/backup-2024

Быстрые Советы

  • Именование устройств: в FreeBSD используются другие соглашения об именовании (ada0 для SATA, da0 для SCSI/USB), чем в Linux (sda, sdb и т. д.).
  • Сетевые интерфейсы: в FreeBSD интерфейсы называются по драйверу (em0, re0, bge0), в то время как в Linux традиционно используются eth0, eth1 (сейчас часто используются предсказуемые имена, такие как enp0s3)
  • Файлы конфигурации: в FreeBSD многие конфигурации сосредоточены в /etc/rc.conf, в то время как в Linux они распределены по разным файлам
  • Страницы руководства: в обоих случаях используется man command, но страницы руководства FreeBSD зачастую более подробные
  • Порты и пакеты: в FreeBSD есть и порты (исходный код), и пакеты (бинарные файлы), в то время как в Linux обычно используется один менеджер пакетов для каждого дистрибутива
  • ZFSZFS в Linux (ZoL) изначально поддерживается FreeBSD, но достигла паритета функций. Команды идентичны, но загрузка модулей ядра различается (kldload zfs в FreeBSD и modprobe zfs в Linux)