Skip to main content

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

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

Задача FreeBSD Linux
Список PCI устройств pciconf -lv lspci -v
Список USB устройств usbconfig lsusb
Показывать информацию о процессоре sysctl hw.model или dmesg \| grep CPU cat /proc/cpuinfo или lscpu
Показать информацию о памяти sysctl hw.physmem или top free -h или cat /proc/meminfo
Показывать модули ядра kldstat lsmod
Загрузить модуль ядра kldload module_name modprobe module_name
Выгрузить модуль ядра kldunload module_name modprobe -r module_name

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

Задача FreeBSD Linux
Перечислите все диски geom disk list lsblk или fdisk -l
Показывать разделы диска gpart show fdisk -l или parted -l
Показывать использование диска df -h df -h
Показывать смонтированные файловые системы mount mount или findmnt
Проверка файловой системы fsck fsck
Показать данные SMART smartctl -a /dev/ada0 smartctl -a /dev/sda
Список пулов ZFS zpool list zpool list (если установлен ZFS)
Показать наборы данных ZFS zfs list zfs list (если установлен ZFS)

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

Задача FreeBSD Linux
Показывать сетевые интерфейсы ifconfig ip addr или ifconfig
Настройка интерфейса ifconfig em0 inet 192.168.1.10 ip addr add 192.168.1.10/24 dev eth0
Показать таблицу маршрутизации netstat -rn ip route или route -n
Добавить статический маршрут route add default 192.168.1.1 ip route add default via 192.168.1.1
Показать таблицу ARP arp -a arp -a или ip neigh
Очистить запись ARP arp -d hostname arp -d hostname или ip neigh del
Показывать сетевую статистику netstat -s netstat -s или ss -s
Показывать порты прослушивания sockstat -l или netstat -an ss -tuln или netstat -tuln
Показать все открытые порты/подключения sockstat ss -tuan или netstat -tuan
Захват пакетов tcpdump -i em0 tcpdump -i eth0

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

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

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

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

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

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

Брандмауэр

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

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

Задача FreeBSD Linux
Время безотказной работы системы uptime uptime
Версия ядра uname -a или freebsd-version uname -a
Показать все переменные sysctl sysctl -a sysctl -a
Показывать системные сообщения dmesg dmesg или journalctl -k
Показывать системные журналы tail /var/log/messages journalctl или tail /var/log/syslog

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

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

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

Задача FreeBSD Linux
Монтировать файловую систему mount /dev/ada0p2 /mnt mount /dev/sda2 /mnt
Размонтировать файловую систему umount /mnt umount /mnt
Создайте файловую систему UFS newfs /dev/ada0p2 Н/Д (UFS не распространено)
Создание файловой системы ext4 N/A mkfs.ext4 /dev/sda2
Проверьте место на диске du -sh /path du -sh /path

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

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

Задача Команда Пример
Перечислите все пулы zpool list zpool list
Показать состояние пула zpool status zpool status tank
Показать историю пула zpool history zpool history tank
Показать статистику ввода-вывода zpool iostat zpool iostat -v 2 (каждые 2 секунды)
Создайте простой пул zpool create zpool create tank /dev/ada1
Создание зеркального пула zpool create zpool create tank mirror /dev/ada1 /dev/ada2
Создайте пул RAIDZ zpool create zpool create tank raidz /dev/ada1 /dev/ada2 /dev/ada3
Добавление диска в пул zpool add zpool add tank /dev/ada4
Замените диск в пуле zpool replace zpool replace tank /dev/ada1 /dev/ada4
Удаление устройства из пула zpool remove zpool remove tank /dev/ada4
Скраб-пул (проверка целостности) zpool scrub zpool scrub tank
Перестаньте скрести zpool scrub -s zpool scrub -s tank
Устранение ошибок пула zpool clear zpool clear tank
Экспортный пул zpool export zpool export tank
Пул импорта zpool import zpool import tank
Список импортируемых пулов zpool import zpool import (без названия пула)
Пул обновлений zpool upgrade zpool upgrade tank
Установить свойство пула zpool set zpool set autoreplace=on tank
Получить свойства пула zpool get zpool get all tank

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

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

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

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

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

Задача Команда Пример
Отправить снимок zfs send zfs send tank/home@backup > /backup/home.zfs
Отправлять инкрементные zfs send -i zfs send -i @snap1 tank/home@snap2 > incremental.zfs
Получить моментальный снимок zfs receive zfs receive tank/home_restore < /backup/home.zfs
Отправить по SSH zfs send \| ssh zfs send tank/home@backup \| ssh user@host zfs receive tank/backup
Приемное устройство для сухого прогона zfs receive -n zfs receive -n tank/test < backup.zfs
Отправлять с прогрессом zfs send -v zfs 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 iostat zpool iostat -v tank 2
Показать статистику ARC (FreeBSD) sysctl kstat.zfs.misc.arcstats sysctl kstat.zfs.misc.arcstats.size
Показать статистику ARC (Linux) arc_summary arc_summary или cat /proc/spl/kstat/zfs/arcstats
Проверьте состояние бассейна zpool status -x zpool status -x (показывает только проблемы)
Показывать мероприятия в бассейне zpool events zpool events -v
Расчетное время очистки zpool status zpool status (во время скрабирования)
Показать степень сжатия zfs get compressratio zfs get compressratio tank/data
Показывать использование пространства по типу zfs list -o space zfs 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)