Шпаргалка по 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 обычно используется один менеджер пакетов для каждого дистрибутива
- ZFS: ZFS в Linux (ZoL) изначально поддерживается FreeBSD, но достигла паритета функций. Команды идентичны, но загрузка модулей ядра различается (
kldload zfs в FreeBSD и modprobe zfs в Linux)