Shell TrueNAS: Как использовать командную строку | Полное руководство | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Shell в TrueNAS: Полное руководство по работе с командной строкой

05 февраля 2026 6 мин. чтения #freebsd #shell #ssh #truenas #zfs #администрирование #командная строка #настройка

Если ты работаешь с TrueNAS и хочешь выйти за рамки веб-интерфейса, тебе нужно освоить shell. Командная строка в TrueNAS — это мощный инструмент для тонкой настройки, автоматизации и решения сложных задач. Давай разберем, как получить доступ к shell, какие команды использовать и как не сломать систему.

Что такое shell в TrueNAS и зачем он нужен

TrueNAS Core основан на FreeBSD, а TrueNAS Scale — на Debian Linux. В обоих случаях под капотом работает полноценная операционная система с bash или подобными оболочками. Веб-интерфейс — это лишь удобная надстройка, но для некоторых операций нужен прямой доступ к shell.

Когда нужен shell:
• Настройка параметров, недоступных в GUI
• Отладка проблем с сетью или ZFS
• Автоматизация задач через скрипты
• Мониторинг системы в реальном времени
• Восстановление доступа при проблемах с веб-интерфейсом

Способы доступа к shell в TrueNAS

1. Через веб-интерфейс (Shell в браузере)

Самый простой способ — использовать встроенный терминал:

  1. Зайди в веб-интерфейс TrueNAS
  2. В левом меню выбери "System Settings" → "Shell"
  3. Появится терминал с ограниченными правами (обычно пользователь root)
Внимание: Этот метод не сохраняет историю команд между сессиями и может иметь ограничения по функциональности. Для серьезной работы лучше использовать SSH.

2. Подключение по SSH

Для постоянной работы настрой SSH доступ:

bash
# Включи SSH в веб-интерфейсе:
# Services → SSH → нажми "Start" и "Autostart"

# Подключись с клиента:
ssh root@ip_адрес_truenas
# или с указанием порта (по умолчанию 22):
ssh -p 22 root@192.168.1.100

3. Прямой доступ через консоль

Если у тебя физический доступ к серверу или подключение по IPMI, можно использовать локальную консоль. Нажми Enter при загрузке, и увидишь приглашение командной строки.

Основные команды shell для TrueNAS

Вот что тебе понадобится в первую очередь:

Команда Описание Пример
zpool status Статус ZFS пулов zpool status tank
zfs list Список datasets zfs list -t all
midclt call API вызовы из командной строки midclt call system.info
tmux Менеджер терминалов (сессии не пропадут) tmux new -s mysession
iostat Статистика дисков iostat -dx 2

Практические примеры работы с shell

Пример 1: Мониторинг системы

bash
# Проверка использования дисков
df -h

# Память и своп
free -h

# Загрузка CPU
top -P

# Температуры (если поддерживается)
sysctl -a | grep temperature

# Сетевые интерфейсы
ifconfig
netstat -tulpn

Пример 2: Работа с ZFS через shell

bash
# Создание снапшота
zfs snapshot tank/data@$(date +%Y%m%d_%H%M%S)

# Просмотр снапшотов
zfs list -t snapshot -r tank

# Клонирование dataset
zfs clone tank/data@snapshot_name tank/cloned_data

# Проверка целостности данных
zpool scrub tank

# Добавление диска в пул
zpool add tank mirror /dev/ada2 /dev/ada3
Важно: Изменения ZFS через shell могут конфликтовать с веб-интерфейсом. Всегда делай бэкап конфигурации перед серьезными изменениями.

Пример 3: Автоматизация через скрипты

Создай скрипт для регулярных задач:

bash
#!/bin/bash
# /root/scripts/backup_snapshots.sh

POOL="tank"
RETENTION_DAYS=30
DATE=$(date +%Y%m%d_%H%M%S)

# Создание снапшота для всех datasets
for dataset in $(zfs list -H -o name -r $POOL | grep -v @); do
    if [ "$dataset" != "$POOL" ]; then
        zfs snapshot "${dataset}@auto_${DATE}"
        echo "Создан снапшот для ${dataset}"
    fi
done

# Очистка старых снапшотов
zfs list -t snapshot -H -o name | grep "@auto_" | while read snap; do
    snap_date=$(echo $snap | grep -o "auto_[0-9]\{8\}_" | cut -d'_' -f2)
    if [ ! -z "$snap_date" ]; then
        days_old=$(( ($(date +%s) - $(date -d "${snap_date:0:4}-${snap_date:4:2}-${snap_date:6:2}" +%s)) / 86400 ))
        if [ $days_old -gt $RETENTION_DAYS ]; then
            zfs destroy "$snap"
            echo "Удален старый снапшот: $snap"
        fi
    fi
done

Настройка окружения shell

Для удобной работы настрой свой shell:

bash
# Редактируем .bashrc или .profile
nano ~/.bashrc

# Добавляем полезные алиасы
alias ll='ls -la'
alias zstatus='zpool status'
alias zlist='zfs list'
alias services='service --status-all'

# Цветной prompt
PS1='\[\033[1;32m\]\u@\h:\[\033[1;34m\]\w\[\033[0m\]\$ '

# История с временными метками
export HISTTIMEFORMAT="%d/%m/%y %T "
export HISTSIZE=10000

Безопасность при работе с shell

  • Не работай от root без необходимости: Создай отдельного пользователя с sudo правами
  • Используй ключи SSH вместо паролей: Отключи парольную аутентификацию в настройках SSH
  • Ограничь доступ по IP: Настрой firewall в TrueNAS или используй fail2ban
  • Ведение логов: Все действия в shell логируются в /var/log/auth.log и /var/log/messages
  • Бэкап конфигурации: Перед изменениями делай бэкап через System → General → Save Config

Решение частых проблем через shell

Проблема: Веб-интерфейс не отвечает

bash
# Проверяем службу
service middlewared status

# Перезапускаем если нужно
service middlewared restart

# Смотрим логи
tail -f /var/log/middlewared.log

Проблема: Сеть не работает

bash
# Смотрим конфигурацию сети
ifconfig -a

# Проверяем маршруты
netstat -rn

# Тестируем DNS
nslookup google.com

# Перезапускаем сеть (осторожно!)
service netif restart

Проблема: Диски не определяются

bash
# Смотрим все диски
gpart show
camcontrol devlist
lsblk

# SMART статус
smartctl -a /dev/ada0

# Информация о дисках
geom disk list

Полезные ресурсы и команды

Документация в системе

  • man zpool — документация по ZFS
  • man freebsd — системные вызовы (для Core)
  • man bash — справка по shell

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

  • tmux — сессии терминала
  • htop — продвинутый мониторинг
  • ncdu — анализ использования диска
  • tcpdump — анализ сетевого трафика
Профессиональный совет: Настрой мониторинг через shell скрипты и отправку уведомлений. Например, скрипт проверки SMART статуса дисков или использования места в пуле с отправкой на email или в Telegram.

Shell в TrueNAS открывает полный контроль над системой. Начинай с простых команд, всегда проверяй что делаешь, и не бойся экспериментировать в тестовой среде. Помни: с большой силой приходит большая ответственность.

Поделиться:
Сохранить гайд? В закладки браузера